vtk視覺化管線
其實前面還應該介紹渲染視窗、渲染場景、演員、互動、屬性、相機、燈光、顏色、紋理、座標。
出圖的效果圖
無奈上次寫完註釋的程式碼沒儲存,而且也不難,注意語法錯誤
#include <vtkSmartPointer.h>
#include <vtkStructuredPointsReader.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkMarchingCubes.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
//測試檔案:data/head.vtk
//這段程式碼是作為vtk視覺化管線的入門。視覺化管線的三要素是資料物件source、處理物件filter、資料流方向mapper區別:基於資料流的初始化、維持、終止。
//根據資料的生成方式,source可分為程式源物件(procedural如vtkCylinder依據程式程式碼生成,第一個柱體用過)和讀取源物件(reader如vtkDICOMImageReader心臟用過)
//還有就是source 無輸入>=1輸出 filter>=1輸入 >=1輸出 mapper>=1輸入 無輸出
int main(int argc, char* argv[])
{
if (argc < 2)
{
//std::cout<<argv[0]<<" "<<"VTK-File(*.vtk)"<<std::endl;
//return EXIT_FAILURE;
}
//讀入Structured_Points型別的vtk檔案。我這個程式直接把檔名帶進去了 不用額外的讀入
vtkSmartPointer<vtkStructuredPointsReader> reader =
vtkSmartPointer<vtkStructuredPointsReader>::New();
reader->SetFileName("../head.vtk");//一個弱智的問題是:程式編譯時遇到相對路徑去哪裡找檔案?答曰:專案檔案同一個路徑下
//用移動立方體法提取等值面。這貨是作為filter的,but filter是啥,翻譯過來是過濾器
vtkSmartPointer<vtkMarchingCubes> marchingCubes =
vtkSmartPointer<vtkMarchingCubes>::New();
marchingCubes->SetInputConnection(reader->GetOutputPort());//這貨只接受一個輸入;GetOutputPort和SetInputConnection兩邊必須型別匹配!
marchingCubes->SetValue(0, 500);
//將生成的等值面資料進行Mapper mapper是啥意思來著?用來渲染幾何資料
vtkSmartPointer<vtkPolyDataMapper> mapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
mapper->SetInputConnection(marchingCubes->GetOutputPort());//vtk視覺化管線的輸入資料介面
//把Mapper的輸出送入渲染引擎進行顯示
//////////////////////////////////////渲染引擎部分////////////////////////////////////
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
actor->SetMapper(mapper);
vtkSmartPointer<vtkRenderWindow> renWin =
vtkSmartPointer<vtkRenderWindow>::New();
vtkSmartPointer<vtkRenderer> renderer =
vtkSmartPointer<vtkRenderer>::New();
//滑鼠 鍵盤 時鐘的互動機制
vtkSmartPointer<vtkRenderWindowInteractor> interactor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
renWin->AddRenderer(renderer);
interactor->SetRenderWindow(renWin);
renderer->AddActor(actor);
renderer->SetBackground(1.0, 1.0, 1.0);
renWin->SetSize(640, 480);
renWin->Render();
renWin->SetWindowName("vtkPipelineDemo");
interactor->Initialize();
interactor->Start();
//////////////////////////////////////////////////////////////////////////////////////////////////
return 0;
}
相關文章
- 如何設定Unity高清渲染管線製作高階視覺化內容Unity視覺化
- Python視覺化-折線圖Python視覺化
- Python視覺化(1):折線圖Python視覺化
- 海事監管新模式 | 智慧艦船三維視覺化管理模式視覺化
- 視覺化視覺化
- 智慧物流 3D 視覺化——構建一體化監管平臺3D視覺化
- AI助力後廚視覺化智慧監管,讓“舌尖安全”看得見AI視覺化
- 資料視覺化圖表之折線圖視覺化
- 3D視覺化|疫情態勢視覺化3D視覺化
- 資料視覺化編輯平臺上線,小程式也能擁有視覺化圖層視覺化
- [Echarts視覺化] 二.php和ajax連線資料庫實現動態資料視覺化Echarts視覺化PHP資料庫
- 視覺化portainer視覺化AI
- 資料視覺化基本原理——視覺化模型視覺化模型
- CNN視覺化技術總結(三)--類視覺化CNN視覺化
- 資料視覺化與資訊視覺化怎麼搞?視覺化
- 前端使用 Konva 實現視覺化設計器(12)- 連線線 - 直線前端視覺化
- 視覺化監管智慧高效?智慧園區三維可視,功能劃分如此詳細視覺化
- 視覺化之資料視覺化最強工具推薦視覺化
- 重點人員管控系統開發,視覺化資料分析搭建視覺化
- 前端使用 Konva 實現視覺化設計器(19)- 連線線 - 直線、折線前端視覺化
- R語言之視覺化①③散點圖+擬合曲線R語言視覺化
- 視覺化影像處理 | 視覺化訓練器 | 影像分類視覺化
- 虛擬現實 VR + 3D 視覺化,打造一體化高階管控平臺VR3D視覺化
- 智慧城市交通的要素:路口監管視覺化系統的解決方案視覺化
- 數維圖智慧工業園三維視覺化安全管控雲平臺視覺化
- 一屏統管 智慧交管三維視覺化大屏雲控系統視覺化
- 智慧油氣田視覺化,打造油氣田管控的“最強大腦”視覺化
- 資料視覺化如何選擇合適的視覺化圖表?視覺化
- github repository視覺化Github視覺化
- 視覺化速成指南-大小視覺化
- 資料看板視覺化視覺化
- 資料視覺化【十五】視覺化
- 大資料視覺化大資料視覺化
- 警惕“資料視覺化”視覺化
- git diff 視覺化配置Git視覺化
- 圖撲孿生工廠流水線組態圖視覺化視覺化
- 資料視覺化的基本原理——視覺通道視覺化
- 虛擬現實 VR 碰撞 3D 視覺化,圖撲打造一體化管控平臺VR3D視覺化