【技术分享】Cocos Creator 2.3.2+ 实现选择性遮罩

效果如图

实现思路

其实方法很简单,总的来说分为以下几步:

  1. 用一个摄像机记录当前场景不加遮罩的总体效果(whole)
  2. 用一个摄像机记录需要被遮罩的部分(target)
  3. 用一个摄像机记录不需要被遮罩的部分(other)
  4. 比较target与whole,找出需要被渲染的部分,然后与other一起渲染

这个方法比较笨,个人技术水平有限,暂时没想到更简洁的方法,不知道大佬们有不有其他好思路

在比较target与whole的时候是在shader里面直接比较rgba,局限性比较大,透明度不为1或者0的话就不行了

源码地址

https://github.com/ChengXu1973/selective-masking

一点疑问

之前在论坛提问,帖子沉了,其实就是想做这个效果,求大佬们答疑解惑
cocos2D里面如何获取camera的深度缓冲呢?

5赞

厉害了。 :test:

:sob: 发了两个帖子都沉了,只有你回复我,泪目

有没有大佬回答一下我的问题:disappointed_relieved:

顺便提一嘴,相机渲染出来的贴图是上下颠倒的,使用之前需要setFlipY(true)

具体这里有说

mark!

mark!

mark!