我从场景图2009课程笔记的Advanced IlluminationTechniques forGPU-Based Volume Raycasting学习了一些体积渲染技术。我感兴趣的是对象顺序空白空间跳过,它将边界框栅格化为许多小块,如下图所示:
我想知道如何实现这个?通过八叉树?或任何其他技术?我已经实现了一个简单的光线投射体绘制程序,没有对象顺序空白空间跳过。代码片段或伪代码会有很大帮助。
答案 0 :(得分:0)
基本思想是将边界几何体生成为三角形网格,然后将该网格物体渲染到屏幕外缓冲区,以计算在第二遍中用于光线行进的开始和结束位置。 / p>
我使用OpenGL 4和blogged about it在C ++中实现了这一点,包括源代码。以下是概要:
gridTex
,其中每个体素包含最大iso值。gridTex
中的每对相邻体素,如果一个处于活动状态而另一个处于非活动状态,则生成四边形。每次iso值改变时都这样做。