加载为黑色的Three.js纹理

Three.js textures loading as black

本文关键字:js 纹理 Three 黑色 加载      更新时间:2023-09-26

我目前正试图将一个网格从Maya转换为three.js。我已经将Maya文件转换为.obj,在加载页面时可以看到网格。但是,以图像作为纹理的材质(所有材质均为1024x1024,且为.tga格式)显示为黑色,而仅为纯色的材质最终显示为黑色。参见图片:

https://i.stack.imgur.com/BVq4g.png

请注意球体是青色的(它们的材质只是纯色),而其余的是黑色的(这些材质附加了纹理文件)。

以下是我在网格/纹理中加载的方式:

var loader = new THREE.JSONLoader();
loader.load(
    'RoboticArm2.js',
    function (geometry, materials) {
        var material = new THREE.MeshFaceMaterial(materials);
        var object = new THREE.Mesh(geometry, material);
        scene.add(object);              
    }
);

基于控制台,它正确地加载了所有纹理文件(检索任何内容都没有错误)。RoboticArm2.js文件提到"mapDiffuse"的所有正确值作为纹理的相应.tga文件。

我在另一个stackoverflow问题上看到,这可能是由一个错误引起的,其中从Maya导出的.obj使.js文件[0,0,0]中的colorAmbient和colorDiffuse值。起初是这样,但我把它们都调整到了[0.8,0.8,0.8](就像回答者建议的那样),看看是否出现了什么,没有运气。

如果你需要任何其他信息/代码,请告诉我,谢谢!

将纹理文件转换为.png可以使其正确显示,而不是黑色。