YES, you are describing the same problem.
However, officially it is not a bug, because, as it was explained to
me, the Java3D API Spec does not guarantee synching.
So the only thing I can imagine is that the API must be changed, a tall
order I'm sure. However, a single added set() method would be fairly
painless to add, but that method can mean enormous changes for a implementation
that never intends on synching.
Still, some of us must have this feature, or we can not use Java3D's
behaviors...
David wrote:
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
___________________________________________________________
--
___________________________________________________________
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
___________________________________________________________
|