javascript - 将带有偏移的纹理从 Three.js 场景导出到 GLTF

标签 javascript three.js

编辑:

我有一个关于导出到 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 工作组的一个稍微相关的主题:

https://github.com/KhronosGroup/glTF/issues/107

关于javascript - 将带有偏移的纹理从 Three.js 场景导出到 GLTF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50851606/

相关文章:

javascript - 事件多次调用

javascript - Push 在 if 语句中不起作用

javascript - 三个 js 示例场景不起作用

javascript - 三.js如何应用纹理作为 Material

3d - 阴影质量(阴影痤疮)

javascript - 在knockout.js中修改值变化的其他属性

javascript - Jquery 根据元素的查找方式返回元素的 .width()

three.js - 如果 Canvas 不是全屏,ThreeJS Raycaster 找不到相交的对象

javascript - 在同一个 iframe 中而不是子 iframe 中加载在 iFrame 内提交的表单

javascript - Three.js 圆柱体在3d平面内旋转