【问题标题】:Blender Wavefront Object: number of vertex in face declaration is bigger than the number of all verticesBlender Wavefront Object:面声明中的顶点数大于所有顶点的数量
【发布时间】:2013-09-09 13:35:07
【问题描述】:

我正在尝试使用我自己的解析器将 Wavefront 对象加载到我的 C++ OpenGL 程序中。解析器适用于某些 .obj 文件,但在某些文件中它会抛出 index out of range exception。经过一些调试后,我发现文件中的一行引用了编号为 10565 的顶点:

f 2571/5164/4481 8298/5166/4481 10565/5167/4481
                                ^^^^^

但文件只包含10531 顶点。

问题:

  • Blender 怎么还能导入文件?
  • “10565”的 Blender 指向哪个顶点,即使它不存在?

【问题讨论】:

  • 已编辑:添加了项目文件的链接
  • 可能是模数。如,你想要的顶点是 10565 % 10531

标签: c++ blender file-format wavefront


【解决方案1】:

最好的答案将在源代码中-

svn co "https://svn.blender.org/svnroot/bf-extensions/trunk/py/scripts/addons/io_scene_obj/"

我的猜测是忽略错误的面,另一种选择是定位最有可能连接到其他两个顶点的附近顶点。

【讨论】:

  • 感谢您的回答。但是如果我忽略错误的面孔,我会得到这个结果:cow ugly.JPG 即使它与original.JPG 有一些相似之处,它仍然不合理。
  • 忽略一个面会在网格中留下一个洞,这个洞应该是一个面。您的 cow_ugly 示例似乎是由不正确的顶点构成的面。从一些简单的形状开始,逐步增加 10K 个顶点。
【解决方案2】:

解决方案:

我必须删除重复的顶点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 2012-02-26
    相关资源
    最近更新 更多