John has covered this topic pretty well and accurate. I would like
to add some points to the following question :

If a scene can be represented by m Shape3D nodes. Will breaking the
scene into n Shape3D nodes help rendering performance ?
Where n > m.

There are atleast 3 factors need to be considered.
a) Scene Update - The subset of the Shape3D nodes that need update, and
                  the frequency of update. Lesser update will yield
                  better performance.

b) State change - The graphics state, such as texture, material, and
                  display list. Lesser state changes will yield better
                  performance.

c) View Culling - Not render Shape3D nodes that aren't intersected with
                  the view frustum.

Increase the number of Shape3D nodes run the risk of increasing the cost
of (a) and (b), but might improve (c). Which approach should you take
is greatly dependence of your apps.


        Chien Yang
        Java 3D Team.




>
> Certainly the scenegraph layout does impact performance in several
> ways.  The Sun engineers can answer this more accurately than I can (I
> think Dave Yazel could shed more light on this too) but the biggest
> impact I've seen is more in how you model an object.  Rendering can clip
> and completely ignore an object that does not have any vertices in the
> view.  Thus smaller Shape3Ds can improve performance.  This is offset by
> other factors.  But in general my recommendation is to break a scene
> such that each Shape3D is of moderate size.
>
> What you want to avoid is huge objects (with huge textures) that all
> fall partially within the view at the same time.
>
> I don't think making separate branchgroups actually would make a
> performance difference (in a simple case).  We do however use multiple
> branchgroups to improve picking.  We put objects that we don't want to
> pick against in a separate branchgroup so that when we do a pick they
> are not included at all.
>
> - John Wright
> Starfire Research
>
> > Miguel Branco wrote:
> >
> > Suppose I have a big scene, which only part appears on the screen at a
> > time.
> > I was wondering about how Java3D does clipping. Is it worth dividing
> > the scene
> > into several different branchgroups? Or should it stay on one node
> > only?
> >
> > Is there any performance gain on separating the scene into several
> > nodes?
> > Does it have anything to do on how Java3D clips the objects?
> >
> > Thanks
>
> ===========================================================================
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
> of the message "signoff JAVA3D-INTEREST".  For general help, send email to
> [EMAIL PROTECTED] and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to