添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
逃跑的椰子  ·  Error[Pe020]: ...·  1 年前    · 
八块腹肌的草稿本  ·  CSS3特效 - ...·  1 年前    · 
深情的西装  ·  node js zlib ...·  1 年前    · 

threejs 填充颜色渐变色

Three.js 中使用渐变色填充几何体可以使用 ShaderMaterial。ShaderMaterial 是一种特殊类型的材质,它允许使用自定义着色器来渲染几何体。可以通过定义顶点着色器和片段着色器来实现渐变色。

下面是一个示例代码:

// 创建一个球体
const geometry = new THREE.SphereGeometry(1, 32, 32);
// 创建一个 ShaderMaterial
const material = new THREE.ShaderMaterial({
  uniforms: {
    startColor: { value: new THREE.Color(0xff0000) },
    endColor: { value: new THREE.Color(0x0000ff) },
  vertexShader: `
    varying vec2 vUv;
    void main() {
      vUv = uv;
      gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
  fragmentShader: `
    uniform vec3 startColor;
    uniform vec3 endColor;
    varying vec2 vUv;
    void main() {
      vec3 color = mix(startColor, endColor, vUv.y);
      gl_FragColor = vec4(color, 1.0);
const sphere = new THREE.Mesh(geometry, material);

在这个示例中,我们使用了两个 uniform 变量 startColor 和 endColor 来存储渐变的起始颜色和终止颜色。我们在片段着色器中使用函数 mix() 来结合这两个颜色和顶点的纵坐标 vUv.y 来计算出最终颜色。然后将最终颜色赋值给 gl_FragColor 。这样我们就可以在球体上看到颜色从红色渐变到蓝色。

  •