Ray-Casted model in polygonal scene

Started by
4 comments, last by martinperry 12 years, 7 months ago
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.
Advertisement

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/

[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.
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]

Yes.. thats good idea, but problem is, that my ray-caster is in CUDA :(

This topic is closed to new replies.

Advertisement