我有由幾個頂點和麪(網格)組成的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
仍然沒有改變。
您能否提供一個(簡單的)現場示例來演示您所看到的不尋常效果? – WestLangley
OFC。這裏是JsFiddle代碼 - http://jsfiddle.net/VsWb9/1163/ – user2550696
這裏是zip版本。它比JsFiddle更好的代碼。我不得不重寫一些東西,使它在JS小提琴中工作。 http://www.sendspace.com/file/ap1l4n – user2550696