多くの頂点と面 (グリッド) で構成される Three.Geometry オブジェクトがあります。選択した面の色や素材を動的に変更したい。
geometry.colorsNeedUpdate = true;
geometry.faces[1].color.setHex(0xcccccc); //this doesn't work
上記のコードは、新しい色の不透明度を奇妙にします。色を置き換えるのではなく、新しい色と古い色をブレンドするように動作します。したがって、暗い色をライガーで上書きすることはできません。これを修正するには?私の資料は適用されます:
mat = new THREE.MeshBasicMaterial({color:"white",shading: THREE.FlatShading,side: THREE.DoubleSide,vertexColors: THREE.FaceColors, needsUpdate : true});
私がやりたかった別のアプローチは、他の資料への参照を変更することでもあります。
geometry.faces[0].materialIndex = 1; // works only when disabled OpenGL in browser
すでに set material.needsUpdate flag to true
チェック 済み https://github.com/mrdoob/three.js/wiki/Updates
まだ変化なし。