使用管線技術將TVTK中各個對象穿連起來,幾乎全部渲染引擎都會提到管線技術
在TVTK中,每一個對象只須要實現相對簡單的任務,整個管線則能根據用戶的需求,實現複雜的數據可視化處理。
在TVTK中,管線分爲兩部分:可視化管線,圖像管線
一般:咱們須要可視化的數據,自己並非圖形數據,如:零件內部各部分溫度,流體在某處的速度等,
因此在可視化以前,咱們須要可視化管線將數據加工爲圖形數據
可視化管線輸出的圖形數據每每是三維空間數據,如何在二維屏幕上顯示,這就是圖形管線的功能了
在這五個模塊中,每一個模塊的計算都隨着用戶的交互,而不斷的發生變化和更新
#建立一個長方體數據源,設置其長寬高 s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0) #使用PolyDataMapper(映射器)將數據轉化爲圖形數據 m = tvtk.PolyDataMapper(input_connection=s.output_port) #將數據源的輸出賦給映射器的輸入
>>> s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0) >>> s.output_port <tvtk.tvtk_classes.algorithm_output.AlgorithmOutput object at 0x0000000004CF79E8> >>> m = tvtk.PolyDataMapper(input_connection=s.output_port) >>> m.input_connection <tvtk.tvtk_classes.algorithm_output.AlgorithmOutput object at 0x0000000004CF79E8> #二者一致
數據源對象由input_connection=s.output_port屬性鏈接起來
主要解決圖形的可視化顯示過程
#建立一個Actor,是一個實體 a = tvtk.Actor(mapper=m) #傳入前一個管線的映射器含有圖形數據,和前面的可視化管線相鏈接 #建立一個Renderer(渲染器),將Actor添加進去 r = tvtk.Renderer(background=(0,0,0)) #顯示背景設爲黑色 r.add_actor(a) #將Actor添加進去 #建立一個RenderWindow(窗口),將Renderer添加進去 w = tvtk.RenderWindow(size=(300,300)) #建立一個顯示窗口 w.add_renderer(r) #將創建的渲染器加入窗口 #建立一個RenderWindowInteractor(窗口的交互工具) i = tvtk.RenderWindowInteractor(render_window=w) #建立一個交互工具,將窗口加入交互 #開啓交互 i.initialize() i.start()