[Unity-Shader]4.SubShader-状态设置ZTest

本文介绍了Unity中SubShader的ZTest概念,解释了ZBuffer算法在处理物体遮挡关系中的作用。ZTest通过对每个像素点的深度值进行比较,决定颜色是否写入颜色缓冲区。详细阐述了不同ZTest模式的含义,并提供了实践案例链接供进一步学习。
摘要由CSDN通过智能技术生成

一、原理

绘制对象如果是按照物体进行排序,那么针对物体重叠的部位可能会出现效果不好或者不对的情况。比如三个物体,互相都有部分有前后关系,那么只使用物体顺序来绘制只不能体现这种重叠关系。目前,使用z-buffer算法可以处理,类似颜色缓冲区缓冲颜色,z-buffer村春的是当前的深度信息,对与每一个像素存储一个深度值。这样,我们屏幕上显示的每一个像素点都会进行深度排序,就可以保证绘制的遮挡关系是只能够却的。而控制z-buffer是通过ztest和zwrite来完成。

二、ZTest作用

ZTest即深度测试,所谓测试,就是针对当前对象在屏幕上(更准确的说是frame buffer)对应的像素点,将对象自身的深度值与当前该像素点缓存的深度值进行比较,如果通过了,本对象在该像素点才会将颜色写入颜色缓冲区,否则否则不会写入颜色缓冲。

三、语义

ZTest Less | Greater | LEqual | GEqual | Equal | NotEqual | Always

四、数值说明

 ZTest Less(深度小于当前缓存则通过)

 ZTest Greater(深度大于当前缓存则通过)

ZTest LEqual(深度小于等于当前缓存则通过)</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值