【问题标题】:Parsing OBJ file having multiple objects解析具有多个对象的 OBJ 文件
【发布时间】:2020-12-14 16:38:39
【问题描述】:

在阅读 OBJ 文件格式时,我意识到还有其他几个属性,例如子对象 (-o)、组 (-g) 等。

我无法理解如何解析这些其他参数(如有必要)。我应该将每个 (-o) 的顶点和面数据加载到单独的 VAO 中吗?

另外,在这种情况下,整个对象的旋转将如何工作?所有子对象都会开始围绕它们自己的中心旋转吗?

如何使多个子对象像单个对象一样一致旋转,并且在必要时仍然可以独立控制每个子对象?

【问题讨论】:

    标签: opengl lwjgl wavefront


    【解决方案1】:

    我应该将每个 (-o) 的顶点和面数据加载到单独的 VAO 中吗?

    基本上是的。每个对象 (-o) 或平滑组 (-g 或 -s) 本质上是整个模型的独立部分。所以你应该为每个组创建一个单独的可渲染网格。

    通常顶点数据(顶点、法线、纹理坐标)不会在模型之间共享,但 OBJ 格式中没有任何内容表明它们不能是 AFAIK。

    如何使多个子对象像单个对象一样一致旋转,并且在必要时仍然可以独立控制每个子对象?

    这更像是一个设计问题。假设您有某种树状场景图,那么您将为整个 OBJ 模型创建一个根节点,并为每个组附加单独的节点。要旋转整个模型,您将变换应用到根节点。据我所知,OBJ 格式没有指定变换、旋转等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-09
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 2023-03-07
      相关资源
      最近更新 更多