Unity 之 Shader ZTest 深度测试 - 十

来源:互联网 发布:设置手机禁止安装软件 编辑:程序博客网 时间:2024/06/14 03:39

ZTest 深度测试

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

ZWrite On 深度记录(默认)
ZWrite Off 不记录此深度,通常用于半透明物体

ZTest 的默认值是 LEqual,即当深度小于或等于本身深度值时,该物体渲染,

ZTest共有七种类型
Less
LEqual
Euqul
NotEqual
Greater
GEqual
Always
具体作用如下

Shader "Custom/PassFive" {    Properties {        //定义一个贴图        _MainTex ("Base (RGB)", 2D) = "white" {}     }    SubShader     {               Tags {"RenderType" = "Opaque" "IGNOREPROJECTOR" = "TRUE" "QUEUE" = "Transparent"}        LOD 200        Pass        {            //AlphaTest Greater 0.6            //AlphaTest Less 0.5            //AlphaTest Greater 0.4            //AlphaTest Less 0.9            Blend SrcAlpha One            //Blend SrcColor OneMinusSrcColor            //BlendOp RevSub            //ColorMask RG            //ColorMask RB            ZTest Always            // 通过绑定固定通道来使用定点色            BindChannels            {                Bind "Vertex", vertex     // 绑定定点                Bind "Normal", normal                     Bind "Color", color                Bind "Texcoord", texcoord0                Bind "Texcoord", texcoord1            }            //给材质设置 贴图             SetTexture [_MainTex]             {                Combine texture * primary double            }        }    }     FallBack "Diffuse"}

ZTest的作用看下面的图片

这里写图片描述

没错本来不应该在摄像机中看到的图片,竟然被看到了
这就是使用了 ZTest Always(总是被绘制)的作用

这里写图片描述

更过功能自行测试

0 0
原创粉丝点击