MCglTF

MCglTF

Minecraft模组的glTF库

基础库

MCglTF 是一个 3D 模型加载器库,用于加载 glTF 格式文件,并为 Minecraft 模组环境准备渲染模型所需的技术支持。 glTF 规范的各项特性大多可用,同时仍保持良好的兼容性和性能。

此处输入图片描述

使用方法

用于渲染方块、物品和实体的示例代码

功能特性

  • ✅ GLTF 格式(内嵌资源或通过 ResourceLocation)
  • ✅ GLB 格式
  • ✅ UV 坐标
  • ✅ 法线
  • ✅ 切线
  • ✅ 顶点颜色
  • ✅ 材质(需要 OptiFine 或 Iris Shaders 以及支持 PBR 和法线贴图的着色器包)
  • ✅ 纹理
  • ❎ 多重纹理坐标(为与原版保持兼容)
  • ✅ 骨架
  • ✅ 动画(多个)
  • ✅ 变形目标
  • ✅ 零缩放节点剔除(https://github.com/KhronosGroup/glTF/pull/2059)

常见问题解答

问. 为什么我的模型纹理无法显示? 答. 您需要在“materials”的“extras”中定义材质以关联您的纹理。有关更多详细信息,请访问 wiki 页面。

问. 为什么两个动画无法同时在同一个节点上控制平移/旋转/缩放/权重,并导致其中一个动画无法播放? 答. glTF 规范中未定义动画混合技术,因此由 GltfAnimationCreator 创建的动画也不支持动画混合。您需要根据您的场景创建自己的动画处理器。

问. 如何对模型应用自定义处理,例如自定义材质(例如应用玩家皮肤)或为特定节点创建特殊的 OpenGL 命令? 答. 对于为 glTF 模型生成 OpenGL 命令的更高级方法,您可以在您的 IGltfModelReceiver 中重写 isReceiveSharedModel(GltfModel, GltfRenderDatas) 并返回 false。这允许您基于提供的 GltfModel 创建自定义的 RenderedGltfModel。(请注意将您的 OpenGL 对象如 VBO、VAO、纹理等添加到 GltfRenderDatas 中,以便在资源刷新时进行删除。)

致谢