java - LibGDX:模型、节点、网格、MeshPart 架构
问题描述
我对 LibGDX 有点陌生,并试图了解基本的模型系统,包括节点、网格等。花了几个小时阅读 wiki 或查看文档后,我想知道我是否正确。
一个模型(可以使用模型实例渲染)由许多节点组成。节点基本上是一种抽象概念,它是一组数据,包含位置、旋转和缩放值。它还包含一个 globalTransform 变量(一个 Matrix4 实例),使用这个矩阵来设置位置/旋转/缩放,通过 usingMatrix4#setToTranslation
将设置 Node 在当前 World 中的位置。虽然,直接使用 Node 中的位置向量并不会改变世界位置。
然后,每个节点都可以有孩子。这些子项可以是 other Node
' NodePart
s (= 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 添加到节点作为孩子”
非常感谢您的阅读!
询问
解决方案
推荐阅读
- keras - 通过将图像传递给对象检测模型来生成图像类的裁剪
- r - R使用dplyr按组计算加权统计
- javascript - 可重复使用的数字输入组件在 NUXT 中无法正常工作
- latex - Sublime Text 3:使用 Latex 构建后,每次都停止打开空白窗口
- html - 有没有办法使用媒体最大宽度来加载页面
- css - 当我将鼠标悬停在实心边框上时,它不起作用
- javascript - 使用 v-for 遍历 id 都不同的 json 并将它们绑定到 PrimeVue 中的 Input
- python - 使用 pandas 从 python 中的 url 读取 csv 时出现“错误标记数据”
- google-colaboratory - colab中无法启动podman服务
- ruby - 如何将 curl 标头转换为 restcliet 请求