CN101593357B - 一种基于三维平面控件的交互式体切割方法 - Google Patents
一种基于三维平面控件的交互式体切割方法 Download PDFInfo
- Publication number
- CN101593357B CN101593357B CN200810113295.8A CN200810113295A CN101593357B CN 101593357 B CN101593357 B CN 101593357B CN 200810113295 A CN200810113295 A CN 200810113295A CN 101593357 B CN101593357 B CN 101593357B
- Authority
- CN
- China
- Prior art keywords
- volume data
- dimensional
- volume
- dimensional planar
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005520 cutting process Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000002452 interceptive effect Effects 0.000 title claims abstract description 36
- 238000009877 rendering Methods 0.000 claims abstract description 15
- 230000008569 process Effects 0.000 claims description 14
- 239000000203 mixture Substances 0.000 claims description 12
- 238000013519 translation Methods 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 6
- 238000005070 sampling Methods 0.000 claims description 5
- 238000002347 injection Methods 0.000 claims description 4
- 239000007924 injection Substances 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 238000012800 visualization Methods 0.000 abstract description 2
- 238000007654 immersion Methods 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- IXSZQYVWNJNRAL-UHFFFAOYSA-N etoxazole Chemical compound CCOC1=CC(C(C)(C)C)=CC=C1C1N=C(C=2C(=CC=CC=2F)F)OC1 IXSZQYVWNJNRAL-UHFFFAOYSA-N 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000000338 in vitro Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000007794 visualization technique Methods 0.000 description 1
Landscapes
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明基于三维平面控件的交互式体切割方法,为解决如何在基于软件和图形硬件的体绘制场景中进行交互式体切割的技术问题,本发明包括:(1)构建体数据和三维平面控件的集成化绘制环境;(2)进行体数据和三维平面控件的混合绘制;(3)通过鼠标操纵来完成体数据的交互切割。本发明将体数据、三维平面控件、体绘制、混合绘制以及鼠标操纵集成在了同一个环境中,从而实现了交互、沉浸式的体切割。同时体绘制既可以采用基于软件的体绘制,能够实现大规模体数据的高质量绘制,也可以采用基于图形硬件的体绘制,能够实现中小规模体数据的快速绘制,在体数据探查及可视化领域具有重要的应用价值。
Description
技术领域
本发明涉及计算机图形学中的三维可视化领域,特别涉及利用三维平面控件和体绘制方法来实现交互式的体切割。
背景技术
体绘制(Volume Rendering)出现于上个世纪80年代,是三维可视化方法中非常重要的一种方法。由于体绘制不仅可以显示三维规则数据(也称为体数据)的表面信息,还可以显示其内部信息,从而能实现体数据的真实感显示,有利于体数据信息的全面理解与分析,因此在辅助医生诊断、工业CT缺陷检测等方面有着非常重要的作用。
在体绘制过程中,可以通过交互调节灰度-阻光度等传递函数来显示体数据内部组织的信息。但对于结构比较复杂的体数据,如果想同时显示多种组织,则需要花费比较多的时间来调节,而且得到的显示结果并不一定能比较清晰地反映各组织之间的相对位置等关系。体切割方法(VolumeClipping)在体绘制中引入了裁剪几何,将不需要显示的部分切割掉,而只保留需要显示的部分,从而克服了上述缺陷,可以用来探查(Explore)结构复杂的体数据。
国内外研究者在体切割方面已经做了很多工作,并取得了很大的成果。如1998年,Westermann和Ertl采用了基于模板缓存测试的裁剪几何方法来切割体数据,Sommer等人在1999年利用图形硬件的三维纹理操作实现了体数据的任意裁剪平面切割,Weiskopf等人则在2003年利用基于深度的裁剪方法和基于体的裁剪方法实现了复杂的裁剪几何切割。尽管这些方法能得到良好的体切割结果,但是在实际应用中还需要更直观的交互操纵方式来调节裁剪参数,而不是通过离体的方式(例如利用控制面板上的滑块等界面控件)来调节。
针对上述问题,一些研究者提出了直接在绘制场景中进行交互式体切割的方法,以实现交互而沉浸的目的。如2003年,McGuffin等人利用三维控件来浏览体数据,Huff等人在2006年利用裁剪器、擦除器和挖掘器来交互地切割体数据。但是到目前为止,据报导的此类交互沉浸式体切割方法几乎都是采用基于图形硬件的体绘制来实现体数据的绘制,还没有研究者采用基于软件的体绘制来实现交互沉浸式的体切割。在基于图形硬件的体绘制中,通常情况下体数据首先会被重建成三维空间中的一系列纹理多边形,然后再被绘制。但在基于软件的体绘制中,体数据不会被重建成具有深度信息的中间模型,而是直接被绘制成一幅二维投影图像。由于缺少了深度信息,所以在基于软件的体绘制场景中实现交互式体切割仍然是一个技术难题。而研究既能适合软绘制(基于软件的体绘制)又能适合硬绘制(基于图形硬件的体绘制)的交互沉浸式体切割方法则更是一个挑战。
发明内容
为了解决的技术问题,本发明的目的是突破现有的交互沉浸式体切割技术局限于采用基于图形硬件的体绘制来实现体数据的绘制的限制,为此,提供一种既能适合软绘制又能适合硬绘制的基于三维平面控件的交互沉浸式体切割方法。
为达到所述目的,本发明基于三维平面控件的交互式体切割方法解决问题的技术方案是:
步骤S1:建立一个完整的坐标***,将体数据加入该坐标***,然后在该坐标***中加入三维平面控件,从而构建集成化绘制环境;
步骤S2:在集成化绘制环境中,首先基于软件的体绘制或采用基于图形硬件的体绘制,并根据鼠标消息采取层次细节的方式和二维纹理空间映射来实现体数据的绘制,然后遍历绘制所有三维平面控件,对每一个三维平面控件进行检查,检查是否需要显示切割面,如果为是,则采样得到二维切面图像,并计算当前视线方向与该控件裁剪平面法矢点积,如果点积大于零,则绘制三维平面控件和二维切面图像,否则只绘制三维平面控件;如果为否,则只绘制三维平面控件,从而完成体数据和三维平面控件的混合绘制;
步骤S3:使用鼠标来交互地操纵体数据和三维平面控件,并在鼠标动作后返回步骤S2以更新混合绘制,从而实现对体数据的交互式切割;所述鼠标交互地操纵体数据是平移、旋转和缩放;体数据中心始终位于中间平面上;在鼠标操纵体数据时,三维平面控件始终与体数据保持相对静止。
根据本发明的实施例,所述三维平面控件由四个顶点、四条棱边以及一个透明矩形面组成,并封装了一个裁剪平面,裁剪平面的原点和法矢根据三维平面控件的计算得到。
根据本发明的实施例,所述坐标***包括:体素坐标系、模型坐标系、世界坐标系、视图坐标系和屏幕坐标系。
根据本发明的实施例,在所述世界坐标系中加入体数据,根据体数据大小调整各坐标系间的变换关系,并使体数据的中心点位于视图裁剪体的中间平面上。
根据本发明的实施例,在所述世界坐标系中加入一个或多个三维平面控件,并根据体数据的大小和位置来初始化三维平面控件的状态。
根据本发明的实施例,所述体数据的绘制包括以下步骤:
步骤S21:提取三维平面控件所封装的裁剪平面信息,利用体绘制计算出体数据在视图裁剪体***面上的二维投影图像;
步骤S22:从视图坐标系原点向二维投影图像的四个顶点引射线,计算各射线与视图裁剪体中间平面的交点,获得二维投影图像在中间平面上的投影矩形,利用纹理映射将二维投影图像影射到投影矩形上,并进行映射图像的绘制。
根据本发明的实施例,所述三维平面控件在世界坐标系中的状态通过以下鼠标操纵方式来改变:鼠标左键操纵顶点,用于实现三维平面控件的任意旋转;鼠标左键操纵棱边,用于实现三维平面控件的伸缩;鼠标左键操纵透明矩形面,用于实现三维平面控件在裁剪平面内的平移;鼠标右键操纵顶点,用于实现三维平面控件在裁剪平面法矢方向上的平移;鼠标右键操纵棱边,用于实现三维平面控件绕透明矩形面对称轴的旋转;鼠标中键操纵顶点,用于实现控件在裁剪平面内的缩放。
本发明的有益效果:本发明将体数据、三维平面控件、体绘制、混合绘制以及鼠标操纵集成在了同一个环境中,从而实现了交互、沉浸式的体切割。同时体绘制既可以采用基于软件的体绘制,能够实现大规模体数据的高质量绘制,也可以采用基于图形硬件的体绘制,能够实现中小规模体数据的快速绘制。因此可以根据数据规模和软硬件环境选择合适的体绘制方法,提高交互式体切割的效率,在体数据探查及可视化领域具有重要的应用价值。
附图说明
图1是基于三维平面控件的交互式体切割方法的流程图;
图2是构建的集成化绘制环境;
图3是三维平面控件的几何结构;
图4是利用光线投射计算二维投影图像的过程;
图5是映射图像与三维平面控件的空间关系;
图6是三维平面控件的交互操纵方式;
图7是利用三维平面控件进行交互式体切割的应用实例。
具体实施方式
下面结合附图详细说明本发明技术方案中所涉及的各个细节问题。应指出的是,所描述的实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。
本发明基于三维平面控件和由体绘制得到的二维投影图像来实现交互式体切割。每个三维平面控件都封装了一个裁剪平面,并可以通过鼠标交互操纵来改变三维平面控件的状态。首先提取三维平面控件所封装的裁剪平面信息,并利用基于软件的体绘制或基于图形硬件的体绘制得到体数据的二维投影图像。然后利用纹理映射的方法将二维投影图像重新映射到三维空间中,并进行映射图像与三维平面控件的绘制,从而得到体数据和三维平面控件的混合绘制图像。利用鼠标交互操纵体数据和三维平面控件,并更新体数据和三维平面控件的混合绘制,便能够实现交互而沉浸的体切割。
下面结合附图详细描述本发明提出的一种基于三维平面控件的交互式体切割方法。本发明的一种具体实现方案的流程图如图1所示,主要包括三个步骤:构建集成化绘制环境、混合绘制、鼠标操纵。详细步骤如下:
步骤S1:构建集成化绘制环境
为实现沉浸而准确的体切割,必须满足两个要求:一是对三维平面控件的交互操作在视觉效果上必须是正确的,二是通过三维平面控件来调节的裁剪参数必须是准确的,而且对体数据的绘制也必须是准确的。因此必须把体数据和三维平面控件集成在一个统一的绘制环境下,步骤包括:建立一个完整的坐标***,将体数据加入该坐标***,并调整各坐标系间的变换关系,然后在该坐标***中加入一个或多个三维平面控件,并初始化各三维平面控件的状态。
在绘制环境中建立了五个坐标系,如图2所示,包括体素坐标系G、模型坐标系M、世界坐标系W、视图坐标系V以及屏幕坐标系S。三维平面控件3位于世界坐标系中。视图裁剪体2位于视图坐标系V中,并决定了视图坐标系V的可视区域。射线1是从视图坐标系V的原点投向视图裁剪体***面的方向线。从体素坐标系G到屏幕坐标系S的变换矩阵SX可以表示为:
SX=STV·VTW·WTM·MTG·GX (1)
其中GX是体素坐标系G中的坐标,而SX是变换到屏幕坐标系S中的坐标,GX和SX都可以表示成[x y z 1]T的形式。MTG、WTM、VTW和STV可以写成一个统一的形式JTI,表示从坐标系I到坐标系J的一个4×4的坐标变换矩阵。体素坐标系G与模型坐标系M之间只存在缩放关系,缩放参数为体数据的体素间距,因此体素坐标系G与模型坐标系M的原点始终保持一致。
三维平面控件的几何结构如图3所示,由一个透明矩形面、四个顶点31和四条棱边32组成,并封装了一个裁剪平面。把四个顶点分别记作为“左上”、“左下”、“右下”和“右上”,那么裁剪平面的原点34就是这四个顶点的中心点,裁剪平面的原点和法矢根据三维平面控件的计算得到,而裁剪平面的法矢33则是两个对角向量的叉积,四个顶点用圆球来实现,四条棱边用圆柱来实现,四个顶点和四条棱边还可以选择其他的方式,在此不再赘述。
在所述世界坐标系中加入体数据,根据体数据大小调整各坐标系间的变换关系,并使体数据的中心点位于视图裁剪体的中间平面上。在所述世界坐标系中加入一个或多个三维平面控件,并根据体数据的大小和位置来初始化三维平面控件的状态。在初始状态下,体数据的中心点被置于世界坐标系W的原点,并且模型坐标系M与世界坐标系W之间没有旋转和缩放关系。假设体数据在世界坐标系W中的对角线长度为L,则视图坐标系V的原点被放在世界坐标系W的z轴正方向上离体数据中心为3L的位置,同时设置视图裁剪体的***面和远平面分别位于离视图坐标系V的原点为对角线长度L和5L的位置,从而使体数据的中心点位于视图裁剪体的中间平面上。三维平面控件的初始长和宽分别被设置成体数据的长和宽,初始位置被设定在世界坐标系W的xoy平面内,并使其中心位于世界坐标系W的原点。在后续的交互体切割过程中,体数据和三维平面控件的状态都可以通过鼠标交互操纵来改变。
步骤S2:混合绘制
在集成化绘制环境中,我们首先基于体绘制得到体数据的二维投影图像。然后利用纹理映射的方法将二维投影图像重新映射到三维空间中,并进行映射图像的绘制,最后遍历绘制所有三维平面控件,从而得到体数据和三维平面控件的混合绘制图像。所述混合绘制包括以下步骤:
步骤S21:提取三维平面控件所封装的裁剪平面信息,利用体绘制计算出体数据在视图裁剪体***面上的二维投影图像;
步骤S22:从视图坐标系原点向二维投影图像的四个顶点引射线1,计算各射线1与视图裁剪体中间平面的交点,获得二维投影图像在中间平面上的投影矩形,利用纹理映射将二维投影图像影射到投影矩形上,并进行映射图像的绘制;
步骤S23:对每一个三维平面控件进行检查,检查是否需要显示切割面,如果为是,则采样得到二维切面图像,并绘制三维平面控件和二维切面图像;如果为否,则只绘制三维平面控件。
上述步骤S21和S22基于体绘制和二维纹理空间映射来实现体数据的绘制,步骤S23遍历绘制了所有三维平面控件。获取体数据二维投影图像的体绘制方法既可以采用基于软件的体绘制,也可以采用基于图形硬件的体绘制,并根据鼠标消息采取层次细节的方式来绘制体数据,不同体绘制方法最大的区别在于如何提取三维平面控件所封装的裁剪平面信息来进行体数据的绘制。如下以体绘制中非常经典的光线投射方法(RayCasting)为例来描述体数据的绘制过程。
利用光线投射来计算体数据的二维投影图像的过程如图4所示。首先将体数据的八个顶点投影到屏幕上,计算体数据在屏幕上的投影包围盒4,并将投影包围盒4中每个像素的积累颜色和阻光度初始化为零。然后遍历投影包围盒4中的所有像素,对于每一个像素,采用以下步骤计算其最终的积累颜色和阻光度:
①从视图坐标系V的原点向该像素投出射线,计算该射线1与视图裁剪体2的近、远平面的交点s和e,并初始化S=s,E=e;
②然后计算与体数据外表面的交点c和d,并令S=c,E=d;
③再计算与两个裁剪平面的交点a和b,对于每个裁剪平面,在法矢33方向上的半平面内的射线段将被保留,而其余射线段将被裁剪掉,令S=a,E=b;④最后沿射线段步进,在每个采样点计算颜色和阻光度,并根据公式(2)递归混合得到该像素的最终积累颜色和阻光度。
在处理完所有像素后,便得到了体数据的二维投影图像。
假设A、B、C、D是二维投影图像的四个顶点,如图5所示。O是视图坐标系的原点,从O向A、B、C、D引射线,E、F、G、H分别是各射线1与视图裁剪体2的中间平面5的交点。我们首先利用glTexImage2D创建二维投影图像的纹理,并利用glBegin(GL_POLYGON)将该纹理映射到矩形EFGH上。然后遍历所有三维平面控件,对于每一个三维平面控件,如果不需要显示切割面,则利用gluSphere、gluCylinder和glBegin(GL_QUADS)来绘制该控件。如果需要显示切割面,则在透明矩形面上对体数据进行重采样,获得二维切面图像,并利用glTexImage2D创建二维切面图像的纹理,之后计算当前视线方向与该控件裁剪平面法矢33的点积。如果点积大于零,利用gluSphere绘制该控件的顶点,利用gluCylinder绘制该控件的棱边,并利用glBegin(GL_QUADS)将二维切面图像的纹理映射到该控件的透明矩形面上。如果点积小于零,则利用gluSphere、gluCylinder和glBegin(GL_QUADS)来绘制该控件。从而实现了二维投影图像的纹理映射以及映射图像与三维平面控件的绘制。
步骤S3:鼠标操纵
在对体数据进行交互式切割的过程中,使用鼠标来交互地操纵体数据和三维平面控件,检查是否有三维平面控件***纵,是则改变该控件在世界坐标系中的状态,否则使体数据平移、旋转和缩放,并使体数据的中心始终保持在视图裁剪体的中间平面上,同时变换三维平面控件使其始终与体数据保持相对静止,在鼠标动作后返回步骤S2以更新混合绘制,从而实现对体数据的交互式切割。
基于OpenGL的选择机制,实现了对三维平面控件的交互操纵,如图6所示方式包括:(a)使用鼠标左键操纵顶点来实现控件的任意旋转;(b)使用鼠标左键操纵棱边来实现控件的伸缩;(c)使用鼠标左键操纵透明矩形面来实现控件在裁剪平面内的平移;(d)使用鼠标右键操纵顶点来实现控件在裁剪平面法矢方向上的平移;(e)使用鼠标右键操纵棱边来实现控件绕透明矩形面对称轴的旋转;(f)使用鼠标中键操纵顶点来实现控件在裁剪平面内的缩放。通过这六种交互操纵方式,可以为体绘制提供任意位置和方向的裁剪平面。
如下以方式(c)为例来描述交互操纵的实现。首先假设使用鼠标左键选中透明矩形面并移动鼠标,记先前、当前鼠标指针在屏幕坐标系S中的坐标分别为[xmold ymold 0 1]T和[xmnew ymnew 0 1]T。然后可通过
WX=WTV·VTS·SX (3)
计算得到这两点在世界坐标系W中的坐标WXmold和WXmnew。再计算得到世界坐标系下的鼠标移动向量ΔVW=WXmnew-WXmold。从而可以利用
ΔVP=ΔVW-(ΔVW·NP)·NP (4)
计算得到鼠标移动在裁剪平面内的投影向量,其中ΔVP是投影向量,NP是裁剪平面的法矢,而·则表示点积。最后将三维平面控件的每个顶点坐标都加上ΔVP,便得到了三维平面控件在被鼠标移动后的新位置。
在鼠标操纵过程中,如果没有三维平面控件被选中,则把鼠标移动投影为体数据的平移、旋转和缩放量,实现方法与上述相似。我们利用鼠标左键使体数据绕自身中心旋转,利用鼠标中键使体数据在世界坐标系中平移,并利用鼠标右键使体数据相对于自身中心缩放,并使体数据的中心在旋转、平移和缩放过程中始终保持在视图裁剪体的中间平面上,同时根据体数据的状态来变换三维平面控件,使三维平面控件始终与体数据保持相对静止。
在鼠标操纵过程中,根据鼠标消息采取层次细节(Level of Detail)的方式来绘制体数据,步骤包括:在绘制前,先检查是否有鼠标消息,是则采用粗绘制,增大采样间距,减少计算量,从而提高了绘制帧率,否则采用精绘制,减少采样间距,增大计算精度,从而提高了绘制效果。
运行结果
已经将本发明所提出的方法集成到了我们自行研发的三维图像工具包中。该工具包采用面向对象的设计方法和软件工程规范,是用C++语言实现的、跨平台的三维图像处理包。在该工具包中,除了利用光线投射体绘制来获得二维投影图像外,还实现了利用体素投影体绘制(Splatting)以及错切变形体绘制(Shear Warp)来进行体数据的绘制。为验证本发明所提方法的交互沉浸性和高效性,基于该工具包在一台计算机上进行了大量实验。计算机的软硬件配置为:Intel Core21.86GHz处理器,1GB物理内存,ATI Radeon X300显卡,Windows XP操作***。实验数据是一个大小为208×256×225×8bit的脑部CT数据,该数据来源于http://www.psychology.nottingham.ac.uk/staff/crl/ct.zip。
图7是利用三维平面控件进行交互式体切割的应用实例,其中(a)基于光线投射体绘制;(b)基于体素投影体绘制;(c)基于错切变形体绘制。我们在进行交互体切割的过程中,可以非常直观地对体数据和三维平面控件进行操纵,就像我们处于三维绘制场景中一样。该定性实验验证了本发明所提方法的交互沉浸性。
如下是进一步的实验。考虑到实验的可重复性,我们首先规范一些与体切割效率相关的参数:
①屏幕坐标系的窗口大小为948×618;
②二维投影图像大小为302×294;
③体绘制时不加光照;
④每个体素的密度值都被映射成(r,g,b,a),将密度值在0~20之间的体素映射为(0.0,0.0,0.0,0.0),将密度值为255的体素映射为(0.6,0.6,0.2,0.25),其它密度值的映射通过插值计算得到;
⑤在绘制环境中加入一个三维平面控件,要求该控件能显示切割面,并调节该控件使其位于大脑的对称平面上。然后我们用鼠标间断而轻微地操纵体数据和三维平面控件,从而既能驱动粗绘制和精绘制,又能保证体数据和三维平面控件的状态基本稳定。在不同情况下的绘制帧率如表格1所示。由于采用了层次细节绘制,我们可以在交互操纵的时候得到较高的绘制帧率,而在停止操纵后得到较高质量的绘制图像。该定量实验验证了本发明所提方法的高效性。
表格1体切割的绘制效率
体绘制器\条件 | 操纵体数据 | 操纵三维平面控件 | 精绘制 |
光线投射 | 0.032s/31.72fps | 0.057s/17.63fps | 0.70s/1.42fps |
体素投影 | 0.089s/11.14fps | 0.11s/8.94fps | 1.69s/0.59fps |
错切变形 | 0.029s/33.60fps | 0.054s/18.62fps | 0.41s/2.44fps |
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (6)
1.一种基于三维平面控件的交互式体切割方法,其特征在于,包括以下步骤:
步骤S1:建立一个完整的坐标***,将体数据加入该坐标***,然后在该坐标***中加入三维平面控件,从而构建集成化绘制环境;
步骤S2:在集成化绘制环境中,首先基于软件的体绘制或采用基于图形硬件的体绘制,并根据鼠标消息采取层次细节的方式和二维纹理空间映射来实现体数据的绘制,然后遍历绘制所有三维平面控件,对每一个三维平面控件进行检查,检查是否需要显示切割面,如果为是,则采样得到二维切面图像,并计算当前视线方向与该控件裁剪平面法矢点积,如果点积大于零,则绘制三维平面控件和二维切面图像,否则只绘制三维平面控件;如果为否,则只绘制三维平面控件,从而完成体数据和三维平面控件的混合绘制;
所述体数据的绘制包括以下步骤:步骤S21:提取三维平面控件所封装的裁剪平面信息,利用体绘制计算出体数据在视图裁剪体***面上的二维投影图像;步骤S22:从视图坐标系原点向二维投影图像的四个顶点引射线,计算各射线与视图裁剪体中间平面的交点,获得二维投影图像在中间平面上的投影矩形,利用纹理映射将二维投影图像映射到投影矩形上,并进行映射图像的绘制;
步骤S3:使用鼠标来交互地操纵体数据和三维平面控件,并在鼠标动作后返回步骤S2以更新混合绘制,从而实现对体数据的交互式切割;所述鼠标交互地操纵体数据是平移、旋转和缩放;体数据中心始终位于中间平面上;在鼠标操纵体数据时,三维平面控件始终与体数据保持相对静止。
2.根据权利要求1所述的交互式体切割方法,其特征在于:所述三维平面控件由四个顶点、四条棱边以及一个透明矩形面组成,并封装了一个裁剪平面,裁剪平面的原点和法矢根据三维平面控件的计算得到。
3.根据权利要求1所述的交互式体切割方法,其特征在于,所述坐标***包括:
体素坐标系、模型坐标系、世界坐标系、视图坐标系和屏幕坐标系。
4.根据权利要求3所述的交互式体切割方法,其特征在于,在所述世界坐标系中加入体数据,根据体数据大小调整各坐标系间的变换关系,并使体数据的中心点位于视图裁剪体的中间平面上。
5.根据权利要求3所述的交互式体切割方法,其特征在于,在所述世界坐标系中加入一个或多个三维平面控件,并根据体数据的大小和位置来初始化三维平面控件的状态。
6.根据权利要求1所述的交互式体切割方法,其特征在于,所述三维平面控件在世界坐标系中的状态通过以下鼠标操纵方式来改变:鼠标左键操纵顶点,用于实现三维平面控件的任意旋转;鼠标左键操纵棱边,用于实现三维平面控件的伸缩;鼠标左键操纵透明矩形面,用于实现三维平面控件在裁剪平面内的平移;鼠标右键操纵顶点,用于实现三维平面控件在裁剪平面法矢方向上的平移;鼠标右键操纵棱边,用于实现三维平面控件绕透明矩形面对称轴的旋转;鼠标中键操纵顶点,用于实现控件在裁剪平面内的缩放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810113295.8A CN101593357B (zh) | 2008-05-28 | 2008-05-28 | 一种基于三维平面控件的交互式体切割方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810113295.8A CN101593357B (zh) | 2008-05-28 | 2008-05-28 | 一种基于三维平面控件的交互式体切割方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101593357A CN101593357A (zh) | 2009-12-02 |
CN101593357B true CN101593357B (zh) | 2015-06-24 |
Family
ID=41407998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810113295.8A Active CN101593357B (zh) | 2008-05-28 | 2008-05-28 | 一种基于三维平面控件的交互式体切割方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101593357B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622236A (zh) * | 2012-01-13 | 2012-08-01 | 深圳市妙趣工场信息科技有限公司 | 一种Geart3D游戏引擎 |
EP2665042A1 (en) * | 2012-05-14 | 2013-11-20 | Crytek GmbH | Visual processing based on interactive rendering |
CN102968791B (zh) * | 2012-10-26 | 2016-12-21 | 深圳市旭东数字医学影像技术有限公司 | 三维医学图像图形显示的交互方法及其*** |
CN103049266A (zh) * | 2012-12-17 | 2013-04-17 | 天津大学 | Delta3D三维场景漫游的鼠标操作方法 |
DE102013216858A1 (de) * | 2013-08-23 | 2015-02-26 | Siemens Aktiengesellschaft | Verfahren zur Darstellung eines in einem Volumendatensatz abgebildeten Objektes auf einem Bildschirm |
CN105224288B (zh) * | 2014-06-27 | 2018-01-23 | 北京大学深圳研究生院 | 双目三维图形渲染方法及相关*** |
CN104731653B (zh) * | 2015-03-31 | 2018-09-25 | 上海盈方微电子有限公司 | 一种Android显示***的软件绘制和硬件绘制动态切换方法 |
CN104794758B (zh) * | 2015-04-17 | 2017-10-03 | 青岛海信医疗设备股份有限公司 | 一种三维图像的裁剪方法 |
-
2008
- 2008-05-28 CN CN200810113295.8A patent/CN101593357B/zh active Active
Non-Patent Citations (2)
Title |
---|
Joe Kniss,etc..Multidimensional Transfer Functions for Interactive Volume Rendering.《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》.2002,第8卷(第3期),270-285. * |
田捷,等..集成化医学影像算法平台理论与实践.《集成化医学影像算法平台理论与实践》.清华大学出版社,2004,63-125. * |
Also Published As
Publication number | Publication date |
---|---|
CN101593357A (zh) | 2009-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101593357B (zh) | 一种基于三维平面控件的交互式体切割方法 | |
Wang et al. | Generalized displacement maps | |
Mueller et al. | High-quality splatting on rectilinear grids with efficient culling of occluded voxels | |
Samet et al. | Hierarchical data structures and algorithms for computer graphics. II. Applications | |
CN101982838B (zh) | 一种加速被面光源照射的3d虚拟场景的光线跟踪的方法 | |
CN103106685B (zh) | 一种基于gpu的腹部脏器三维可视化方法 | |
CN100429676C (zh) | 三维图像体重建部分体选择的交互控制方法 | |
CN101604453A (zh) | 基于分块策略的大规模数据场体绘制方法 | |
US20080259077A1 (en) | Shape preserving mappings to a surface | |
CN103077546B (zh) | 二维图形的三维透视变换方法 | |
CN103345774B (zh) | 一种三维多尺度矢量化的建模方法 | |
Noguera et al. | Volume rendering strategies on mobile devices | |
Westerteiger et al. | Spherical Terrain Rendering using the hierarchical HEALPix grid | |
US9401044B1 (en) | Method for conformal visualization | |
Yang et al. | An efficient rendering method for large vector data on large terrain models | |
CN108874932A (zh) | 一种基于改进的光线投射算法的海洋水声场三维可视化方法 | |
CN105279788B (zh) | 一种生成物体空间扫掠体的方法 | |
Qu et al. | Ray tracing height fields | |
Kaufman et al. | A survey of architectures for volume rendering | |
Glueck et al. | Multiscale 3D reference visualization | |
Dai et al. | Volume‐Rendering‐Based Interactive 3D Measurement for Quantitative Analysis of 3D Medical Images | |
CN114140602A (zh) | 一种三维核辐射剂量场的数据混合绘制方法及可视化*** | |
Zhao et al. | High-performance and real-time volume rendering in CUDA | |
Çalışkan et al. | Overview of Computer Graphics and algorithms | |
Yagel | Classification and survey of algorithms for volume viewing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |