Three.js纹理加载为黑色

时间:2015-06-28 21:46:30

标签: javascript three.js

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

http://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](就像回答者的建议),看看是否有任何表现,没有运气。

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

1 个答案:

答案 0 :(得分:0)

将纹理文件转换为.png会使它们显示正确,而不是黑色。