一、准備工作:
1.下載vtk源碼包:下載vtk-8.1.1.zip就夠了
下載地址:https://www.vtk.org/download/

2.下載cmake
下載地址:https://cmake.org/download/

二、編譯VTK源碼:

1、選擇VTK源碼路徑以及選擇編譯文件存放路徑
-
選擇VTK解壓后的目錄(該目錄下包含CmakeLists文件)

-
自己建一個文件夾用來存放編譯產生的文件夾(可以隨便建立在任何地方,隨便起任何名稱。我這里建在VTK的根目錄,命名為build)
最后結果:

2、點擊configure

彈出對話框:

Configure之后的結果:

3、選擇需要生成的選項:(我需要的是支持MFC)






4、點擊configur。
如果有紅色,多點幾次configure,直到完全變白。

5、點擊Generate。

三、visual studio編譯VTK以及屬性表配置:
這個時候找到build文件夾下的VTK.sln文件。用visual studio打開。

選擇Debug 64

解決方案中找到ALL_BUILD,右鍵生成

生成無誤后,同理,找到INSTALL,右鍵生成。
如果想生成release版本,選擇release 64,重復上述操作。
這個時候就在如下文件夾中生成相應的文件了(.dll .lib等)

接下來在VS中配置屬性表,當然你也可以用Cmake編譯,不用配置這些屬性。

包含目錄:

包含庫目錄:

添加附加依賴項:(只支持MFC以及OpenGL2,如果不一樣請修改)
vtkalglib-8.1.lib
vtkChartsCore-8.1.lib
vtkCommonColor-8.1.lib
vtkCommonComputationalGeometry-8.1.lib
vtkCommonCore-8.1.lib
vtkCommonDataModel-8.1.lib
vtkCommonExecutionModel-8.1.lib
vtkCommonMath-8.1.lib
vtkCommonMisc-8.1.lib
vtkCommonSystem-8.1.lib
vtkCommonTransforms-8.1.lib
vtkDICOMParser-8.1.lib
vtkDomainsChemistry-8.1.lib
vtkDomainsChemistryOpenGL2-8.1.lib
vtkexoIIc-8.1.lib
vtkexpat-8.1.lib
vtkFiltersAMR-8.1.lib
vtkFiltersCore-8.1.lib
vtkFiltersExtraction-8.1.lib
vtkFiltersFlowPaths-8.1.lib
vtkFiltersGeneral-8.1.lib
vtkFiltersGeneric-8.1.lib
vtkFiltersGeometry-8.1.lib
vtkFiltersHybrid-8.1.lib
vtkFiltersHyperTree-8.1.lib
vtkFiltersImaging-8.1.lib
vtkFiltersModeling-8.1.lib
vtkFiltersParallel-8.1.lib
vtkFiltersParallelImaging-8.1.lib
vtkFiltersPoints-8.1.lib
vtkFiltersProgrammable-8.1.lib
vtkFiltersSelection-8.1.lib
vtkFiltersSMP-8.1.lib
vtkFiltersSources-8.1.lib
vtkFiltersStatistics-8.1.lib
vtkFiltersTexture-8.1.lib
vtkFiltersTopology-8.1.lib
vtkFiltersVerdict-8.1.lib
vtkfreetype-8.1.lib
vtkGeovisCore-8.1.lib
vtkgl2ps-8.1.lib
vtkglew-8.1.lib
vtkhdf5-8.1.lib
vtkhdf5_hl-8.1.lib
vtkImagingColor-8.1.lib
vtkImagingCore-8.1.lib
vtkImagingFourier-8.1.lib
vtkImagingGeneral-8.1.lib
vtkImagingHybrid-8.1.lib
vtkImagingMath-8.1.lib
vtkImagingMorphological-8.1.lib
vtkImagingSources-8.1.lib
vtkImagingStatistics-8.1.lib
vtkImagingStencil-8.1.lib
vtkInfovisCore-8.1.lib
vtkInfovisLayout-8.1.lib
vtkInteractionImage-8.1.lib
vtkInteractionStyle-8.1.lib
vtkInteractionWidgets-8.1.lib
vtkIOAMR-8.1.lib
vtkIOCore-8.1.lib
vtkIOEnSight-8.1.lib
vtkIOExodus-8.1.lib
vtkIOExport-8.1.lib
vtkIOExportOpenGL2-8.1.lib
vtkIOGeometry-8.1.lib
vtkIOImage-8.1.lib
vtkIOImport-8.1.lib
vtkIOInfovis-8.1.lib
vtkIOLegacy-8.1.lib
vtkIOLSDyna-8.1.lib
vtkIOMINC-8.1.lib
vtkIOMovie-8.1.lib
vtkIONetCDF-8.1.lib
vtkIOParallel-8.1.lib
vtkIOParallelXML-8.1.lib
vtkIOPLY-8.1.lib
vtkIOSQL-8.1.lib
vtkIOTecplotTable-8.1.lib
vtkIOVideo-8.1.lib
vtkIOXML-8.1.lib
vtkIOXMLParser-8.1.lib
vtkjpeg-8.1.lib
vtkjsoncpp-8.1.lib
vtklibharu-8.1.lib
vtklibxml2-8.1.lib
vtklz4-8.1.lib
vtkmetaio-8.1.lib
vtkNetCDF-8.1.lib
vtknetcdfcpp-8.1.lib
vtkoggtheora-8.1.lib
vtkParallelCore-8.1.lib
vtkpng-8.1.lib
vtkproj4-8.1.lib
vtkRenderingAnnotation-8.1.lib
vtkRenderingContext2D-8.1.lib
vtkRenderingContextOpenGL2-8.1.lib
vtkRenderingCore-8.1.lib
vtkRenderingFreeType-8.1.lib
vtkRenderingGL2PSOpenGL2-8.1.lib
vtkRenderingImage-8.1.lib
vtkRenderingLabel-8.1.lib
vtkRenderingLOD-8.1.lib
vtkRenderingOpenGL2-8.1.lib
vtkRenderingVolume-8.1.lib
vtkRenderingVolumeOpenGL2-8.1.lib
vtksqlite-8.1.lib
vtksys-8.1.lib
vtktiff-8.1.lib
vtkverdict-8.1.lib
vtkViewsContext2D-8.1.lib
vtkViewsCore-8.1.lib
vtkViewsInfovis-8.1.lib
vtkzlib-8.1.lib
添加環境變量:添加生成的bin文件所在路徑。不添加環境變量的話會提示缺失xxx.dll文件。

四、錯誤及解決方案
- no override found for '…'
解決方法:在程序上方加上
#include <vtkAutoInit.h>
VTK_MODULE_INIT( vtkRenderingOpenGL2 ); //用cmake編譯的時候選擇的是OpenGL2
-
failed to get wglChoosePixelFormatARB
failed to get valid pixel format.
GLEW could not be initialized.
解決方法:
查看電腦是否支持OpenGL2以及安裝顯卡驅動(為這還找了好久的原因)
四、效果展示:
附一張利用VTK將顯示界面嵌入MFC的圖片。

