这是material,替换下材质就行 const gradientMaterial = new THREE.ShaderMaterial({ uniforms: { topColor: { value: new THREE.Color(0xff0000) }, bottomColor: { value: new THREE.Color(0x0000ff) }, }, vertexShader: ` varying vec3 vPosition; void main() { vPosition = position; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); } `, fragmentShader: ` varying vec3 vPosition; uniform vec3 topColor; uniform vec3 bottomColor; void main() { float percent = (vPosition.y + 0.5) / 2.0; // 计算当前像素点在立方体高度上的百分比 vec3 color = mix(bottomColor, topColor, percent); // 根据百分比进行颜色插值 gl_FragColor = vec4(color, 1.0); // 设置当前像素点的颜色 } `, }); 