0、原理
- 移植Shadertoy中的天气效果编写成shader;
- 基于threejs后处理方式实现相应的效果。
// 1、初始化
const mComposer = new EffectComposer(this_.mRenderer);
const renderPass = new RenderPass(this_.mScene, this_.mCamera);
const effectCopy = new ShaderPass(CopyShader);
effectCopy.renderToScreen = true;
mComposer.addPass(renderPass);
mComposer.addPass(effectCopy);
// 2、添加雨特效--RainShader为移植的shadertoy特效
const mRain = new ShaderPass(RainShader);
mRain.uniforms['iResolution'].value = new THREE.Vector2(clientWidth, clientWidth);
mComposer.addPass(mRain);
// 3、render循环渲染
if (mRain) {
mRain.uniforms['iTime'].value += delta;
}
1、雨效果
![](https://img-blog.csdnimg.cn/393fcc2c7a62468d94ae5e545accc43e.gif)
2、雪效果
![](https://img-blog.csdnimg.cn/dbb3c8db85e041e3b3f46816c4423e5e.gif)