编辑:
我有一个关于导出到 obj 和 mtl 的问题,但发现我可以使用 GLTFExporter.js 从 Three.js 导出,并成功地从 Three.js 中获取几何和纹理。
我在使用 GLTF 导出器时遇到的问题是,当我在 Blender 中打开文件时,我的纹理具有偏移和重复设置,这些纹理似乎无法从 Three.js 导出。在 Blender 中,整个纹理占据了 MeshPlane,而以前在 Three.js 场景中仅显示一小部分纹理。
有人知道我可以向 GLTF 导出器添加什么以便能够记录并保留重复和偏移纹理设置吗?
非常感谢:)
最佳答案
我自己也遇到过这个问题..据我所知,答案是否定的。
偏移和重复是 THREE.js 的特定功能。其他一些库也有等效的..一些引擎使用直接纹理矩阵操作来达到相同的效果。
一种解决方法是在导出之前修改模型 UV 坐标,以反射(reflect)texture.offset 和texture.repeat 的设置。 基本上,您可以将每个顶点 UV 乘以texture.repeat,然后添加texture.offset。这将有效地将这些参数“烘焙”到模型 UV 中,但随后需要您将 .repeat 和 .offset 分别重置回 1,1 和 0,0,以便在 THREE.js 中再次正确渲染模型。
这是 GLTF 工作组的一个稍微相关的主题:
关于javascript - 将带有偏移的纹理从 Three.js 场景导出到 GLTF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50851606/