Java3D is in desperate need of a high precision micro timer. I have
mentioned this to a couple of the Java3D team but they don't seem to think
it is important as I haven't noticed it on the list of features for the next
release. This isn't that difficult a feature to implement since all the
native platforms already have a micro timer they just need to be wrapped in
JNI.

One of the problems I think is that Sun does development on Solaris and
System.currentTimeMillis() has a much higher resolution on Solaris than it
does on Windows.

I have never been able to get animations to look correct under Windows. The
simple examples that come with Java3D usually look ok because they only do
things like rotate in place. Once you add translation the inherent jerkiness
quickly rears its ugly head.

IMO a high precision timer is a critical feature that should be added to
Java3D. It will be much more useful to a wider audience than some new
bleeding edge feature.



----- Original Message -----
From: "David" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, March 04, 2001 12:25 PM
Subject: [JAVA3D] Java timer, frame/time based calculations


> We do our view changes and animations per frame, using elapsed time to
> calculate rotations in degrees/sec and movements in meters/sec.  That way
> our scene stays consistant even if frame rates drop.  But I had long felt
> things were not as smooth as they could be and never looked into it until
> now.  Turns out that we are getting elapsed time from one frame to another
> of zero very often, causing our scene to  be rendered exactly the same as
> several frames in a row, then a draw a new frame then a few copies, etc.
It
> looks like at around 50 fps, I am getting 3 dups for every 1 real frame
> recalc.  Course everything still looks right, but I am losing 3 steps of
> smoothness.
>
> For example if I am rotating my view at 90 degrees per second I am doing
> that in N steps, instead of N*4 steps, thus the rotation is not as smooth
as
> it should be.
>
> At 50 fps, I am calculating a frame every 20 ms.  I thought the
> System.currentTimeMillis() had a resolution of 5ms, but it looks like I am
> dead wrong.  The numbers below look like 60ms, but its probably 50ms. How
> can I get the time to a better resolution?
>
> Dave Yazel
>
>
> In printing out the time stamps I get this:
>
> Frame got elapsed time of zero (last=983725910240, cur=983725910240 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910290, cur=983725910290 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910290, cur=983725910290 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910350, cur=983725910350 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910350, cur=983725910350 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910350, cur=983725910350 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910400, cur=983725910400 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910400, cur=983725910400 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910400, cur=983725910400 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910400, cur=983725910400 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910460, cur=983725910460 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910460, cur=983725910460 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910460, cur=983725910460 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910510, cur=983725910510 [1 min
7
> sec, 55mb]
> Frame got elapsed time of zero (last=983725910510, cur=983725910510 [1 min
7
> sec, 55mb]
>
>
===========================================================================
> 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