creator 流体初探

1.效果

 

2.原理

利用camera+物理碰撞体+shader合作制作效果(思路参考白玉无冰博客的欢乐水杯)。

2.1 利用camera对流水的层级进行拍摄渲染到targetTexture。

2.2 利用物理碰撞体进行模拟水的物理形态。

2.3 利用shader进行对水的外部形态进行描绘

在这里先挖个坑,在水的数量达到600以上的时候,帧率会急剧下降。看debug分析是碰撞体太多,导致cpu的压力过大。还有就是水的形态模拟效果不是特别满意。后续我会继续研究看看有什么好的解决方案。

3.代码

3.1相机部分


        let waterRenderTexture = new cc.RenderTexture();
        waterRenderTexture.initWithSize(this.node.width,this.node.height);
        let water_sf = new cc.SpriteFrame();
        water_sf.setTexture(waterRenderTexture);

        this.water_camera.targetTexture = waterRenderTexture;

3.2shader部分

void main () {
    vec4 o = vec4(1, 1, 1, 1);

    #if USE_TEXTURE
      CCTexture(texture, v_uv0, o);
    #endif

    o *= v_color;

    ALPHA_TEST(o);
    if(o.b > 0.4){
      o = vec4(0.0,0.0,1.0,1.0);
    }else{
      o.a = 0.0;
    }

    gl_FragColor = o;
  }
}%

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值