Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Three.js中动态更改顶点颜色_Three.js - Fatal编程技术网

在Three.js中动态更改顶点颜色

在Three.js中动态更改顶点颜色,three.js,Three.js,我使用的是Three.js 57版本。现在我正在使用JSONLoader制作动画。我成功地得到了动画。但是我想为动画中的每一帧更新网格的完整顶点颜色。这在three.js中可能吗 提前感谢顶点颜色目前在画布渲染器中不受支持 以下是WebGLRenderer需要遵循的模式: 为网格创建材质时,设置三个顶点颜色 material.vertexColors = THREE.VertexColors; 还要确保为几何体的每个面定义了顶点颜色 geometry.faces[ faceIndex ].ve

我使用的是Three.js 57版本。现在我正在使用JSONLoader制作动画。我成功地得到了动画。但是我想为动画中的每一帧更新网格的完整顶点颜色。这在three.js中可能吗


提前感谢

顶点颜色目前在
画布渲染器中不受支持

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

为网格创建材质时,设置三个顶点颜色

material.vertexColors = THREE.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

是否自动定义了faceIndex和vertexIndex?@schlenger否,您必须自己完成。刚刚添加了这个以供补充。有趣的是,要更新颜色,必须使用.setHSL()函数,只需指定一个新的THREE.color()函数并不能为我更新图形。@Paul See至少在最近的三个版本中,没有必要使用.setHSL来更改网格的颜色属性