VTK
文章平均质量分 89
奇树谦
软件开发工程师,从事军工/制造行业近5年,擅长跨平台上位机软件搭建,可以完成从UI到底层通信全链路代码编写。记录工作生活中的所学所感,欢迎一起学习交流。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
VTK 9.4.2 + Qt 5.12.12 加载.asc文件完全指南
本文介绍了在VTK 9.4.2和Qt 5.12.12环境下加载两种常见.asc文件格式的方法。针对GIS高程栅格数据,通过解析文件头部元信息,构建vtkImageData实现地形可视化;针对XYZ点云数据,将坐标数据转换为vtkPolyData并使用顶点过滤器渲染。两种方案均采用Qt文件流处理数据,并详细展示了从文件解析到VTK可视化的完整代码实现,包括参数校验、无效值处理等关键细节。文章特别强调了两种.asc格式的结构差异和适配方案,为开发者提供了清晰的实现路径和技术要点。原创 2025-12-25 08:30:00 · 1324 阅读 · 0 评论 -
使用VTK还是OpenGL集成到qt程序里哪个好?
摘要: 在Qt程序中选择VTK还是OpenGL进行三维可视化需权衡项目需求与开发条件。VTK作为高层次框架,适合快速实现复杂科学数据可视化,集成简便但性能可能受限;OpenGL提供底层图形控制,适合高性能渲染和自定义效果,但开发复杂度高。决策时应考虑项目类型(数据可视化优先选VTK,实时渲染选OpenGL)、开发周期及团队技术储备。两者均支持跨平台,但VTK的社区资源更利于初学者。最终选择取决于具体场景的效能与开发效率平衡。原创 2025-06-06 19:45:00 · 1195 阅读 · 0 评论 -
VTK|8.2.0升级到9.4.2遇到的问题及解决方法
本文介绍了VTK 9.2.4源码编译中的常见问题及解决方案。主要包含:1)头文件路径问题,需修改CMake配置为模块化包含方式;2)Qt模块重构导致的QVTKOpenGLWidget.h缺失,需改用QVTKOpenGLNativeWidget并调整CMake配置;3)接口变更导致SetRenderWindow/GetInteractor方法失效,需使用新版API;4)构建配置优化,明确指定所需模块并关闭默认全部构建。解决方案具体包括CMake配置修改、头文件路径调整和API调用方式更新,确保VTK 9.x版原创 2025-06-06 18:15:00 · 1592 阅读 · 0 评论 -
VTK|基于 VTK8.2.0 和 Qt5.12.12的三维测量工具实现
CloudCompare测量工具显示摘要: 该工具提供点、线、面三种测量模式,均显示在浮窗中。点模式显示局部/全局坐标、RGB值和三角面片ID;线模式展示坐标差、平面投影距离和三维欧式距离;面模式则包含顶点ID、边长、夹角及法向量分量。配套菜单控件采用Qt实现,支持无边框悬浮窗和四种测量操作(点/线/三角形/关闭),通过事件过滤实现位置跟踪,按钮点击触发相应信号并更新高亮状态。原创 2025-05-31 12:15:00 · 585 阅读 · 0 评论 -
CloudCompare-源码分析-绘制与 3D 场景分离的“前景”元素
摘要: 该代码段展示了ccGLWindowInterface类中drawForeground方法的实现,主要处理OpenGL窗口的2D前景绘制。方法首先设置正交投影并禁用深度测试,随后根据交互标志决定是否启用虚拟变换。通过调用m_globalDBRoot和m_winDBRoot的draw方法绘制2D实体,并显示当前标量场颜色条。代码还包含对叠加元素的处理:如比例尺显示、三轴坐标系渲染、GL滤镜横幅(含半透明背景和文本标签)、屏幕消息的层级布局(左下角、上中部或屏幕居中),以及LOD进度指示器的动画绘制。所有原创 2025-05-31 12:00:00 · 761 阅读 · 0 评论 -
CloudCompare-源码分析-处理滚轮事件
摘要:该文分析了CloudCompare中处理鼠标滚轮事件的onWheelEvent函数,解释了其对比例尺更新的间接影响。函数根据是否处于Bubble视图模式,分别调整FOV或计算缩放幅度delta,并通过moveCamera改变视图参数,进而更新pixelSize值。在重绘阶段,drawScale函数利用变化的pixelSize重新计算并显示比例尺,实现随滚轮缩放自动调整的效果。整个流程通过视图参数变化触发比例尺更新,形成完整的视觉反馈链。原创 2025-05-30 19:45:00 · 743 阅读 · 0 评论 -
CloudCompare|源码分析ccGLWindowInterface::renderToImage(...)-将当前 3D 渲染窗口内容导出为 `QImage`(屏幕截图)
摘要:该代码实现了通过FBO(Frame Buffer Object)将OpenGL窗口内容渲染为QImage的功能。主要流程包括:检查FBO支持情况,设置视口参数,创建FBO对象,执行完整渲染过程,处理GL滤镜,最终返回渲染图像。代码还处理了缩放因子、特性尺寸调整、立体渲染模式等多种情况,并包含错误处理和内存管理,确保渲染结果的正确获取。原创 2025-05-30 19:30:00 · 1182 阅读 · 0 评论 -
VTK|Z轴拉伸功能的实现
摘要 本文解释了在数据处理中始终坚持使用原始数据而非处理后的数据的重要性。原因在于对处理后的数据进行变换会导致重复叠加、非线性变形和精度丢失,使最终结果不可控。原始数据作为"干净基线",能确保变换简单、可重复且稳定。文章通过技术对比和实例说明,展示了原始数据和处理后数据在Z轴拉伸等操作中的表现差异。为规范处理流程,作者实现了一个ModelPipelineBuilder类,封装了模型加载和基础处理功能,包括Z轴拉伸和Elevation着色等操作。该类保留原始数据作为处理起点,每次变换都重新原创 2025-05-28 21:04:02 · 1048 阅读 · 0 评论 -
CloudCompare|点测量功能源码分析
功能实现方式绑定渲染窗口linkWith()注册监听点拾取start()处理拾取结果调用停止拾取并解绑stop()留给子类扩展逻辑(纯虚函数)是一个轻量的、无边框窗口(通过设置);能够被挂接到一个 3D 显示窗口;通过事件过滤器监听快捷键输入等;提供start()stop()流程控制接口;使用信号槽机制和主窗口通信。用户在视图中点击点、三角形、实体中心等事件;获取拾取的 3D 点、点击位置、面片索引等。基类功能类型特点说明UI框架。原创 2025-05-28 18:15:00 · 1170 阅读 · 0 评论 -
VTK结合Qt实现三维数据裁剪功能
BoxClipperController 类是一个用于管理基于盒子的网格数据裁剪操作的控制器。它通过 vtkBoxWidget 实现用户交互,允许用户调整裁剪盒子的位置和大小,并实时更新裁剪结果。类的主要功能包括设置输入数据、启用或禁用裁剪功能、获取裁剪后的 Actor 等。构造函数初始化了裁剪所需的组件,如 vtkBoxWidget、vtkClipPolyData 和 vtkActor,并通过回调函数监听用户交互事件以更新裁剪结果。SetInputDataAndReplaceOriginal 方法用于设置原创 2025-05-19 18:15:00 · 484 阅读 · 0 评论 -
VTK|显示三维图像的二维切片
MeshSliceController 类用于管理和显示三维网格数据的二维切片。该类通过 VTK 库实现,支持沿 X、Y、Z 轴方向的切片操作。主要功能包括显示、隐藏切片,以及更新网格数据。类中定义了 SliceDirection 枚举类型,用于指定切片方向。ShowSlice 方法根据指定方向生成切片,并通过 vtkPlane 和 vtkCutter 实现切割操作。切片结果通过 vtkPolyDataMapper 和 vtkActor 渲染为红色线条。HideSlice 方法用于隐藏当前切片,Update原创 2025-05-19 18:15:00 · 492 阅读 · 1 评论 -
VTK|类似CloudCompare的比例尺实现2-vtk实现
ScaleBarController 类用于管理和绘制屏幕固定像素长度的比例尺,主要依赖于 VTK 库进行渲染和交互。类头文件 ScaleBarController.h 定义了类的结构,包括构造函数、更新比例尺的方法、重新添加到渲染器的功能,以及处理交互事件的回调函数。类还包含多个 VTK 对象,如渲染器、窗口、交互器、线段和文本 Actor 等,用于绘制比例尺的线条和标签。 在 ScaleBarController.cpp 源文件中,构造函数初始化了渲染器、窗口和交互器,并创建了比例尺的线条和文本 Act原创 2025-05-14 16:13:39 · 1470 阅读 · 0 评论 -
VTK|类似CloudCompare的比例尺实现1-源码分析
CloudCompare 的比例尺功能通过 ccGLWindowInterface::drawScale() 函数实现,主要用于在正交视图下显示空间尺度。该函数首先通过断言确保仅在正交模式下使用,随后计算比例尺的最大宽度(占屏幕宽度的25%),并将其转换为实际长度(如米)。接着,函数准备字体和图形区域,计算比例尺的绘制位置,并使用 OpenGL 绘制比例尺线段及端点刻度。最后,函数在比例尺下方居中显示长度文字标签(如“10”)。整个过程通过精确计算和图形绘制,直观地展示了当前视图的空间尺度,便于用户理解场景原创 2025-05-13 21:15:00 · 1070 阅读 · 0 评论 -
VTK 中 .obj 数据的 Elevation 着色与可视化渲染
将.obj数据进行 Elevation 着色并可视化渲染的完整流程和.ply文件处理方式一样。原创 2025-05-08 23:44:07 · 790 阅读 · 0 评论 -
VTK|加载ply文件数据进行平移+高程渲染
步骤说明为每个点生成 Z 值标量创建 Jet 风格 LUT点 → vtkVertex,确保可渲染④ Mapper设置映射、颜色 LUT、标量范围⑤ Actor设置点大小、构建可视化对象⑥ Renderer清除旧内容、添加新 Actor、刷新界面。原创 2025-05-08 10:38:08 · 999 阅读 · 0 评论 -
VTK 中 `vtkPolyData` 的常用函数方法全解析
是 VTK 中专用于表示多边形网格点(Points)线段(Lines)多边形(Polygons)三角形带(Triangle Strips)属性(Scalars、Normals、Vectors、Texture Coordinates)功能方法 / 类设置点设置面SetPolys()设置线SetLines()获取点/单元GetPoint()GetCell()添加属性法线生成网格简化清理重复点深拷贝DeepCopy()边界提取是进行三维建模和可视化的基础类。原创 2025-05-07 20:04:56 · 517 阅读 · 0 评论 -
VTK 三维可视化中的交互式控制功能实现
也可以使用qpushbutton进行控制,逻辑更加简单,不需要场景里添加按钮了,创建按钮后直接连接toggleSurfaceVisibility即可。增加边框BoundingBox并通过按钮控制显隐。需要的全局变量,防止重复创建。需要的全局变量,防止重复创建。原创 2025-05-06 14:41:18 · 747 阅读 · 0 评论 -
VTK|显示.ply格式(点云) .obj格式(mesh) .tif(geoTIFF)文件
PCL 是一个强大的点云处理库,它依赖于 VTK 进行可视化。虽然 VTK 可以直接加载 PLY 文件,但 PCL 提供了更多的处理功能,因此在一些项目中开发者会选择结合使用 PCL 和 VTK。PLY 文件有多种格式,包括 ASCII 和二进制格式,以及有组织和无组织的点云数据,这使得它适用于不同的应用场景。但是!我只想显示ply文件并不想处理ply文件数据,so,直接使用vtk显示点云数据// 打印调试信息// 计算中心和 Z 方向缩放因子(夸张Z轴)原创 2025-05-05 15:00:01 · 998 阅读 · 0 评论 -
VTK-8.2.0源码编译(Cmake+VS2022+Qt5.12.12)
工具名称版本下载地址系统环境win 10CMakeVTK2022。原创 2025-04-23 17:39:34 · 1358 阅读 · 0 评论
分享