2013-07-26 109 views
3

我正在使用Three.js 57版本。現在我正在使用JSONLoader進行動畫製作。我成功地獲得了動畫。但是我想更新動畫中每幀的網格完整頂點顏色。這是possibe在three.js所動態更改Three.js中的頂點顏色

由於提前

回答

5

頂點顏色,目前不支持CanvasRenderer

以下是你需要遵循WebGLRenderer模式:

設置THREE.VertexColors當您創建的網格材料;

material.vertexColors = THREE.VertexColors; 

還要確保vertexColors是爲幾何圖形的每個面定義的。

geometry.faces[ faceIndex ].vertexColors[ vertexIndex ] = new THREE.Color(0xff0000); 

然後在你的渲染循環,改變頂點顏色,這樣做:

geometry.faces[ faceIndex ].vertexColors[ vertexIndex ].setHSL(Math.random(), 0.5, 0.5); 
mesh.geometry.colorsNeedUpdate = true; 

three.js所r.59

+0

是faceIndex和vertexIndex自動定義? – schlenger

+1

@schlenger不,你必須自己做。剛剛添加完成。 – escapedcat

+1

有趣的是,要更新顏色,必須使用.setHSL()函數,只需指定一個新的THREE.Color()不會爲我更新圖形。 – Paul