Unity Shader 中 Offset 设置的作用

在这里插入图片描述
在Unity中,有一个 Offset 设置,它叫 z-fighting ,看名就知道了,是z值之间的战斗

原因是因为我们的不同的多边形共面时,在光栅阶段生成的fragment的屏幕xy坐标一样,但depth值又不一样的浮点误差引起的问题,然后浮点round-off的四舍五入,导致z-fighting。
其实就是2个z值一样,放在同一个平面下的多边形,因为他们的z值极其接近,所以会出现交替显示,闪烁的现象,所以为了不让它继续闪下去,我们可以通过 Offset 来分出它们之间的先后顺序。

计算公式是

finalOffset = s * Factor + d * Unit;

一般不需要考虑这么复杂的事,书写发放一般是下面这样:

Offset 1,1
Offset 2,2
Ofsset -1,-1
Ofsset -2,-2

产生的效果是,数值越小的,距离摄像机越近,数值越大的,距离摄像机越远。
根据这个规律,我们就可以确保z值相同的多边形,显示效果也是有先后顺序的了。

官方文档:https://docs.unity3d.com/Manual/SL-Offset.html

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值