VTK8.2简单配置与测试 – 三郎君的日常

VTK · 2024年2月19日 0

VTK8.2简单配置与测试

在 Visual Studio 中设置 VTK 库的引用和配置可以分为以下几个步骤:

  1. 下载 VTK: 首先,您需要下载并解压 VTK 库。您可以从 VTK 官方网站下载源代码,并按照官方提供的说明进行编译,也可以尝试寻找预编译的版本。
  2. 创建 Visual Studio 项目: 打开 Visual Studio,创建一个新的 C++ 项目。
  3. 设置包含目录和库目录:
    • 在 Visual Studio 中,右键单击您的项目,选择“属性”。
    • 在属性对话框中,选择“C/C++” > “常规”,然后在“附加包含目录”中添加 VTK 头文件的路径。
    • 然后选择“链接器” > “常规”,在“附加库目录”中添加 VTK 库文件的路径。
  4. 设置附加依赖项:
    • 在属性对话框中,选择“链接器” > “输入”,在“附加依赖项”中添加需要链接的 VTK 库文件名(如 vtkCommon.libvtkRenderingOpenGL2.lib 等)。
  5. 设置运行时库:
    • 在属性对话框中,选择“C/C++” > “代码生成”,将“运行时库”设置为与 VTK 库相匹配的运行时库类型(如 /MT/MTd)。
  6. 将 VTK DLL 文件添加到项目中: 如果您使用的是预编译的 VTK 库,那么在运行时您需要将 VTK DLL 文件复制到您的可执行文件的目录中。

完成这些步骤后,您的项目就应该能够正确地链接和使用 VTK 库了。您可以使用 VTK 提供的各种类来构建您的图形应用程序。在您的代码中包含 VTK 头文件并使用 VTK 类即可开始编写您的应用程序。

当然你也可以直接使用别人已经编译好的文件

出现下面报错时:

Generic Warning: In G:VTKVTK-8.2.0RenderingiCorelvtkPolyDataMapper.cxx, line 28Error: no override found for vtkPolyDataMapper’.

代码头文件添加

#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);

属性——–链接器——输入—附加依赖项——添加:opengl32.lib

示例代码:

#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);

int main()
{
    // 创建一个球体源
    vtkSmartPointer<vtkSphereSource> sphereSource = vtkSmartPointer<vtkSphereSource>::New();
    sphereSource->SetRadius(1.0);
    sphereSource->Update();

    // 创建一个 mapper
    vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    mapper->SetInputConnection(sphereSource->GetOutputPort());

    // 创建一个 actor
    vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
    actor->SetMapper(mapper);

    // 创建渲染器和渲染窗口
    vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
    vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New();
    renderWindow->AddRenderer(renderer);

    // 创建交互器
    vtkSmartPointer<vtkRenderWindowInteractor> interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();
    interactor->SetRenderWindow(renderWindow);

    // 将 actor 添加到渲染器中
    renderer->AddActor(actor);

    // 设置渲染器的背景色为灰色
    renderer->SetBackground(0.2, 0.2, 0.2);

    // 启动渲染
    renderWindow->Render();

    // 开始交互
    interactor->Start();

    return 0;
}

运行效果: