I have classic polygonal scene (terrain, buildings etc.). Now I want to render volumetric model into this scene, using ray-casting. And I am not quite sure, how to do this... my only idea is to render polygonal scene to texture (same approach as for deferred rendering), than use depth map in ray-cast renderer and render ray-casted image to deffered scene.
Is there any other way ? With deferred rendering I have problem with aliasing and it has also little performance impact.
Ray-Casted model in polygonal scene
I have classic polygonal scene (terrain, buildings etc.). Now I want to render volumetric model into this scene, using ray-casting. And I am not quite sure, how to do this... my only idea is to render polygonal scene to texture (same approach as for deferred rendering), than use depth map in ray-cast renderer and render ray-casted image to deffered scene.
Is there any other way ? With deferred rendering I have problem with aliasing and it has also little performance impact.
Sounds like you're after a hybrid of poly rasterization and voxel rendering.
If your volumetric data is in a 3D texture, you could ray trace it in a pixel shader, or another option is to use isosurface extraction techniques to generate a polygonal surface from the volumetric data (like the Marching Cubes algorithm)
Sounds like you're after a hybrid of poly rasterization and voxel rendering. [/quote]
Yeah... thats what I am looking for.
Extraction (Marching Cubes etc) is not suitable, because of large amount of triangles... if i have model of 1024x1024x1024.. thats really huge. For ray-casting I can use GPU, but extracting is more complicated on GPU in real-time (dynamic number of triangles, limited VB size etc)
my only idea is to render polygonal scene to texture, then use depth map in ray-cast renderer and render ray-casted image to deffered scene.You can render your scene as normal, as long as your "ray-cast" pixel shader outputs a depth value. The order that you draw polygonal and ray-cast objects won't matter (as long as you're outputting correct depth values) as the Z-buffer will continue to function as normal, allowing them both to occlude and intersect each other.
Sounds like you're after a hybrid of poly rasterization and voxel rendering.
Yeah... thats what I am looking for.
Extraction (Marching Cubes etc) is not suitable, because of large amount of triangles... if i have model of 1024x1024x1024.. thats really huge. For ray-casting I can use GPU, but extracting is more complicated on GPU in real-time (dynamic number of triangles, limited VB size etc)
[/quote]
Isosurface extraction is a pretty widely researched topic, in many flavours each with its own performance/quality trade-offs. Marching Cubes is just the one name I remember the quickest on the matter ;)
http://swiftcoder.wordpress.com/planets/isosurface-extraction/
You can render your scene as normal, as long as your "ray-cast" pixel shader outputs a depth value. The order that you draw polygonal and ray-cast objects won't matter (as long as you're outputting correct depth values) as the Z-buffer will continue to function as normal, allowing them both to occlude and intersect each other.
[quote name='martinperry' timestamp='1314009526' post='4852215']my only idea is to render polygonal scene to texture, then use depth map in ray-cast renderer and render ray-casted image to deffered scene.
[/quote]
Yes.. thats good idea, but problem is, that my ray-caster is in CUDA
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement