解析具有多个对象的 OBJ 文件

Parsing OBJ file having multiple objects

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

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

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

如何让多个子对象像单个对象一样同步旋转,并且在需要时仍能独立控制每个子对象?

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

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

Generally the vertex data (vertices, normals, texture coordinates) is not shared between models, but there's nothing in the OBJ format to say they couldn't be AFAIK.

如何让多个子对象像单个对象一样同步旋转,并且在需要时仍能独立控制每个子对象?

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