VTK面繪製(SR)與體繪製(VR)

面繪製 (Surface Rendering)

VTK中基於面繪製實現三維重建,使用的是經典的Marching Cubes(移動立方體法)算法。
  
  面繪製是採用分割技術對一系列的二維圖像進行輪廓識別、提取等操作,最終還原出被檢測物體的三維模型,並以表面的方式顯示出來。
  面繪製的數據流管道pipeline結構爲:
讀取器->提取等值面->數據處理->映射器->實例化角色->繪製器->繪製窗口->交互器->交換方式。
Marching Cubes算法簡介:
首先,假定原始數據是離散的三維空間規則數據場;
其次,給出所求等值面的值;
最後,找出等值面經過的體元位置,求出該體元內的等值面並計算出相關參數(以便由常用的圖形軟件包或圖形硬件提供的面繪製功能繪製等值面)。
VTK提供了兩種提取等值面的類:
(1) vtkContourFilter
(2) vtkMarchingCubes.
VTK通過vtkPolyDataNormals在等值面上產生法向量;通過vtkStripper在等值面上產生紋理或三角面片。

體繪製(Volume Rendering)

VTK中基於體繪製實現三維重建,使用的是光線投射法(Ray-casting)。
體繪製的原理和麪繪製完全不相同。面繪製需要生成中間圖元,而體繪製則是直接在原圖上進行繪製,內容需求較面繪製小。每切換一個視角需要重新對所有的像素點進行顏色和透明度計算,需要時間比面繪製長。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章