目前使用版本:9.0.3
官方GitLab:https://gitlab.kitware.com/vtk/vtk
官方下载:https://vtk.org/download/ 包括源码、数据、Python包
C#版本:Activiz.NET(3D Visualization Library for .Net C# and Unity)
https://vtk.org/Wiki/VTK/CSharp/ActiViz.NET
如何编译:(网上一大把资料)
使用CMake(https://cmake.org/download/,windows建议下载类似cmake-3.21.1-windows-x86_64.zip这样的包)进行生成vs工程。
笔者使用都是最新的版本,Windows10_21H1(x64平台) + CMake 3.21.1 + VTK 9.0.3,一路畅通无阻,64位生成完成,VS2019 ALL_BUILD编译完成。
C++整合包
下载链接:https://pan.baidu.com/s/1ZMIODTGtin6eLkbFo9aRHw
提取码:游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0 整合包已经包含了VTK_9.0.3_SDK.7z这个SDK包,里面已经打包好了开发环境(VS2019_x64),直接可用于开发,由于符号库需要lib文件,已经生成了debug_lib_list.txt和release_lib_list.text直接拷贝里面内容粘贴到到链接器的输入依赖项中即可,不用再一个一个的写啦。
环境变量Path运行时设置:
- E:\VTK\VTK_9.0.3_SDK\bin\Debug
复制代码
最后使用的时候建议把bin目录下的Debug或者Release路径设置到系统环境变量Path里面就可以了,记得重启vs软件,这样就不用拷贝dll了。
例程:
- #include <iostream>
- #include <vtkActor.h>
- #include <vtkRenderer.h>
- #include <vtkRenderWindow.h>
- #include <vtkRenderWindowInteractor.h>
- #include <vtkInteractorStyleTrackballCamera.h>
- #include <vtkCylinderSource.h>
- #include <vtkPolyDataMapper.h>
- #include <vtkSmartPointer.h>
- #include <vtkAutoInit.h>
- VTK_MODULE_INIT(vtkRenderingOpenGL2);
- VTK_MODULE_INIT(vtkInteractionStyle);
- VTK_MODULE_INIT(vtkRenderingFreeType);
- using namespace std;
- int main(int argc, char* argv[])
- {
- vtkSmartPointer<vtkCylinderSource> cylinder = vtkSmartPointer<vtkCylinderSource>::New();
- cylinder->SetHeight(3.0);
- cylinder->SetRadius(1.0);
- cylinder->SetResolution(10);
- vtkSmartPointer<vtkPolyDataMapper> cylinderMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
- cylinderMapper->SetInputConnection(cylinder->GetOutputPort());
- vtkSmartPointer<vtkActor> cylinderActor = vtkSmartPointer<vtkActor>::New();
- cylinderActor->SetMapper(cylinderMapper);
- vtkSmartPointer<vtkRenderer> render = vtkSmartPointer<vtkRenderer>::New();
- render->AddActor(cylinderActor);
- render->SetBackground(0.1, 0.2, 0.4);
- vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New();
- renWin->AddRenderer(render);
- renWin->SetSize(300, 300);
- vtkSmartPointer<vtkRenderWindowInteractor> iren = vtkSmartPointer<vtkRenderWindowInteractor>::New();
- iren->SetRenderWindow(renWin);
- vtkSmartPointer<vtkInteractorStyleTrackballCamera> style = vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();
- iren->SetInteractorStyle(style);
- iren->Initialize();
- iren->Start();
- std::cin.get();
- return 0;
- }
复制代码
效果图像:
学习书籍《VTK图形图像开发进阶》
|