JSONLoader で読み込まれた 1 つのメッシュに 2 つのマテリアルを割り当てることはできますか?
ブレンダーで単純なキャラクターを作成し、モーフ ターゲットと UV を含む three.js 形式にエクスポートしました。
無地のマテリアルを体に、画像をキャラクターの頭に割り当てようとしましたが ( 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);
});
私は何か間違ったことをしていますか?
更新: 問題は私のエクスポートにありました。2 番目のマテリアルは次のようになります。
{
"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
}
そしてそれはとてもうまく機能します。君たちありがとう。