Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

mux

Movement/Time-Based LOD

This topic is 5279 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I''ve been wondering about this for a while. In 3d Shooters, or generally, fast-paced games where you move and look into different directions (ie fast turnaround by 180 degrees) at a very high speed, some Level Of Detail Algorithm could be implemented. Do you really look at those gorgeous hipoly-normal-mapped models when you are on a killing frenzy and have to constantly watch your back? Probably this is impossible to compute without major disadvantages. You''d need to constantly calculate the camera''s speed and acceleration. If it hits a certain threshold you''d have to switch to low or high detail mode.

Share this post


Link to post
Share on other sites
Advertisement
At the same time, though, it''s when I''m spinning the camera really fast that I have the greatest need for all the detail I can get. If there''s a guy in the distance, and his detail is reduced significantly, then he might not show up nearly as well, and since the camera is moving so fast, I would totally miss him. However, if he were highly detailed, he might stand out just enough for me to quit looking around for half a sec and check out whether he''s a threat/target/whatever.

So I''d rather certain objects be more detailed when I''m moving fast.

As for calculating the camera''s speed, I think that angular velocity is all that would really be needed. You could simply measure one frame''s angle to the previous frames, or averave a few deltas from previous frames together.

Share this post


Link to post
Share on other sites
Interesting. This is probably even more of a significant opportunity for optimization when you''ve got something like a motion blur effect turned on.

This could maybe be achieved by basically amortizing the LOD change across several frames.

Say the area to your left is at a low LOD and you''re turning through 180 degrees; a ''normal'' LOD algorithm would have that left area fully increase in LOD as you turn, and then fully decrease again when you finish turning.

If you amortized the change across several frames, though, then the LOD would *begin* to change as you turn past it, but wouldn''t get very far. It''d then change back after you moved away.

It''d mean that you wouldn''t waste time applying full LOD to camera angles that are only seen for a fraction of a second, but it could have an effect when you stop moving - it''d take a few frames for the view to reach the opimum LOD, and it could look weird (though things like Geomorphing could help with that).

Share this post


Link to post
Share on other sites
Don''t know if you guys remember, but in the old days, they used to make texture really low-res when the camera was moving, and then switch back to high-res when the camera stopped. Needless to say, it looked horrible by today''s standards. I suppose it could be made to look better with careful use of today''s abilities... A few days ago I''ve read about a new terrain LOD called "geometry clipmaps". Apparently, one of its features, is that it automatically behaves similar to the OP''s suggestion, as a side effect of its update mechanism.

Michael K.,
Co-designer and Graphics Programmer of "The Keepers"



We come in peace... surrender or die!

Share this post


Link to post
Share on other sites
I''d imagine that the problem with that texture technique was the jarring - if they faded from lowres to highres over three-four frames, it''d probably be ok. As always, we''d have to test it first.

Same goes for this thing. Switching to a high LOD when it stops (note: that''s stops, rather than slows - if you''re turning at 1rad/minute you''re not going to want to go low-detail) would be poor; but smoothly fading from a low LOD to a high one as the camera slows could work, IMO.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!