罗月童1,薛 晔1,龙鹏程2,伍国永1
基于多分辨率裁剪纹理的体裁剪技术
罗月童,薛 晔,龙鹏程,伍国永
(1. 合肥工业大学计算机与信息学院VCC研究室,安徽合肥 230009;2. 中国科学院等离子体物理研究所,安徽合肥 230031)
为解决单分辨率裁剪纹理的数据规模过大的问题,该文提出了一种具有INDEX-DATA二级结构的多分辨率裁剪纹理。文章主要介绍了多分辨率裁剪纹理的定义和结构,并讨论多分辨率纹理的构建方法和基于多分辨率纹理的体裁剪方法,最后对实验结果进行了分析讨论。该文方法已在自主知识产权可视化软件SVIP中得到应用,取得了令人满意的结果。
计算机应用;INDEX-DATA纹理;多分辨率;体裁剪;直接体绘制
直接体绘制(DVR: Direct Volume Rendering)是可视化复杂数据集的重要工具,用户通过调节传递函数(TF: Transform Function)来显示/隐藏数据集中的特征。因为TF函数是全局函数,所以它难以凸显数据中的局部特征,虽然人们对TF函数进行了大量研究,但这个问题至今依没能得到有效解决。
虽然人们对TF函数进行了大量研究,但关于体裁剪技术的研究很少,深入的研究就更少。最简单的体裁剪方法是基于OpenGL、DirectX裁剪面的体裁剪方法,但这类方法只能裁剪出简单的形状,难以实现如图1(c)和图1(d)所示的常用效果。Westerman和Ertl提出基于蒙板测试的体裁剪方法,该方法能实现复杂的裁剪效果,但实现困难。随着可编程GPU技术的出现,研究基于GPU的体裁剪技术成为主流,Daniel Weiskop等人提出基于深度的体裁剪技术,该技术能实现精确裁剪且额外开销小,但它难以应用于非凸裁剪体。基于裁剪纹理的体裁剪技术一方面对裁剪体形状没有限制,另一方面基于可编程GPU很容易实现,所以它的应用非常广泛,但为了保持裁剪的准确性,通常需要很高分辨率的裁剪纹理,从而使得裁剪纹理过大。针对裁剪纹理太大的问题,本文提出多分辨率裁剪纹理,在保持体裁剪效果不变的情况下压缩裁剪纹理。
图1 体数据裁剪
体裁剪技术是指在DVR方法中实现显示指定内容的方法和技术,通常使用3D实体指定裁剪区域,并将3D实体称作裁剪体,如图2所示(为便于表达采用2D图表示)。基于裁剪纹理的体裁剪技术首先将3D实体离散成裁剪纹理,然后基于裁剪纹理实现体裁剪。最简单的裁剪纹理是0/1裁剪纹理,裁剪体内部的体元用1表示,其它体元用0表示。基于0/1裁剪纹理的体裁剪容易在边界处引起锯齿走样或使边界变得模糊不清的问题,所以文献[2]对0/1裁剪进行改进,提出距离场裁剪纹理。在距离场裁剪纹理中,每个体元中存储了按下述方法计算得到的距离:首先计算该体元中心点到裁剪体边界的距离(内部点的距离为正,外部点的距离为负),然后按公式化。其中表示裁剪纹理中体元对角线距离,表示采样点到裁剪体边界的最近距离。表示体元完全处于裁剪体外部,表示体元有可能和裁剪体边界相交,而表示体元完全处于裁剪体内部。在基于距离裁剪纹理的体裁剪算法中,在自定义的片段程序中查询距离裁剪纹理,如果该片段的裁剪纹理值不小于0.5则保留该片段,否则将该片段裁减掉。因为这种方法使用距离场裁剪纹理中ISOVALUE=0.5的等值面表示裁剪体边界,能有效克服0/1裁剪纹理的问题,所以本文在距离场裁剪纹理的基础上实现多分辨率裁剪纹理。
图2 体裁剪过程示意图
虽然基于裁剪纹理的体裁剪技术具有灵活、方便实现等优点,但高分辨率裁剪纹理需要占用大量纹理内存空间。观察发现,裁剪纹理只在裁剪体边界附近需要高分辨率,其它部分可以使用较低分辨率并不影响效果,因此本文提出如图3(b)所示多分辨率裁剪纹理——INDEX-DATA裁剪纹理,其中INDEX纹理采用低分辨率,描述裁剪体的总体结构,DATA纹理采用高分辨率,用于刻画裁剪体的边界细节。INDEX纹理中体元的可能取值及它们的意义如表1所示,DATA纹理保存INDEX纹理中(r, s, t, 0.5 )体元所对应的高分辨率采样数据。
图3 单分辨率裁剪纹理与多分辨率裁剪纹理的对比
表1 INDEX纹理体元的取值范围
2.1 多分辨率裁剪纹理的构建方法
(2)然后按下述方法处理每个方块:
1)遍历子块中所有元素的值:如果值都为1,则转向2);如果值均为0,则转向3);否则转向4);
2)将INDEX纹理中对应体元设为(0, 0, 0, 1),然后转到5);
3)将INDEX纹理中对应体元设为(0, 0, 0, 0),然后转到5);
4)按图3(b)所示方式将“扩展子块”移动到DATA纹理中并依次排列,“扩展子块”是将当前子块在上、下、左、右、前、后六个方向各扩展一个体元所形成的(+2)子块,扩张的目的是解决纹理查询中的边界问题;然后将INDEX纹理中对应体元设为(r, s, t, 0.5),其中(r, s, t)为子块中心点的DATA纹理坐标;
5) 结束对当前子块的处理。
(3)保存INDEX纹理和DATA纹理,结束。
2.2 基于多分辨率裁剪纹理的体裁剪
基于多分辨率裁剪纹理的体裁剪技术也是通过在自定义片段程序中查询裁剪纹理,然后根据查询结果决定对应片段的去留。假设当前片段的INDEX纹理坐标为,那么在片段程序首先以纹理坐标按GL_NEAREST方式查询INDEX纹理获取纹理值;然后基于的值进行以下处理:
1)计算DATA纹理坐标(s, t, r);
2)按GL_LINEAR方式查询(s, t, r)处的DATA纹理值;
本文基于文献[5]中的方法计算(s, t, r),计算公式为
本文算法已在自主开发可视化软件SVIP (Scientific Visualization Integrated Platform)中实现和应用,并且作者基于SVIP对本文算法进行了测试。测试环境如表2所示,实验结果如表3所示。由实验结果本文得如下结论:
·多分辨率纹理能有效压缩裁剪纹理,且压缩比和裁剪体形状有关。虽然对复杂结构裁剪体的压缩效果相对较差,但仍能获取很高的压缩比。
· 和单分辨率裁剪纹理的相比,使用多分辨率裁剪纹理会降低渲染速度,但依旧能够实现实时的渲染效果。渲染速度下降主要是因为在片段着色器程序中存在二级纹理查询。
表2 测试环境
表3 实验结果
注:压缩率 =(INDEX纹理+ DATA纹理)/单分辨率纹理
体裁剪技术是对TF函数的重要补充,在解决DVR难以揭示数据集内部细节特征的问题上有重要价值。随着可编程GPU技术的发展,基于裁剪纹理的体裁剪技术得到广泛使用,但该方法的不足之处是其体纹理太大。本文基于“仅裁剪体边界处需高分辨率裁剪纹理”的事实,提出INDEX-DATA结构的多分辨率裁剪纹理,以减少裁剪纹理的内存需求。实验表明IDEX-DATA结构的多分辨率裁剪纹理能有效节约纹理内存,尽管同时它也影响了渲染速度,不过仍能获得实时渲染效果。
[1] Pfister H, Lorensen B, Bajaj C, et al. The transfer function bake-off [J]. IEEE Computer Graphics and Applications, 2001, 21(3): 16-22.
[2] Daniel Weiskopf, Klaus Engel, Thomas Ertl. Interactive clipping techniques for texture-based volume visualization and volume shading [J]. IEEE Transactions on Visualization and Computer Graphics, 2003, 9(3): 298-312.
[3] Volz W R. Gigabyte volume viewing using split software/hardware interpolation [C]//Proc. 2000 Symp. Volume Visualization, 2000: 15-22.
[4] Westermann R, Ertl T. Efficiently using graphics hardware in volume rendering applications [C]// SIGGRAPH 1998 Conf. Proc., 1998: 169-179.
[5]Kraus M, Ertl T. Adaptive texture maps [C]// Proceedings of Graphics Hardware 2002, 2002: 7-15.
[6] Binotto A P, Comba J L, Freitas C M. Real-time volume rendering of time-varying data using a fragment-shader compression approach [C]// Proceedings of the 6th IEEE Symposium on Parallel and Large-data Visualization and Graphics (PVG'03), 2003: 69-76.
[7] 罗月童, 龙鹏程, 薛 晔, 等. 面向中子学分析的集成可视化平台SVIP的发展研究[J]. 核科学与工程, 2007, 27(4): 374-378.
Volume Clipping Technology Based on Multi-resolution Clipping Texture
LUO Yue-tong, XUE Ye, LONG Peng-cheng, WU Guo-yong
( 1. VCC Division, School of Computer and Information, Hefei University of Technology, Hefei Anhui 230009, China;2. Institute of Plasma Physics, Chinese Academy of Sciences, Hefei Anhui 230031, China )
A multi-resolution clipping texture with INDEX-DATA structure is presented to solve the huge size problem of single-resolution clipping texture data. Firstly, definition and structure of multi-resolution clipping texture are introduced; then multi-resolution clipping texture’s construction method and volume clipping technology based on multi-resolution clipping texture are discussed; finally, experiment results are discussed. The method presented in the paper has been applied in visualization software SVIP and the result is satisfactory.
computer application; INDEX-DATA texture; multi-resolution; volume clipping; direct volume rendering
TP 391
A
1003-0158(2011)03-0001-05
2009-12-18
安徽省自然科学基金资助项目(090412066);合肥工业大学博士学位专项基金资助项目;国家自然科学基金资助项目(60573174;60673028)
罗月童(1978-),男,安徽青阳人,副教授,博士,主要研究方向为计算机图形学,科学计算可视化,虚拟现实。