UnityApplyDitherCrossFade(float2 vpos) -- 淡入淡出操作

作用:

淡入淡出操作, 根据淡出程度unity_LODFade和屏幕坐标来对抖动贴图进行采样,并裁剪掉的透明度低于0.5的片元,从而实现半透明

源码:

图片

unity_LODFade :https://blog.csdn.net/zengjunjie59/article/details/114295455

unity_LODFade.y一共有十六个取值: 0/16, 1/16 .... 15/16 的值

frac函数的作用:取一个数字的小数部分,例如frac(1.23) = 0.23

_DitherMaskLOD2D:

这是一个4 X 64 的抖动贴图。如下(随手画的,并不是真的):

 

第一行:vpos /= 4;

vpos是屏幕坐标,x取值范围是[0, width], y取值范围是[0, height] , x和y都是整数,这里除以4是为了转换成小数,作为UV的时候,让每个片元分别对应抖动贴图上的像素点。即当x为1的时候取的是uv.x为0.25的像素,x为2时取uv.x为0.5的像素

第二行:vpos.y = farc(vpos.y) * 0.0625 + unity_LODFade.y

unity_LODFade.y代表淡出程度。这里的0.0625就是1/16,farc(vpos.y)的取值只有四种(0,0.25,0.5,0.75), 刚好分成了4 X 16份,对应抖动贴图的高(64)

第三行:clip(tex2D(_DitherMaskLOD2D, vpos).a - 0.5);

裁剪掉采样出来透明度低于0.5的片元

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值