这是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); // 设置当前像素点的颜色
}
`,
});
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241002/822a78af94a514a6adb1509f7ecd8024.png)