[gameprogrammer] Re: Level of detail rendering
- From: "Alan Wolfe" <alan.wolfe@xxxxxxxxx>
- To: gameprogrammer@xxxxxxxxxxxxx
- Date: Tue, 4 Apr 2006 12:34:43 -0700
That makes sense, I like your idea about knowing where the player can and
can't get to so you can cheat the system a little bit hehe (:
I wonder if it would be difficult to get 3d models and billboards of
pre-rendered 3d models to line up and be "pixel perfect" so there weren't
any gaps or misalignments.
and i guess everything comes at a price - all these billboards are sure to
use up more video memory right?
On 4/1/06, Charlie Lobo <charlie.lobo@xxxxxxxxx> wrote:
>
> 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
> >
> >
> That sounds like a good idea, in the worst case scenario it would only
> render a frame (when it realizes the object is updating really fast) and
> then reverts to billboard (if the player slows down or it stops). But if the
> player is static not everything is made into a billboard, close objects
> still remain their 3-d detail). Moreover the programmer could have the
> chance to choose when to turn the billboard on or off, in case he/she wants
> to use another tecnique or knows there there is going to be alot of changes.
>
>
> For the mountain LOD here are some ideas I've noticed seeing real mountain
> from far and close (the city is called Monterrey (Mountain King), that
> should give you an idea about how many mountains are over here). When seen
> from a certain distance trees become blurry green (making to texture, that's
> been done). But farther away they actually look blue(in case you haven't
> noticed the air is blue, and it actually works like fog at really high
> distances) and not only that, but slowly the sense of color disapears and
> only tones of light blue appear (convert to grayscale?). Details on ridges
> and so on from far could also easily be kept with a bump-map since the
> mountain is so far away the illusion will be kept but the polygon count is
> lowered. I don't know how much of these has been already done (but I know
> somethings have).
>
>
> 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.
> >
>
>
>
> Yeah that would work really nicely, actually the guy at machall (
> www.machall.com) did a trick very similiar to this, maybe later I'll find
> a more direct link to the post he made. The trick he did though was for
> blurring, and actually isn't much faster at all. He basically renders the
> frame, and then passes a plane, perpendicular tu the camera, at a certain
> distance and and puts the pre-rendered frame blurred as texture. The effect
> is that anything behind the plane appears blurred, anything infront of the
> plane covers the plane (as long as it streches to cover the screen from that
> distance).
> The problem with making the thing into a sky box is that if a mountain
> moves to the impostor distance, the whole skybox would have to be redrawn,
> it would be much easier to just draw the mountain and put a billboard for
> that mountain.
> Now that I think of it, couldn't another impostor be added for a ridge, be
> it far enought? Even if I'm in a mountain, it's just about calculating the
> angle that the object is normally seen on and making the plane perpendicular
> to that angle (and positioned appropietly?)
> So if I'm on a very deep ridge, the close border, and maybe the other side
> is actually 3d, but if I watch the bottom I'm actually watching a billboard,
> in the worst case scenario I would only see it one frame, in which case it
> was as if though the billboard wasn't used. Again bump-mapping would help
> create the illusion when I changed angle slightly. In the case I was in a
> mountain the floor could be a billboard, since it's so far away it barely
> appears to move, because the billboard terrain distance is so big there
> shouldn't be glitces on mountains. Other mountains could also be billboards,
> if they are far away enought. Because we actually billboard whole pieces of
> land, not just areas which are far away (again the whole idea of dividing
> the map into areas that represent big height changes), the whole mountain
> would be bill boarded or it would all be not billboarded. It would actually
> be nice the ability to force billboard certain things, the programmer may
> know that when the character is on mountain B there's no way to reach
> mountain A or change angle dramatically, so it's just billboarded (though
> later, when he leaves mountain B he may go to mountain A). And the ridge
> from the mountain, would also be a big billboard..
> Another thing about areas: when I'm at the base of a mountain, the peak
> may still be so far away (and the mountain be so big) that the peak may be
> billboarded, so even when on the mountain, it would be convenient to
> billboard certain parts of the mountain.
>
>
> > 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.
> >
>
> Again if every object is it's own billboard it maybe could change, if at
> most it would be a thing of every so many frames actually rerender the
> impostor, if we want to waste cpu in exchange for a very good change
> checker. The more attractive solution I think would be to have the
> programmer "reset" the billboard whenever he/she feels that something
> drastic enought to affect the model at large. Hopefully the programmers
> would find a solution that works for their specific issue, or they could
> just repeat the technique I just said up there (only it's their choice).
> I don't even know if you understand what I'm saying :P
>
>
>
- Follow-Ups:
- [gameprogrammer] Re: Level of detail rendering
- From: Charlie Lobo
- References:
- [gameprogrammer] Re: Level of detail rendering
- From: Leighton Haynes
- [gameprogrammer] Re: Level of detail rendering
- From: Charlie Lobo
- [gameprogrammer] Re: Level of detail rendering
- From: Alan Wolfe
- [gameprogrammer] Re: Level of detail rendering
- From: Charlie Lobo
Other related posts:
- » [gameprogrammer] Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- » [gameprogrammer] Re: Level of detail rendering
- [gameprogrammer] Re: Level of detail rendering
- From: Charlie Lobo
- [gameprogrammer] Re: Level of detail rendering
- From: Leighton Haynes
- [gameprogrammer] Re: Level of detail rendering
- From: Charlie Lobo
- [gameprogrammer] Re: Level of detail rendering
- From: Alan Wolfe
- [gameprogrammer] Re: Level of detail rendering
- From: Charlie Lobo