一种体渲染中基于对象顺序的空体素跳跃方法
软件工程
[摘要] 近年来,数据采集领域产生了大量高分辨率和大尺寸的体数据。这些体数据从数百兆字节到数万亿字节不等,且通常包含许多精细而复杂的结构,这为体渲 染工作带来了巨大的挑战。同时,这些体数据往往包含大量可忽略的空白区域,这给体渲染的优化带来了可能。因此,本文实现了一种基于对象顺序的空体素跳跃方法,这 种方法可以有效跳过大片的空白区域,大幅减少着色器对体数据纹理的访问,以提高 体渲染的效率。我们使用了七个稀疏程度各不相同的开源体数据数据集进行对比实验。结果显示,这种空体素跳跃方法相较于不进行空体素跳跃的直接射线投射方法的平均 帧率提升超过百分之四十。综上所述,本实验证明了基于对象顺序的空体素跳跃方法 适用于稀疏体数据的渲染,具有很好的鲁棒性和普适性。
[关键词] 体渲染;空体素跳跃;射线投射
I
Empty Space Skipping for Volume Rendering Based on ObjectOrder
Software Engineering
[Abstract] Data acquisition produce volume data of very high resolution and large size at present. These volume data range from hundreds of megabytes to trillions of megabytes, and often contain many fine and intri cate structures, which pose huge challenges to volume rendering work. However, large volumes containing large empty space to skipping. This graduation project realized the empty space skipping base on objectorder, this method can effectively skip large empty areas, greatly reduce the access of texture, and improve the performance of volume rendering. Seven sparse volume data sets were used to evaluate this method and contrasted with stan dard ray casting method. The results show that this method increase more than 40 percent on average frame rate. Overall, these findings above demonstrate that empty space skipping is a valid method for the rendering of sparse volume data and it performs a higher robustness.
[Key Words] Volume Rendering;Empty Space Skipping;Ray Casting
II
目 录
1 绪论 1
1.2.1 基于图像顺序的空体素跳跃 1
1.2.2
基于对象顺序的空体素跳跃 2
1.3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 2
1.4 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 3
2 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 4
2.1 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 4
2.1.1 kd 树 4
2.1.2 八叉树 4
2.1.3 体素链表 4
2.1.4
笛卡尔网格 4
2.2 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 5
2.3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 6
2.3.1 计算着色器的特性 6
2.3.2 计算着色器的计算空间 6
2.3.3
计算着色器的执行 6
2.4 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 7
2.5 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 8
3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 9
3.1 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 9
3.2 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 10
3.3 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 10
3.4 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 11
4 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 12
4.1 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 12
4.2 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 12
4.2.1 载入体数据 12
4.2.2 生成网格纹理 12
4.2.3 生成包围几何 12
4.2.4 计算包围几何深度值 13
4.2.5 光线投射 14
4.2 算法运行 14
4.3 本章小结 16
5 实验验证 17
5.1 实验环境 17
5.2 实验数据集和实验步骤 17
5.3 实验结果 17
5.4 实验结果分析 17
5.5 本章小结 18
6 工作总结和心得体会 21
6.1 工作总结 21
6.2 心得体会 21
参考文献 23
声 明 24
致 谢 25














