[gameprogrammer] Re: Level of detail rendering

That's interesting to see that yes this has been done before but that
apparently not with terrain so much.

here's my thoughts on the terrain questions :P

A: "What if I go around a mountain keeping the impostor distance? How would
the game realize I just changed the angle a bit? When needed it could
upgrade the billboard, but"

Well what i was thinking is that the farther you are away from something,
the more you have to move lateraly to get a degree of rotation around it so
I think in that case it still works so long as your not moving too fast.

A1: Yeah moving really fast would totaly own this technique.  I'm not sure
how much support there is on the average computer for rendering to offscreen
textures in video cards these days but if it's out there, and assuming
rendering to an off screen texture was as fast or faster than the screen
texture, even if you had to draw every other frame you'd be using half the
rendering power needed for this object.  In a worst case scenario, youd be
re-rendering the distant object every frame which would suck but umm...maybe
like you said, you could keep track of how often an object was being
rendered and if it was too often, make it revert to some other LOD technique
(:

In fact, i bet instead of making this all based on distance, to see if
something should become a billboard instead of a model, you could just see
how fast it updates ::shrug:: what do you think, good or bad?  One thing
that would sure suck would be if a player stood still so that everything
became a billboard then started moving again, would there be some cpu lag
spike as it switched back to models? hmm :P

B: Ooo you are sooo correct. Well actualy because the drop is close to you,
it *should* render in 3d and do LOD to a certain point and if the drop was
really far, maybe use a billboard past that point.

What i was picturing for this was like basicly getting the effects of a
"skybox" but make the skybox be rendered on the fly (well hopefully not very
often).  Maybe it would be a simple matter of something like temporarily
moving the camera 1/2 a mile in front of where the player is, rendering what
it sees to a texture, and then making that the skybox (or skysphere?).

Do you think it would be acheivable w/ such a simple trick?  I was thinking
maybe as you rotated your view around and you saw more of the "sphere"
surrounding you, it could render those tiles on the skysphere and cache
them, re-rendering only if something out there changed significantly, or
after you moved enough to re-render it.

A downside tehre would be that the weak link in the chain (the most updated
object) needed to be updated, everything would, so maybe pre-rendering
everything to textures and then rendering onto the skysphere would be a
better idea so that distant things would only need to be re-rendered as
their threshhold was exceeded.





On 4/1/06, Charlie Lobo <charlie.lobo@xxxxxxxxx> wrote:
>
>
>
> On 4/1/06, Leighton Haynes <dayta@xxxxxxxxxxxxxxxxx> wrote:
> >
> > Alan,
> > As you've probably guessed, this technique is not new, it's been
> > referred
> > to as 'imposters' - a google search for something like imposters and
> > rendering
> > will get you various papers on the subject :) Not sure who was the first
> > to
> > use it.
> >
> > As you've guessed, for objects suitably far away, you can get away with
> > updating them fairly infrequently (also remember, that even updating it
> > once a second at 60fps cut's the amount of rendering of them by 60
> > (minus
> > all the copying to texture/billboarding overhead). From memory, MS
> > Flight
> > Sim used them for clouds, and had the fairly unorthodox technique of
> > using
> > a software renderer, rendering the clouds->textures entirely using spare
> > CPU cycles.
> >
> >  No but from what I understand this is a LOD for extremely large models,
> say terrian. I don't think that an impostor for a mountain has been done
> yet, and personally I think I know why: how to know when to make it a
> billboard? I don't want half of my mountain to become a billboard making the
> rest seem slightly broken, it would be nicer if it did the impostor for
> areas of the terrain instead of the whole thing.
> Hmmm I got an idea from a map. What if the game created "figures" that
> represent diferente heights, and each area actually represents an actual
> height that area has, of course it would be a gross simplification.
> Depending on the height diferences the LOD may decide to either draw it or
> not. Say if the object is of the same distance it would be at a much shorter
> image. If the change is positive, in this case a mountain, depending on the
> size it would draw it a diferent sizes (each time with less detail). At a
> certain distance where the mountain doesn't change of angle in a big time
> you could use an impostor to replace the mountain.
> There are various problems with this:
> A. What if I go around a mountain keeping the impostor distance? How would
> the game realize I just changed the angle a bit? When needed it could
> upgrade the billboard, but
> A1. what if I'm moving so fast that I change the angle really fast? We
> can't do with tree's making a billboard out of two crosses (it's too big):
> we have to render the mountain from that angle. It would actually use more
> memory to handle the impostor than just render it. Maybe it the game had a
> "max speed" variable that was used to calculate how far the billboard
> tecnique can be used considering the fastest the camera can move at any
> moment. (It could change gradually if there is acceleration of some sort).
> So in any moment that the billboard becomes actually more of a hassle it's
> turned off and instead less detail is used.
> B. What about depresions? Say if I'm infront of a depresion that just
> drops, a ridge, I couldn't see the depresion, but if it where on an angle..
> and because of the simplification of the actual levels of the grounds (the
> area just represents the average height) one could actually see the fall
> from quite close. Maybe nothing can be done for this, maybe you think
> something I didn't.
>
> Is this what you where talking about? I have no idea about this but it
> sounds interesting..
>

Other related posts: