【问题标题】:wavefront obj model loader indexing issues波前 obj 模型加载器索引问题
【发布时间】:2012-08-15 12:00:09
【问题描述】:

大家好,我很难让 .obj 波前文件使用 IBO 正确渲染。

现在我编写了一个解析器,目前它非常简单,但它会加载顶点和法线。如果我绑定解析后的顶点和法线,我会得到很好的结果,但如果我将索引绑定为 GL_element... 我会变得一团糟。

现在我已经研究了大约一个星期,我在这里检查了至少 20 页,最后决定提出一个问题。

我不太确定出了什么问题,所以我带来了我的代码、我写到控制台的一些调试信息、我从程序中写出的文件、屏幕截图和视频。我真的希望这里有人可以帮助我度过这个难关。

粘贴箱:http://pastebin.com/uZs74DSn

您可以从 pastebin 中看到,我已经通过从所有索引中减去 1 来说明 .obj 文件不是从零开始的。

视频: 1.http://www.youtube.com/watch?v=tfqhDEMCjPA&feature=plcpmonkey用glarrays解析绘制。

  1. http://www.youtube.com/watch?v=SDeJk7sv2ZA&feature=plcp 解析完全相同的模型,但使用 gldrawelements 绘制。

  2. http://www.youtube.com/watch?v=3_HS8Q7FXsk&feature=plcp 使用 gldrawelements 解析和绘制的球体

  3. http://www.youtube.com/watch?v=w6Oqy3JdTRg&feature=plcp 我在 opengame art 上找到的模型,使用 lineloops 渲染,但由于我使用了 glarray,所以它很好。

  4. http://www.youtube.com/watch?v=xHiCcK5QuE0&feature=plcp 使用 glarrays 渲染了许多基本形状并且光线充足。

我真的很茫然,希望有人能帮助我度过这个难关。我想继续学习着色器。这对于外面的人来说可能是微不足道的,我希望他们能够停下来并给出指导意见!

蓝蜂

【问题讨论】:

    标签: android indexing buffer .obj wavefront


    【解决方案1】:

    再看一遍后,我认为真正发生的情况是您的偏移量并不是您认为的那样。您正在读取数据,并且顶点被重复,并且您多次将重复数据写入顶点缓冲区。因此,当您稍后想要引用索引 4 时,实际上您在顶点数组的该位置拥有来自顶点 2 的数据。

    尝试对顶点数据进行预排序并将其全部写入,以使您的顶点数组不大于 [max_index_number * 3],然后按原样将您的索引输出。我认为这可能有效。

    【讨论】:

      猜你喜欢
      • 2016-10-21
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      相关资源
      最近更新 更多