首页 > 解决方案 > LibGDX:模型、节点、网格、MeshPart 架构

问题描述

我对 LibGDX 有点陌生,并试图了解基本的模型系统,包括节点、网格等。花了几个小时阅读 wiki 或查看文档后,我想知道我是否正确。

一个模型(可以使用模型实例渲染)由许多节点组成。节点基本上是一种抽象概念,它是一组数据,包含位置、旋转和缩放值。它还包含一个 globalTransform 变量(一个 Matrix4 实例),使用这个矩阵来设置位置/旋转/缩放,通过 usingMatrix4#setToTranslation将设置 Node 在当前 World 中的位置。虽然,直接使用 Node 中的位置向量并不会改变世界位置。

然后,每个节点都可以有孩子。这些子项可以是 other Node' NodeParts (= MeshPart + Material) 或MeshPart's。MeshPart 是来自 Mesh 的顶点子集。MeshBuilder要将 MeshPart 添加到节点,我们可以使用方法创建一个 MeshPart part。要添加 NodePart,我们可以创建一个 ModelBuilder 并使用该part方法。

我们的模型完成后,我们可以通过将整个模型放入 ModelInstance ( new ModelInstance(model)) 或通过指定要在模型实例中使用模型的哪个节点来创建模型实例。然后我们从 ModelBatch 调用 render 方法来显示我们的 ModelInstance。

综上所述,Model和Node的关系和Node和NodePart的关系“一样”,和Mesh和MeshPart的关系一样。

我的假设正确吗?我不确定我在这一点上是否正确:“我们可以将 MeshPart 添加到节点作为孩子”

非常感谢您的阅读!

询问

标签: javalibgdx

解决方案


推荐阅读