美文网首页Unity教程合集Unity Shader分享
unity shader(剔除及深度测试)

unity shader(剔除及深度测试)

作者: 洪福齐天999 | 来源:发表于2017-03-02 21:01 被阅读0次

    参考风宇冲Unity3D教程学院 Shader第十一讲 剔除及深度测试

    作者写的很好,我摘抄一部分

    一 Culling阴影面剔除

    Culling阴影面剔除是一种优化技术。所有的多边形都有正反两面,而你永远只能看见其中一面,不信的话拿张纸板或者一面镜子看看你能不能同时看到两面。通常多边形面向屏幕里面的背面,我们看不见,所以会将该面剔除。

    Cull Off 关闭阴影面剔除

    Cull Back 剔除背面

    Cull Front剔除正面

    二 Depth Testing深度测试

    Depth Testing:深度测试,也叫深度缓冲。只有最靠近观察者的物体会被绘制。深度即Z,该值越小表示离观察者越近,该值越大表示离观察者越远。

    Shader里默认有如下代码

    ZWrite On

    ZTest LEqual

    意思即使Shader里没有写任何关于Depth Testing的代码,Shader也会执行深度写入及深度测试。

    但是Unity官方所有半透明Shader都是不写深度的

    因此半透明物体透明度很低的话, 物体被遮挡部分就显示不了。

    【显示被半透明物遮挡的东西】

    拷贝半透明Shader,保留

    Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}Blend SrcAlpha OneMinusSrcAlpha

    把ZWrite Off

    改成ZWrite On即可

    相关文章

      网友评论

        本文标题:unity shader(剔除及深度测试)

        本文链接:https://www.haomeiwen.com/subject/dxkhgttx.html