1.修改material

颜色可定义在材质里,material.color 为Color类型,带有一些设置颜色的函数。

  1. // 修改材质颜色
  2. material.color.setHex(0xff0000); // 十六进制颜色值
  3. material.color.setHSL(0.5, 0.5, 0.5); // HSL颜色值,三个0~1之间的数
  4. material.color.setRGB(0.5, 0.5, 0.5); // RGB颜色值,三个0~1之间的数
  5. material.color.setStyle("blue"); // CSS样式值,如“#aaccdd”、“blue”、“rgb(0.5, 0.5, 0.5)”
  6. material.color.setColorName("darkblue") // X11_color_names 定义的颜色名字

2.初始化material

初始化材质时定义

  1. // 定义材质时
  2. const material = new THREE.MeshLambertMaterial({ color: 0xff8000 });

3.修改geometry

适用于设置几何体的变色,例如points的根据位置不同而颜色不同的情况。

注意使用该方法时,需要把material.vertexColor设置为true,才能使用到geometry里的颜色,否则会使用material的颜色。

  1. material.vertexColor = true
  2. geometry.setAttribute('color', new THREE.Float32BufferAttribute(colors, 3))