vtk过滤器导致点加倍和修正正常值

时间:2013-12-11 19:41:43

标签: c++ python opengl blender vtk

使用VTK 5.1版,我遇到了一些在OpenGL中无法正确显示的模型的问题。

将模型转换为VTK的过程有点迂回,但实现并且相当简单。每个模型都是一个由四边形和三边形组成的流形网格。

Blender models->包含点,点法线和多边形的自定义导出格式 自定义导出格式 - >自定义C ++解析器 - > vtkPolyData

vtkPolydata-> vtkTriangleFilter-> vtkStripper-> vtkPolyDataNormals->最终产品

由于我们的最终产品在渲染时显示不规则和缺失法线,我让VTK将对象写入纯文本文件,然后使用python将其解析回Blender。

初步结果是网格是正确的并且与原始模型匹配,但是,当我使用Blender“选择非流形”选项时,大约15%的模型显示为非流形。网上的一些阅读建议将“删除双打”作为解决方案,这实际上解决了使网格关闭的问题,但法线仍然是不规则的。

所以,我想我希望我可以使用一些额外的选项/功能/过滤器来确保通过过滤器正确读取和/或处理模型。

1 个答案:

答案 0 :(得分:0)

这是通过请求Blender在导出操作之前执行网格三角化来解决的。

重整是由于Blender对四边形进行隐式三角化,导致面部存储为4个非共面点。通过提前强制显式三角测量,我能够成功执行导出并保持模型完整性/流形性。正在经历的漏洞是由于隐式三角测量没有被出口商复制,从而导致数据丢失。