【发布时间】:2018-10-16 13:57:29
【问题描述】:
我正在使用 turbosquid 的免费 3d 模型。该模型使用的纹理如下所示:
在 Blender 中看起来不错:
但是一旦导出到three.js,好像贴图不跟uv贴图:
这是我正在使用的代码:
var loader = new THREE.JSONLoader();
loader.load('json/Ship.json', function ( geometry, materials ) {
ship = new THREE.Mesh(geometry, materials[0]);
scene.add(ship);
}
);
这是我从 Blender 导出的 json:
我错过了什么? 非常感谢您的帮助!
【问题讨论】:
-
您通常不需要手动加载纹理。尝试像
ship = new THREE.Mesh(geometry, materials[0]);那样创建您的网格。所以不要创建新材质而是使用回调的参数。 -
@Mugen87 你说得对,我已经编辑了我的问题,它不那么令人困惑。我仍然得到相同的结果:/
-
你可以试试这个GLTFExporter。您可以使用GLTFLoader 来加载资产。 JSON Blender 导出器有点问题...
-
@Mugen87 GLTFExporter 给了我这个错误:“three.min.js:480 THREE.Object3D.add: object not an instance of THREE.Object3D.”。我找不到从 Blender 中正确导出场景的方法,我会遗漏什么?
-
您可以共享
.blend文件吗?也可以试试KhronosGroup/glTF-Blender-Exporter。