我有一个BufferedGeometry,我想为每个脸设置颜色.但是,据我所知,color
几何上的属性设置每个顶点的颜色,而不是面.
我无论如何都试着通过在材质上设置每面的着色方案,material.vertexColors = THREE.FaceColors;
并在每个面上放置一个Float32Array
颜色属性(RGB,每个范围从0到1)来尝试使用它.这没有所需的输出.
您想在使用时指定面部颜色BufferGeometry
.为此,请执行以下操作:
使用非索引BufferGeometry
.
添加color
属性.
geometry.addAttribute( 'color', new THREE.BufferAttribute( colors, 3 ) );
在color
属性中,指定每个面的所有三个顶点具有相同的颜色.
如果您使用的是three.js内置材质,请在材质定义中进行设置
vertexColors: THREE.VertexColors
如果您正在使用ShaderMaterial
,则必须自己编写着色器.
three.js r.83