我正在尝试使用TDSLoader将非常复杂的.3ds模型加载到three.js中,方法与three.js / examples中完全相同:https://github.com/mrdoob/three.js/blob/master/examples/webgl_loader_3ds.html 但是我应该得到的Result却是这样的Loaded using https://3dviewer.net/。我可以看到该在线查看器使用three.js,因此是可能的。我也知道TDSLoader会加载纹理,但由于某些原因不会映射它们(如果将纹理移出文件夹,则会出现加载资源错误)。代码如下:
var loader = new THREE.TextureLoader();
var normal = loader.load('textures/normal.png');
var loader = new THREE.TDSLoader();
loader.setPath('textures/');
loader.load('textures/CAT_336D.3ds', function (object) {
object.traverse(function (child) {
if (child instanceof THREE.Mesh) {
child.material.normalMap = normal;
}
});
scene.add(object);
});
我的模型有23种材料,但装载机仅装载2种-黑色和黄色,您可以看到玻璃,金属和其他材料缺失。如何映射所有纹理和材料?也许因为模型太大而无法使用? (超过160个网格,大约30MB)