Original Post
Hi.
I'm trying to implement the true impostors solution described here: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch21.html inside my engine.
I'm essentially trying to render a large amount of distant asteroids, and this seems to be an ideal solution.
Now, I've been able to extract two heightmaps (one from the top, one from the bottom) from a model, and I was able to use a ray march/search combination to find the intersection between the incoming rays and the heightmap, and was able to get the geo displaying okay, but now I have a question about texturing and lighting, which wasn't brought up (anywhere I could find) in the original article.
Since the volume I'm now rendering is completely geo-less, how would I go about mapping textures and normals onto it? I was either thinking baking normal and texture maps to the top and bottom viewpoints and just using those to render onto the geo. The problem with this, is that I'll need to bind at least 5 textures just to display a single asteroid impostor, and I'd have to bake new textures for each model I want to trace out.
Another idea I had was to use a sort of "translation texture", which would hold the texture coordinates on the model as seen from the top and bottom and then using those to index into the model's original textures/normals.
Thing is though, I have no idea which solution would be best, or even if this is the way I'm supposed to be doing things? Has anyone implemented this kind of technique before willing to give me any sort of pointers about what I should be doing?
I'm trying to implement the true impostors solution described here: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch21.html inside my engine.
I'm essentially trying to render a large amount of distant asteroids, and this seems to be an ideal solution.
Now, I've been able to extract two heightmaps (one from the top, one from the bottom) from a model, and I was able to use a ray march/search combination to find the intersection between the incoming rays and the heightmap, and was able to get the geo displaying okay, but now I have a question about texturing and lighting, which wasn't brought up (anywhere I could find) in the original article.
Since the volume I'm now rendering is completely geo-less, how would I go about mapping textures and normals onto it? I was either thinking baking normal and texture maps to the top and bottom viewpoints and just using those to render onto the geo. The problem with this, is that I'll need to bind at least 5 textures just to display a single asteroid impostor, and I'd have to bake new textures for each model I want to trace out.
Another idea I had was to use a sort of "translation texture", which would hold the texture coordinates on the model as seen from the top and bottom and then using those to index into the model's original textures/normals.
Thing is though, I have no idea which solution would be best, or even if this is the way I'm supposed to be doing things? Has anyone implemented this kind of technique before willing to give me any sort of pointers about what I should be doing?