发明名称 一种基于三维纹理硬件加速的海量数据体绘制方法
摘要 公开一种基于三维纹理硬件加速的海量数据体绘制方法,其中海量数据是指:数据量超过计算机物理内存所能容纳的极限,无法在处理时完全转载入物理内存。主要步骤包括:数据预处理,传递函数处理和原始数据分块;计算当前视线方向并根据视线方向确定子数据块绘制顺序;用三维纹理的方法对每个子数据块数据分别绘制。本发明通过对海量原始数据进行合理分块,使每块数据能够被装入内存单独处理,从而能够对超出内存容量的海量数据进行体绘制。同时,通过使用三维纹理硬件等措施优化分块绘制流程,大大加速整个绘制过程,实现了海量数据的快速可视化,在大规模医学影像数据处理及可视化领域有着重要的应用价值。
申请公布号 CN101286225B 申请公布日期 2010.10.06
申请号 CN200710065336.6 申请日期 2007.04.11
申请人 中国科学院自动化研究所 发明人 田捷;薛健
分类号 G06T1/60(2006.01)I;G06T15/00(2006.01)I 主分类号 G06T1/60(2006.01)I
代理机构 中科专利商标代理有限责任公司 11021 代理人 周国城
主权项 一种基于三维纹理硬件加速的海量数据体绘制方法,其特征在于:步骤S1:对原始体数据合理的分块处理,将海量原始体数据分解成可装入内存及显卡显存的独立子数据块,并将独立子数据块存入磁盘备用,同时对体绘制传递函数进行处理,生成快速查找表;将传递函数的值域映射到RGBA,每个分量的值离散化为[0,255]之内的整数,根据原始数据灰度范围生成一个列表,将体素灰度值作为索引得到的列表元素值即为该体素经过传递函数作用后的最终绘制所用颜色值;并根据传递函数对子数据块进行分类,找出完全透明的子数据块,从待绘制的子数据块中剔除;步骤S2:检查是否更改原始传递函数,如果是,则返回步骤S1重新处理传递函数以及对子数据块进行分类;如果否,则计算当前视线方向,并按照总是从在视线方向上离视点最远的顶点处的子数据块开始,从后向前绘制;其中,只要计算八个顶点在视线上的投影,找出其中最大的即可确定子数据块的绘制顺序,将按该顺序排列的待绘制子数据块索引序列以及从步骤S1得到的处理后的传递函数传给步骤S3;步骤S3:遍历待绘制子数据块索引序列,按索引从磁盘取得步骤S1得到的子数据块,并利用纹理图形硬件加速每一子数据分块的绘制,首先应用步骤1生成的传递函数查找表快速生成最终绘制所用的三维纹理块,并将此三维纹理块导入到显卡的纹理缓存中;然后,用垂直于视线的平面按照视线方向从后向前切割三维纹理块长方体,生成纹理多边形;其中,在实际生成纹理多边形之前,先通过建立一个快速的查找表,给出所述纹理长方体八个顶点的状态和要生成的纹理多边形之间的映射关系,之后,在实际生成纹理多边形时,用查表的方法来加速生成纹理多边形的过程;所述纹理块长方体八个顶点的状态指:当平面与长方体相交时,其各顶点共有两种状态:在平面正向空间内及平面上,即,代入平面方程求得的值大于等于0;或者在平面负向空间内,即,代入平面方程求得的值小于0;最后,仍然按从后向前的顺序绘制所有生成的纹理多边形,得到子数据块的绘制结果,遍历完成即代表一遍绘制结束,实现对海量数据的快速体绘制,如果需要重复绘制,程序不结束,则转步骤S2检查是否更改传递函数并继续上面的流程,否则整个程序结束。
地址 100080 北京市海淀区中关村东路95号