shader学习之路——UnityShader渲染顺序

Unity为了解决渲染顺序的问题提供了渲染队列(Render Queue)这一解决方案。.

我们可以使用Queue标签来解决我们模型归于哪个渲染队列

名称队列索引号描述
Background1000这个渲染队列会再任何其他队列之前被渲染,我们通常使用该队列来渲染那些需要绘制在背景上的物体
Geometry2000默认的渲染队列,大多数物体都使用这个队列。不透明物体使用这个队列
AlphaTest2450需要透明度测试的物体使用这个队列。在Unity5中它从Geometry队列中被单独分出来,这是因为所在所有不透明物体选然后再算然他们会更高效
Transparent3000这个队列中的物体会在所有Geometry和AlphaTest物体渲染后,再从后往前的顺序进行渲染。任何使用了透明度混合(例如关闭了深度写入的shader)的物体都应该使用该队列
Overlay4000该队列用于实现一些叠加效果。任何需要在最后渲染的物体都该使用该队列

SubShader{

      Tags { "Queue" = "AlphaTest"}

      Pass{...}

}

 

SubShader{

      Tags{"Queue" = "Transparent"}

       Pass{

             ZWrite Off  ...   //写在pass里代表这个pass的深度写入关闭   如果写在SubShader里代表其内所有pass都会关闭深度写入

       }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值