利用Blend来实现遮罩

地鼠被挡住.png

效果如图,一块透明的板,罩住了后面的地鼠

地鼠shader:"Queue"="Geometry+1"
遮罩shader:"Queue"="Geometry",开启Blend SrcAlpha OneMinusSrcAlpha
两个shader确认开启zwrite和ztest(默认这两个都是开启的)

原理:


渲染先后关系.png

可以看到,遮罩板先于地鼠被渲染,并写入z值,当渲染地鼠时,由于z值比遮罩板小,所以被舍弃,颜色不写入颜色缓存内.
缺点是,所以在遮罩板渲染队列(Queue)之后的物体都会被挡住,例如上面的奇奇影子,因此要小心处理渲染先后关系

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • <转>我也忘了转自哪里,抱歉,感谢原作者 什么是Shader Shader(着色器)是一段能够针对3D对象进行操作...
    星易乾川阅读 10,984评论 1 16
  • 转载注明出处:点击打开链接 Shader(着色器)是一段能够针对3D对象进行操作、并被GPU所执行的程序。Shad...
    游戏开发小Y阅读 8,861评论 0 4
  • Basic Shaderlab unity 使用一个叫做 shaderlab 的语言用来包装和组织整个shader...
    goteet阅读 8,442评论 0 12
  • 15年结束前完成阅读:不确定世界的理性选择:判断与决策心理学 打卡记录。
    风起天神阅读 1,683评论 1 1
  • 从云南回来之后,深切的感受到西安对我的热情和疯狂,每天不分日夜的烘出我所有的汗水,阳光炙热的让人望门却步。 记得云...
    太阳神几木阅读 1,690评论 0 1