phi*_*lop 2 javascript webgl three.js
我有一个简单的平面网格,我想在运行时改变一个面的颜色(实际上当一个角色走过"地板砖").
我尝试以下方法:
face.color.setRGB(Math.random(), Math.random(), Math.random());
Run Code Online (Sandbox Code Playgroud)
这很好用CanvasRenderer,但是当我切换到WebGLRenderer它时,它会停止工作.
我试过设置geometry.colorsNeedUpdate标志,没有成功,网格和几何设置为dynamic,是否还有其他我缺少的东西?
(使用Three.js r59)
谢谢,
菲尔.
因为WebGLRenderer,这是您需要遵循的模式THREE.Geometry.
为每个脸部指定颜色.
for ( var i = 0; i < geometry.faces.length; i ++ ) {
geometry.faces[ i ].color.setHex( Math.random() * 0xffffff );
}
Run Code Online (Sandbox Code Playgroud)
设置vertexColors = THREE.FaceColors在材料中.
material = new THREE.MeshPhongMaterial( { color: 0xffffff, vertexColors: THREE.FaceColors } );
Run Code Online (Sandbox Code Playgroud)
colorsNeedsUpdate颜色变化后设置.
mesh.geometry.colorsNeedUpdate = true;
Run Code Online (Sandbox Code Playgroud)
three.js.r.76
| 归档时间: |
|
| 查看次数: |
4645 次 |
| 最近记录: |