Sign in to follow this  

GPU Gems 3 - True Imposters

This topic is 406 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

Hi,

 

I've been reading and re-reading the NVIDIA GPU Gems 3 Chapter 21 "True Imposters" (available online).

 

I'm having some trouble understanding the implementation of their idea. I wonder if someone can help me out. I currently use billboards to display imposters by taking "photos" of my models at various stages of rotation in the production pipeline. I then Lerp between the best two "photos" to give a fairly good transition as the viewer rotates around an object.

I can understand from the chapter that they introduce using the ZW parts of the float4 normally used as the Texture Coord (normaly a float2) to store extra information about the pixel at that location, presumably (and heres where it gets hazy) stored at the point where the texture that will be applied to the billboard is rendered during the production pipeline. I can readily see how I could store the Depth in one of those floats, and then use "relief mapping" to generate a much more rich 3D effect than just a flat texture, or possibly I could use both ZW to store two of the Normal dimensions of a normalized normal and therefore generate a better lighting on the flat texture.

Both the techniques I've mentioned are the only ones I can conceive, but the chapter seems to indicate they use all four channels. I presume they are talking about the imposter texture itself ? However my imposter texture contains 3 RGB channels already, unless they are suggesting a second texture which contains the information - like using a bump map texture, but not storing bumps, but other details.

I am at a loss to think what else I can store that would be useful at render time. Their diagram 21-3 indicates I might be able to store the "front depth" and "back depth" of the model when taking my perpendicular "photo" at production pipeline time, and therefore be able to reconstruct the hull of the model by ray marching (like a relief map, but not stopping at the first intersect, but continuing until I've exited the shape). This looks plausible - but what would I do with such a hull shape, and additionally, doesnt relief mapping get really grody when the angle to the plane gets more and more extreme ? I've observed its only good for a range of angles-of-incidence and once you get towards a view vector that is less than 30 degrees to the plane, the visual artefacts grow really blatent. The resultant hull generation would get obviously distorted as the angle-of-incidence approaches zero.

Does any one know an implemention, blog or other source I might use to understand this slightly gnomic chapter ?

Thanks

 

Share this post


Link to post
Share on other sites

"doesnt relief mapping get really grody when the angle to the plane gets more and more extreme"

 

The general idea is that when you are sufficiently far away that angle DOESNT change that much (very fast) and you can shortcut processing by the simplification (LOD and the fact distant objects wont be changing much every frame) and caching of more than a little the generated Graphics data.

 

You probably (most likely) will need to readjust the Imposters seveal time IF you approach them or move sufficiently to alter their appearance ENOUGH.   But its that savings on reprocessing (when you would get largely the same results) - THAT is being avoided (to allow MORE processing resources  for the much closer HIGH detailed stuff)

Share this post


Link to post
Share on other sites

I think you've misunderstood the chapter a bit. These aren't like normal imposters at all but they're something completely different. The billboards are acting like little windows into a ray-tracing renderer for each of the single objects. The technique sounds like a trade-off to simplify geometry a little at the expense of much more expensive fragment shaders.

Share this post


Link to post
Share on other sites

@wodinoneeye - I take your point, I was using relief mapping to simulate sea surface but have now converted to geometry. You are quite correct and I was using it in a context where it wasnt supposed to be used.

 

@C0lumbo - thanks for your comment - I agree that somewhere I've got myself lost trying to translate my current understanding of imposters over to their concept of ray tracing. I agree the pixel shader of their technique, if it contains relief mapping, would seem to be really expensive even if I've only really got half an idea what they are on about.

Share this post


Link to post
Share on other sites

This topic is 406 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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this