當相機與物體的距離越來越近,達到指定值時,我們讓物體逐漸淡出,當相機與物體拉開距離后,再讓其淡入,來處理當相機靠近物體時的穿模情況,效果圖:

創建一個新的PBR Graph,命名為Fade,在Blackboard黑板中創建以下屬性:
Main Texture(Texture2D 型別):用于主貼圖
Min Distance(Vector1 型別):用于設定淡入淡出的最小距離
Max Distance (Vector2 型別) :用于設定淡入淡出的最大距離

新建Sample Texture 2D節點用于Main Texture,輸出至PBR Master中Albedo節點:

新建一個Dither節點,關于該節點的官方檔案介紹如下:

其大致含義指Dither是一種特定格式的噪波,用于隨機量化誤差,用于防止大幅拉伸圖片時出現的例外情況,在螢屏空間抖動來確保圖案的均勻分布,此節點通常作為主節點上Alpha Clip Threshold的輸入,為不透明物件提供透明的外觀,而且仍然可以寫入深度緩沖區,
我們這里用Dither節點來實作淡入淡出(透明),將其輸出至PBR Master中的Alpha節點:

創建Object節點獲取物體位置資訊,創建Camera節點獲取相機位置資訊,通過Distance節點求得二者之間的距離:
創建Remap節點,將Distance的輸出值,即相機與物體的距離,通過Min Distance、Max Distance即我們設定的最小、最大淡入淡出的距離,映射到[0,1]的取值范圍,以便控制Alpha Clip Threshold:


至此,通過上圖發現,當相機與物體距離越近時越是淡入,與我們想要的效果是相反的,因此通過創建一個One Minus節點來調整:


歡迎關注公眾號 “當代野生程式猿”

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/396328.html
標籤:其他
下一篇:unity讓特效在UI上播放
