【问题标题】:vtk Filters causing point doubling and mangling normal valuesvtk 过滤器导致点加倍和破坏正常值
【发布时间】:2013-12-29 23:25:33
【问题描述】:

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

将模型导入 VTK 的过程有点迂回,但可以实现并且相当简单。每个模型都是一个流形网格,仅由 quads 和 tris 组成。

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

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

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

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

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

【问题讨论】:

    标签: c++ python opengl blender vtk


    【解决方案1】:

    通过要求 Blender 在导出操作之前对网格进行三角剖分来解决这个问题。

    重整是由于 Blender 对四边形执行隐式三角化,导致面存储为 4 个非共面点。通过提前强制进行显式三角剖分,我能够成功执行导出并保持模型完整性/流形。出现的漏洞是由于导出器未复制隐式三角剖分,从而导致数据丢失。

    【讨论】:

      猜你喜欢
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 2014-11-11
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多