Doug,
I turned off compiling of my scene and placed a BranchGroup above my
OrderedGroup.  Next, I changed all my child nodes to plain Group nodes.
Still was very slow.  Then I turned off all reordering and left *just*
the detach/attach of my OrderedGroup.  Still slow.  Finally, I did some
profiling....

long time1 = System.currentTimeMillis();
for(i = 0; i < 5; i++)
{
  myBranch.detach();
  myParent.addChild( myBranch );
}
long time2 = System.currentTimeMillis();
System.out.println(" AVG TIME = " + ((float)(time2-time1) * 0.2f) );

AVG TIME = 46.0
AVG TIME = 70.200005
AVG TIME = 50.0
AVG TIME = 74.200005
AVG TIME = 146.2
AVG TIME = 84.200005
AVG TIME = 66.200005
AVG TIME = 90.0
AVG TIME = 66.200005
AVG TIME = 264.4
AVG TIME = 76.200005
AVG TIME = 108.200005
AVG TIME = 86.0

These times are in milliseconds. Actually, I even changed it to do a
single attach/detach timing:

AVG TIME = 70.0
AVG TIME = 90.0
AVG TIME = 60.0
AVG TIME = 90.0
AVG TIME = 841.0
AVG TIME = 90.0
AVG TIME = 151.0
AVG TIME = 90.0
AVG TIME = 140.0
AVG TIME = 90.0
AVG TIME = 80.0
AVG TIME = 120.0

I know that Win2k timing is only good for 10ms, but there's a couple
pretty big ones in there.  What can I do about this?  If there is no way
around this, then how can I *ever* do range-ordering??  If the new
capability in 1.3 won't be available until later this year, how about an
interim release that just allows for *quick* reordering of OrderedGroup
nodes as a workaround?  At least the problem would then be workable.

Thx
-Lee

> -----Original Message-----
> From: Doug Twilleager [mailto:[EMAIL PROTECTED]]
> Sent: Monday, April 23, 2001 3:17 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [JAVA3D] Range ordering of transparent objects
>
>
> The only way to get the compile out of the way is to compile the
> scene without your OrderedGroup's, and then add them in after
> the compile.  Other than that, I don't see any other ways
> to do this in 1.2.*.
>
> Doug Twilleager
> Sun Microsystems
>
>
> >To: "'Doug Twilleager'" <[EMAIL PROTECTED]>,
> [EMAIL PROTECTED]
> >Subject: RE: [JAVA3D] Range ordering of transparent objects
> >MIME-Version: 1.0
> >
> >Doug,
> >The only way to rearrange the children of the OrderedGroup is to do
> >attaches and reattaches of BranchGroups since I get an
> exception if I do
> >a "setChild(Node, index)" without the child being a
> BranchGroup.  This
> >is from the Group.setChild() Javadoc:
> >
> >"RestrictedAccessException - if this group node is part of live or
> >compiled scene graph and the child node being set is not a
> BranchGroup
> >node"
> >
> >Since they are BranchGroups, I still get the overhead of doing
> >attach/detach with each child.  My code for swapping
> children looks like
> >this:
> >
> >  in constructor...
> >  {
> >    ...
> >    empty = new BranchGroup();
> >    empty.setCapability(BranchGroup.ALLOW_DETACH);
> >    ...
> >  }
> >
> >  private void doReordering()
> >  {
> >    myBranch.detach();  // detach OrderedGroup from scene
> >
> >    // Call "swapBranches" as necessary
> >
> >    myParent.addChild( myBranch );
> >  }
> >
> >  private void swapBranches(int a, int b)
> >  {
> >
> >    BranchGroup b1 = (BranchGroup)myOrderedGroup.getChild( a );
> >    BranchGroup b2 = (BranchGroup)myOrderedGroup.getChild( b );
> >    myOrderedGroup.setChild( empty, a );  // I think this calls
> >b1.detach()
> >    myOrderedGroup.setChild( b1, b );
> >    myOrderedGroup.setChild( b2, a );
> >  }
> >
> >What do you think I can do?  Is there a way to prevent my
> OrderedGroup
> >from being compiled so I don't have to use BranchGroups for the
> >children??
> >
> >Thx
> >-Lee
> >
> >> -----Original Message-----
> >> From: Doug Twilleager [mailto:[EMAIL PROTECTED]]
> >> Sent: Monday, April 23, 2001 1:23 PM
> >> To: [EMAIL PROTECTED]
> >> Subject: Re: [JAVA3D] Range ordering of transparent objects
> >
> ><snip...>
> >
> >> If you detach the branch graph which contains the
> >> OrderedGroup, rearrange
> >> the OrderedGroup, then reattach again, you will get better
> performance
> >> that attaching and reattaching the children of the
> >> OrderedGroup individually.
> >>
> >> Doug Twilleager
> >> Sun Microsystems
> >>
>
> ==============================================================
> =============
> 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