1.修改material
颜色可定义在材质里,material.color 为Color类型,带有一些设置颜色的函数。
// 修改材质颜色
material.color.setHex(0xff0000); // 十六进制颜色值
material.color.setHSL(0.5, 0.5, 0.5); // HSL颜色值,三个0~1之间的数
material.color.setRGB(0.5, 0.5, 0.5); // RGB颜色值,三个0~1之间的数
material.color.setStyle("blue"); // CSS样式值,如“#aaccdd”、“blue”、“rgb(0.5, 0.5, 0.5)”
material.color.setColorName("darkblue") // X11_color_names 定义的颜色名字
2.初始化material
初始化材质时定义
// 定义材质时
const material = new THREE.MeshLambertMaterial({ color: 0xff8000 });
3.修改geometry
适用于设置几何体的变色,例如points的根据位置不同而颜色不同的情况。
注意使用该方法时,需要把material.vertexColor设置为true,才能使用到geometry里的颜色,否则会使用material的颜色。
material.vertexColor = true
geometry.setAttribute('color', new THREE.Float32BufferAttribute(colors, 3))