Open msforest opened 2 years ago
后期处置与正常场景并存
// scene.background = 0xFF0000 // 主scene不能设置背景色,应使用renderPass设置背景色
var renderPass = new RenderPass( scene, camera, undefined, 0xF3F3F3, 1 );
renderPass.clearDepth = true
composer.addPass( renderPass );
function updateRender() {
composer.render(0.1);
renderer.autoClear = false;
renderer.clearDepth();
renderer.render(fgScene, camera);
}
shader渐变色
const geometry = new THREE.CylinderGeometry(15, 5, 35, 40, 40, true)
const geometry1 = new THREE.CylinderGeometry(30, 20, 30, 40, 40, true)
const material = new THREE.ShaderMaterial({
uniforms: {
color1: {
value: new THREE.Color('#58b1e6')
},
color2: {
value: new THREE.Color('#77dff8')
}
},
vertexShader: `
varying vec2 vUv;
void main() {
vUv = uv;
gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1);
}
`,
fragmentShader: `
uniform vec3 color1;
uniform vec3 color2;
varying vec2 vUv;
void main() {
gl_FragColor = vec4(mix(color1, color2, vUv.y), 0.2);
}
`,
side: THREE.DoubleSide
})
const mesh1 = new THREE.Mesh(geometry, material)
const mesh2 = new THREE.Mesh(geometry1, material)
mesh1.position.set(0, -20, 0)
mesh2.position.set(0, -30, 0)
this.model.add(mesh1)