Title: Message
This problem of performance is rather unavoidable, I believe. The performance of the Java3D rendering is rather due to the fact that the underlying hardware is doing the drawing to the screen. As such Java doesn't really get a look-in. Although, as you know, it is possible to grab the rendered image, doing so involves fetching all the pixel data out of video memory and squirting it back to memory available to the Java VM. This is grossly inefficient, and results in the terrible performance drops that you have experienced.
 
I wouldn't be surprised if the only way to do it is to literally record the signal going out to the monitor and make your video that way.
 
Lewis.
-----Original Message-----
From: Discussion list for Java 3D API [mailto:[EMAIL PROTECTED] On Behalf Of Yu Wang
Sent: 25 July 2003 19:06
To: [EMAIL PROTECTED]
Subject: [JAVA3D] Video Saving from Java3D

Hi All,
 
Currently I am working on video saving from Java 3D. My Solution is add a behavior to the view transform group and schedule it to process every 50 ms, for example. Every time the behavior wakes up, it calls the canvas' off-screen render method to render the current scene into a image object. Once the save process ends, I use the sample program in JMF to make all the Jpeg images into a movie clip.
 
But my question is that it can never gain the desired frame rates in the movie. It usually takes more than 0.2sec to render a single frame off-screen. If I add more canvas to the scene, the memory becomes a key issue. What is worse, the Behavior class cannot be scheduled properly. Another interesting thing is that if I turn off the on-screen renderer while recording, it seems that the off-screen renderer get the same images, which means the transforms could not be changed by the interpolators anymore. So is there anybody who has the similar experience? I will be really appreciated if you can give any comments.
 
Could I get the images directly from the on-screen Canvas3D or should I use a Timer or Interpolator instead of Behavior?
 
Thanks again.
 
Paul

Reply via email to