1.要做水的交融,首先就要用到shader功能,我们就需要先去格外做一个摄像机节点,其次要与主相机分开,就去添加分组,加一个water
在主相机场景中添加一个副相机Camera_water
主相机的渲染不参与water的渲染
副相机只参与water的渲染
2.创建一个新的材质与质体
这里额外的加入了一段代码:o.a=1.0
开启use_alpha_test 并将参数改为自己喜欢的(默认为0.5,我这里是0.3)
3.这时候就开始创建自己的场景
把我们刚创建好的材质替换这个节点的材质(注意这个节点就是显示水体交融的节点,所以要适配全屏)
4.代码部分
onLoad() {
//刚说的显示水体交融的节点图片
let _water_connect_show = this.getNode(“Main/water_connect_show”).getComponent(cc.Sprite);
//只渲染水的副相机节点 自己找到对应的节点就好~
let _camera_water = cc.Canvas.instance.node.getChildByName(‘Camera_water’).getComponent(cc.Camera);
const texture = new cc.RenderTexture();
texture.initWithSize(_water_connect_show.node.width, _water_connect_show.node.height);
const spriteFrame = new cc.SpriteFrame();
spriteFrame.setTexture(texture);
_camera_water.targetTexture = texture;
_water_connect_show.spriteFrame = spriteFrame;
}
5.最后一步,添加两个水体的图片,并分组为water
然后就ok了