VTK面绘制(SR)与体绘制(VR)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VTK面绘制(SR)与体绘制(VR)相关的知识,希望对你有一定的参考价值。

面绘制 (Surface Rendering)

VTK中基于面绘制实现三维重建,使用的是经典的Marching Cubes(移动立方体法)算法。
  
  面绘制是采用分割技术对一系列的二维图像进行轮廓识别、提取等操作,最终还原出被检测物体的三维模型,并以表面的方式显示出来。
  面绘制的数据流管道pipeline结构为:
读取器->提取等值面->数据处理->映射器->实例化角色->绘制器->绘制窗口->交互器->交换方式。
Marching Cubes算法简介:
首先,假定原始数据是离散的三维空间规则数据场;
其次,给出所求等值面的值;
最后,找出等值面经过的体元位置,求出该体元内的等值面并计算出相关参数(以便由常用的图形软件包或图形硬件提供的面绘制功能绘制等值面)。
VTK提供了两种提取等值面的类:
(1) vtkContourFilter
(2) vtkMarchingCubes.
VTK通过vtkPolyDataNormals在等值面上产生法向量;通过vtkStripper在等值面上产生纹理或三角面片。

体绘制(Volume Rendering)

VTK中基于体绘制实现三维重建,使用的是光线投射法(Ray-casting)。
体绘制的原理和面绘制完全不相同。面绘制需要生成中间图元,而体绘制则是直接在原图上进行绘制,内容需求较面绘制小。每切换一个视角需要重新对所有的像素点进行颜色和透明度计算,需要时间比面绘制长。

以上是关于VTK面绘制(SR)与体绘制(VR)的主要内容,如果未能解决你的问题,请参考以下文章

VTK切割功能汇总

vtk 6.x,Qt:3D(线、面、散点图)绘图

用于 TB 级数据的大规模体绘制和可视化库

[C++][vtk][转载]利用vtk绘制文本

VTK绘制Bounding Box

VTK初学一,线段的绘制c_Line