Dave,
Few comments.
>From your measurements it does not seem as if you are fill *or* transform
bound. Increasing the amount of scene rendered (through clipping) did not
decrease performance. I think it is quite possible that the repeat rate of
the keyboard could be your limiting factor. Try switching to mouse or using
an interpolator to interpolate between keyboard positions if you want more
fluid motion.
As an aside I usually measure FPS using a behavior that I've written which
has a wake up criteria of 1 frame. That way I can easily add the behavior to
a scene graph without overriding the Canvas paint methods etc.
The "DOOM" demo that I posted here (Keyboard Navigation Tutorial) uses a
transparent texture and texture transformation to animate "flames".
http://www.tornadolabs.com/News/news.html
I wouldn't claim it is the most realistic thing in the world but it works if
the flames are not central to your application.
Many (especially older) graphics cards will note handle a 512x512 texture
very well (if at all). You're performance will probably be greatly increased
if you can reduce the size of this texture and use multiple LOD textures.
I'm not clear how you are applying your textures. You make it sound as if
you have 1,600 512x512 textures, one applied to each 40x40 mesh... Is this
the case? Seems hard to believe...
While large textures are better, you have to consider what the final
projected size of your texture is likely to be. There is no point having a
512x512 texture if 90% of the time the texture is projected onto a mesh
which occupies 50x50 pixels on screen. Not only have you wasted memory but
the quality will not be as good as if you had rescaled the texture offline
and used LOD texture mapping.
You should also be aware that transparent textures and transparent geometry
are usually slower to render.
I think for peak performance you should, as you move further from the
viewer:
- decimate your mesh
- use smaller textures
- switch off texture mapping and use vertex colors
You need to experiment with your application and decide how long a sigh line
you require - "horizon" (distance to back clipping plane) and what the
quality at the "horizon" needs to be.
Looks great, keep up the good work, and feel free to keep me posted on your
progress!
Sincerely,
Daniel Selman
[EMAIL PROTECTED]
Tornado Labs Ltd.
http://www.tornadolabs.com
-----Original Message-----
From: Discussion list for Java 3D API
[mailto:[EMAIL PROTECTED]]On Behalf Of Yazel, David J.
Sent: Monday, August 28, 2000 12:54 PM
To: [EMAIL PROTECTED]
Subject: Re: Performance, LOD and optimization
Hi Mark, Thanks for the response!
The framerate does not appear to be effected by the size of my window. I
get the same whether im running 512x512, 1024x768 or Fullscreen. I am
running DirectX on a 700 mHz PIII using a Tnt Ultra(I think). But I have
not tried shrinking it down to very small. Perhaps I am calculating the
frame rate wrong. I an counting frames by incrementing a long in the
postSwap() method. After 5000 ms (5 sec) I print out (frames * 1000 /
elapsedMS) which should yield frames/sec and then I reset the counters. One
thing I notice is that postSwap is not called if I am not moving, which
means it is not making a frame unless I am "moving" or transforming. Since
I am implementing my movement transforms in a timed behavior with a
resolution of 20ms perhaps this is the current limiting factor. If I set up
a interpolator and transform an object (like rotate an object) I bet it
would be forced to attempt to render more frames per second.
As to my fire question. I guess I was looking for general rules of thumb
regarding fps. I am navigating through a static scene at 18 fps and it
seems very smooth to me. Does that mean that 18 fps will look good no
matter what was happening in the scene? Does the human eye distinguish
things differently? In other words if I was standing still and looking at
an object animating moving from right to left, does my eye notice the "gaps"
in its location below a certain framerate. But when I am moving, the eye is
too busy noticing the fact that the whole scene is changing to notice the
"gaps".
Hope that makes some sense.
Dave Yazel
> ----------
> From: Mark Ferneau[SMTP:[EMAIL PROTECTED]]
> Reply To: Discussion list for Java 3D API
> Sent: Monday, August 28, 2000 12:27 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [JAVA3D] Performance, LOD and optimization
>
> Dave,
>
> It looks like you are doing some really interesting work, especially given
> the domain for the image URLs you provided earlier today. I have to be
> honest that I don't think anyone can realistically answer your questions
> without much more information.
>
> At 10:07 AM 8/28/2000 -0400, you wrote:
> > Q: What kind of FPS should I be seeing?
>
> What platform are you running on, what size is your rendering window, are
> you using OGL or D3D?
>
> > Q: Am I maxing out at 18 fps because I don't have anything in
> the
> >scene moving faster than that? I have no interpolators going, no timed
> >behaviors except my keyboard.
>
> Not likely, depending on your rendering window and graphics hardware, you
> are likely either fill bound or transform bound. Fill bound means that
> you
> are trying to fill too many pixels on the screen and you don't have the
> pixel fill to do so. Transform bound means you have too many vertices in
> the scene that are being processed--this really becomes an issue with
> multiple lights in your scene, especially spot lights. One test for
> finding if you are fill bound is to decrease your rendering window size to
> 60x60 or, better still, to a much small version of what you have now but
> at
> the same aspect ratio. If you performance jumps you are likely fill
> bound.
>
> To see if you are transform bound, use LODs to decrease the number of
> vertices in the scene, decrease the number of lights, etc.
>
> > Q: If I want to do an animation like rotate a transparent GIF
> over a
> >transparent cylinder (for a fire effect), how many FPS do I need for it
> to
> >look realistic?
>
> What kind of fire are you trying to reproduce? Fire in a fire place, fire
> on a stove, forest fire, fire ball, etc? How important of an element is
> the fire to your scene? Depending on the answer to this question the
> speed
> could be lower or higher. In general it will depend on how much your
> textures need to move to generate the effect you desire. If they have to
> move a lot a higher framerate will be required to make the motion not look
> jerky.
>
> --Mark
>
>
>
>
> Mark Ferneau 240-462-6262 (cell)
> Director of Adv. Technology 801-437-4608 (efax)
> Xtivia Technologies, Inc. 732-469-5954 x629 (NJ office)
> [EMAIL PROTECTED] 301-279-5703 (home office)
> http://www.xtivia.com/ [EMAIL PROTECTED] (wireless email)
>
> ==========================================================================
> =
> 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".
===========================================================================
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".