I thought you guys were in the beta program?  And I also thought this was solved in the upcoming release?  In particular I think the documented bug was that updates to the view transform and scene graph where not synched.  Are you describing another problem?
 
I know I used to have jitters of various kinds until started putting messages into a queue, then processing all the scene graph changes in a single wakeuponelapsedframes(0).  Of course you are right, this does not solve behavior issues.  In particlular I was solving the viewtransform/scenegraph change issue.
 
Is this what you are talking about or are you referring to something else, and has Sun agreed its a problem. 
 
And... isn't there a dev chat soon?
 
Dave Yazel
----- Original Message -----
Sent: Tuesday, September 26, 2000 6:58 PM
Subject: [JAVA3D] Behavior and Render thread synchronization problem

To start off, I have brought up this topic twice before on this list
.
A few people supported and a few were very against it.
However, our project has reached a point where we MUST have correct sync between the behaviors and render per frame.
Now we have completely implemented our own behavior management system already.  However this system currently gets it's update from a Java3D behavior that is trigger by a WakeOnFrameElapsed = 1.
So, for our behaviors everything seems to work fine but there are times when we still need or would like to use standard Java3D behaviors, such as Billboard or the utils-KeyNavigator behaviors.
Therein lies the problem.  Because these multiple Java3D behaviors throughout the graph are NOT guaranteed to be updated "atomically" before the render, jitter becomes a way of life.

Unfortunately, our project has reached a point where we can no longer have jitter in our demos.
So we are about to insert our behavior execution into a Canvas3D object that will call our update in the pre-render.  This will make sure our updates get done before the frame.  This does not fix the normal Java3D behaviors - Billboard etc. so we CAN NOT use them.  We are force to rewrite any Java3D behavior we wish to use to work in our update.  Additional, we will be writing our behavior management code to run threaded, so on our multi-processor systems we will get processor utilization.  If you guys are interested I can explain how we are multi-threading AND synching (I'm sure you guys understand this, just other people on the list posted it can't be done).

The point of this detail explanation is that it is extremely disappointing that we must do this at all!  It is ridiculous to have to reimplement the Java3D behavior system and behaviors and/or remove then from the graph to get correct execution.  A simple sync option should exist in the View class that guarantees this execution.  And it's not particularly difficult to implement, at least not how we do it.
On a side note, we have done this for years using SGI's Performer, and it is a must for many, many 3D apps.

Is this the only option.  Any suggestions on a better work around would be greatly appreciated?
___________________________________________________________

Shawn Kendall               Full Sail Real World Education
Course Director             3300 University BLVD
Real Time 3D for Gaming     Winter Park FL 32792
[EMAIL PROTECTED]       http://www.fullsail.com
___________________________________________________________
 
 

Reply via email to