是否可以将两种材质分配给一个已使用 JSONLoader 加载的网格?
我在搅拌机中制作了一个简单的角色并将其导出为 three.js 格式,其中包含变形目标和 UV。
我试图将纯色材料分配给身体,将图片分配给我的角色头部(http://touhou.ru/dev/webgl-test-stackoverflow/kourindouhime.jpg),但是在加载网格和材料后我得到了灰色-彩色网格。
这是我项目的生产版本(使用 wasd 移动,当你看到你要控制的灰色播放器网格时,这正是我所说的):http ://touhou.ru/dev/webgl-test -堆栈溢出/
这是我使用 JSONLoader 加载网格和材质的方式:
var player_loader = new THREE.JSONLoader();
player_loader.load( "running_babe.js", function(geo, material) {
material[0].morphTargets = true;
material[1].morphTargets = true;
var materials = new THREE.MeshFaceMaterial(material);
player = new THREE.Mesh( geo, materials );
scene.add(player);
});
难道我做错了什么?
更新:问题出在我的出口中。现在第二种材料看起来是这样的:
{
"DbgColor" : 15597568,
"DbgIndex" : 1,
"DbgName" : "Material.001",
"blending" : "NormalBlending",
"colorAmbient" : [0.6400000190734865, 0.6400000190734865, 0.6400000190734865],
"colorDiffuse" : [0.6400000190734865, 0.6400000190734865, 0.6400000190734865],
"colorSpecular" : [0.5, 0.5, 0.5],
"depthTest" : true,
"depthWrite" : true,
"mapDiffuse" : "kourindouhime.jpg",
"mapDiffuseWrap" : ["repeat", "repeat"],
"shading" : "Lambert",
"specularCoef" : 50,
"transparency" : 1.0,
"transparent" : false,
"vertexColors" : false
}
它工作得很好。谢谢你们。