加载为黑色的Three.js纹理
Three.js textures loading as black
我目前正试图将一个网格从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可以使其正确显示,而不是黑色。
相关文章:
- 如何在pixi.js多边形上放置纹理
- 如何在three.js中为三角形添加纹理
- Three.js CanvasRenderer,在将图像纹理设置为平面时出现问题
- 显示纹理-maya到three.js
- 有没有一种方法可以在three.js中自定义纹理之间的转换
- 三.js - 没有纹理绑定到单元 0 错误
- 更新纹理的正确方法(三.JS)
- 何时将Three.js纹理发送到GPU
- three.js CanvasRenderer-设置对象的初始颜色和透明度纹理
- 加载 collada 纹理时如何调用函数?(三.js)
- three.js:纹理反馈循环(fbo-pingpong?)
- 使用三.js纹理的进度加载
- Safari Mobile-崩溃-三个JS纹理未加载
- three.js:纹理变为全黑
- 使用CanvasRenderer的three.js纹理,但使用WebGLRenderer显示为黑色
- 如何垂直翻转Three.js纹理
- JSON网格上的Three.js纹理
- 动态改变外部加载Collada文件中的Three.js纹理
- 加载为黑色的Three.js纹理
- 重复使用几何会导致间歇性的THREE.JS纹理错误