5

ブレンダーから(JSONローダーを介して)サッカーボール(切頂二十面体)のモデルをインポートしました。クリックすると顔の色を変更したいと思いました。顔が正しく識別されているモデル全体の色を変更できますが、特定の顔は変更できません。もう少し掘り下げてみたところ、soccerball.geometry.faces [i]に色が正しく割り当てられていることがわかりましたが、新しい顔の色は表示されていません。

私はすべての同様のスレッドを調べ、提案されたすべてのソリューション(異なるマテリアル、dirtyColors、動的、colorsNeedUpdateなど)を試しましたが、何も役に立ちませんでした。

これが私がモデルをインポートする方法です:

var loader = new THREE.JSONLoader(  );
var onGeometry = function(geom) {
soccer = new THREE.Mesh( geom, new THREE.MeshLambertMaterial());
soccer.position.set( 0, 0, 0 );
soccer.scale.set( 2, 2, 2 );
soccer.geometry.dynamic  = true;
soccer.geometry.dirty = true;
soccer.overdraw = true;
objects.push(soccer);
scene.add(soccer);
};

loader.load("models/model.js", onGeometry);

手伝ってくれませんか?前もって感謝します

4

1 に答える 1

1
soccer.material.vertexColors = THREE.VertexColors ;

また

soccer.material.vertexColors = THREE.FaceColors;

それがうまくいかない場合は、いくつかのテストを行うためにモデル自体をハバーする必要があります。

于 2012-11-13T14:07:32.907 に答える