I have determined that we are running into a bug. Took a real long time to
islolate the condition. Here is a synopsis of the setup.
Root BG
|
OrderedGroup - BG1 BG2 BG3
|
Sky - terrain - water - structures - mobiles - transients - alphas
1. So there is a BG with children, one of which is an ordered group
2. Siblings to the ordered group are BG's
3. Each of these BG's are constructed from "PositionedBuilders"
4. When our LOD system determines we need to build an object, it asks the
PositionedBuilder to make it and place it at proper location with a Level of
Detail.
5. The builder asks the contractor for the sub-scene from its cache, if not
found it calls the carpenter associated with the builder and asks for a LOD
version of the sub-scene.
6. The builder creates a transform group and puts the sub-scene BG into it,
then assigns the rotation, scales and translations that the builder
specifies.
7. It then puts these into a BG and returns it to the LOD system
8. The LOD system creates an update node for addBranchGroup() and adds it to
a current transaction
9. all the changes for that LOD cell are placed into the same transaction
node
10. the transaction node is then queued to the sceneupdator
11. The sceneupdator behavior wakes up once per frame and processes the
transactions and their updateNode.execute() methods, which make changes to
the scene. (Transactions are to ensure that "batches" of associated updates
built by other threads are performed in a single frame - critical to reduce
popping and flicker of massive changes)
12. This bug only happens when the carpenter returns a Link of a shared
group, where the shared group has a TG and inside the TG there is a
behavior that has a wakeup of elapsed frames(0).
13. I replaced our real behavior which swirls the texture coordinates of a
magic portal and pulses the material colors, with a do nothing behavior that
just wakes up per frame... problem persisted.
14. I then commented out the addition of the behavior to the TG and the
problem goes away.
15. I then made the carpenter stop returning a Link, but a BG instead....
problem went away
16. Conclusion : behaviors in shared groups break things... and this is new
in this version.
so BG->BG->TG->Link->SharedGroup->behavior does not work anymore
Also, the damage is quite catestrophic, all sibling BG's added after that
one also do not render.
Dave Yazel
Cosm Development Team
http://www.cosm-game.com/
----- Original Message -----
From: Yazel, David J. <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, March 15, 2001 8:26 AM
Subject: [JAVA3D] v1.2.1
Has anyone had any issues with v1.2.1 relating to random branch groups not
getting rendered? Our app is definitely acting differently under v1.2.1
than under beta 2. This may be showing up a bug in our code and I have a
lot more testing to do before I can figure out what is happening.
Specifically I was wondering if there were any changes to behavior
scheduling or changes made to the re-entrancy of Java3d objects being
updated from threads. As a particular example I have a piece of geometry
which has always been at a particular location, but which is no longer
there. I can see where the geometry is getting constructed and then being
added to a transaction. The transaction is queued and processed by a
behavior. If there is a bug in our code it is somewhere in the transaction
processing. Maybe something has changed in the timing that is causing a bug
in our code to drop transaction nodes on the floor.
Anyway, I will continue debugging.
Dave Yazel
===========================================================================
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".