URP管线下unity_LODFade的骚操作

本文介绍了在URP(Universal Render Pipeline)管线下,如何实现unity_LOD的平滑过渡,通过详细解析LODDitheringTransition函数的工作原理,包括unity_LODFade.x的设置、GenerateHashedRandomFloat的实现以及CopySign操作。文章还对比了标准管线中的类似功能UNITY_APPLY_DITHER_CROSSFADE。
摘要由CSDN通过智能技术生成

URP管线下unity_LODFade的骚操作

The Illustrated Nature,发现他的植物做了Lod,并且Lod的过渡并不是硬切的,有一个渐变,如下:

跟了一下代码,发现主要的逻辑就3行:

#ifdef LOD_FADE_CROSSFADE
	LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
#endif

上述代码里的 clipPos齐次裁剪空间 的坐标,unity_LODFade 是Unity内置变量,unity_LODFade.x 表示是 当前LOD等级的权重,Unity文档对其有一个简单说明:

Unity doesn’t provide a default built-in technique to blend LOD geometries. You need to implement your own technique according to your game type and Asset production pipeline.

Unity calculates a blend factor from the GameObject’s screen size and passes it to your shader
in the unity_LODFade.x uniform variable. Depending on the Fade Mode you choose, use either the LOD_FADE_PERCENTAGE or LOD_FADE_CROSSFADE keyword for GameObjects rendered with LOD fading.

再来看一下 LODDitheringTransition 函数。因为我使用的是 URP 管线,直接下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值