# VTKExamples **Repository Path**: master-turtle/VTKExamples ## Basic Information - **Project Name**: VTKExamples - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-10 - **Last Updated**: 2026-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VTK 样例实现 ## 1. 项目概述 ------------------------ 这是一个修改 vcpkg 中 VTK 包配置的 diff 文件,目的是将 VTK 的 Qt 支持从 Qt6 回退到 Qt5。让我详细解释修改的内容: ## 修改的文件: 1. **ports/vtk/portfile.cmake** 2. **ports/vtk/vcpkg.json** ## 具体修改内容: ### 1. portfile.cmake 的修改: **第160行附近**: ```cmake # 原代码(Qt6): if("qt" IN_LIST FEATURES AND NOT EXISTS "${CURRENT_HOST_INSTALLED_DIR}/tools/Qt6/bin/qmlplugindump${VCPKG_HOST_EXECUTABLE_SUFFIX}") # 修改后(Qt5): if("qt" IN_LIST FEATURES AND NOT EXISTS "${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/bin/qmlplugindump${VCPKG_HOST_EXECUTABLE_SUFFIX}") ``` - 将 Qt6 的工具路径改为 Qt5 的工具路径 **第165行附近**: ```cmake # 原代码(Qt6): file(READ "${CURRENT_INSTALLED_DIR}/share/qtbase/vcpkg_abi_info.txt" qtbase_abi_info) # 修改后(Qt5): file(READ "${CURRENT_INSTALLED_DIR}/share/qt5-base/vcpkg_abi_info.txt" qtbase_abi_info) ``` - 将 Qt6 的配置文件路径改为 Qt5 的配置文件路径 **第280行附近**: ```cmake # 原代码(Qt6): -DVTK_QT_VERSION=6 # 修改后(Qt5): -DVTK_QT_VERSION=5 ``` - 将 VTK 的 Qt 版本从 6 改为 5 ### 2. vcpkg.json 的修改: **依赖关系修改**: ```json // 原代码(Qt6): "qt": { "description": "Qt functionality for VTK", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui", "opengl", "sql-sqlite", "widgets" ] }, "qtdeclarative", // ... ] } // 修改后(Qt5): "qt": { "description": "Qt functionality for VTK", "dependencies": [ "qt5", "qt5-declarative", // ... ] } ``` # 3D模型文件 | 特性 | OBJ | STL | GLB | |------|-----|-----|-----| | **文件类型** | 文本/二进制 | 文本/二进制 | 二进制 | | **几何数据** | 顶点、纹理、法线 | 仅三角面片 | 顶点、纹理、法线、动画等 | | **纹理支持** | ✅ 外部文件 | ❌ 不支持 | ✅ 内置纹理 | | **动画支持** | ❌ 不支持 | ❌ 不支持 | ✅ 支持 | | **颜色材质** | ✅ 支持 | ❌ 不支持 | ✅ 支持 | | **应用场景** | 3D建模、游戏 | 3D打印、CAD | 网络传输、AR/VR | 性能考虑:STL最简单,OBJ次之,GLB功能最丰富但解析复杂 兼容性:STL最通用,所有3D软件都支持 现代应用:新项目推荐使用GLB,特别是Web和移动端 VTK支持:STL和OBJ支持最好,GLB需要较新的VTK版本