日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在Unity中做一个淡入式的屏幕虚化

發布時間:2024/8/26 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Unity中做一个淡入式的屏幕虚化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

屏幕虛化是非常簡單的屏幕后處理特效之一,它的基本做法是對圖片中的像素進行加權平均,也就是讓每個像素的顏色都或多或少的受到周圍像素顏色的影響,進而模糊畫面,產生擼多了的效果,網上屏幕虛化的教程很多,在此就不再贅述了。
?



相較傳統的“咔嚓虛化”,“淡入式虛化”的差別是:

1、前戲足,過渡自然,不生硬。
?

咔嚓虛化


?

淡入式虛化



2、分擔了下GPU的DrawCall,將DC的峰值稍稍降低了些。
?

50次迭代虛化的渲染情況


?

咔嚓虛化DC


?

淡入式虛化DC



當然,“咔嚓虛化”和“淡入式虛化”這個名字是我起的,知道意思就行,不用較真。

________________________________________

其實,“淡入式虛化”與“咔嚓虛化”本質上沒有區別,只是把多次虛化的動作放在了Coroutine中,大概流程是這樣的:

OnRenderImage函數調用時,保存一張屏幕截圖,并激活淡入式虛化。



在Coroutine中,按照預設的頻次迭代虛化屏幕截圖。



達到預設的虛化次數后,停止虛化并結束Coroutine。

到這里就講完了,實現過屏幕虛化的朋友肯定已經明白了,再見。
?



如果對于屏幕虛化還不甚了解,或者自己以后年紀大了忘了思路,可到后面看一下幾個關鍵點來輔助回憶,請吧。

本文討論的兩種虛化,有以下幾個特點:

相同點:

1、通過適當的縮小截屏后的圖片,可在提升效率的基礎上加強模糊效果。這是因為縮小圖片尺寸等于減少需要處理的像素點,因此效率更高;且圖片先縮小,丟掉部分像素信息后再拉伸回原尺寸也能起到一定模糊的效果(因為使用了Bilinear的過濾方式)。
?



截屏時減小圖片尺寸的虛化結果比對(迭代10次,采樣半徑1.2)

(注:這里所謂的“截屏”就是將相機渲染結果的顏色信息取出。后面的虛化處理就是對這個拷貝出來的顏色信息而做的。截屏是通過OnRenderImage函數完成的,這個函數調用的時機可參看Unity函數生命周期或上篇文章《ClearFlags 與 OnRenderImage》。)

2、多次迭代虛化圖片,即每次都在上一次虛化的基礎上再次虛化,可以提升虛化品質。
?



整迭代次數的虛化結果比對(采樣半徑1.2,降采樣2倍)

3、合理調整虛化半徑,賣二手手機號平臺可以提升虛化品質。


?


?



調整采樣半徑的虛化比對(迭代20次,降采樣1倍)

注:如果虛化半徑調的過高,會讓圖片變得“瓷磚化”,正所謂過猶不及,適合自己的才是最好的。

4、使用兩個Pass通道,分橫縱兩次進行虛化,減少DrawCall時的采樣次數。
?


?



不同點:

“咔嚓虛化”的虛化動作直接放在OnRenderImage中。因此若迭代次數較高,這一渲染幀的DrawCall必然高。

“淡入式虛化”在OnRenderImage中僅做截屏操作,虛化動作則放在Coroutine中,即根據虛化強度及時間平均在各渲染幀中。
?



關鍵部分代碼:
?

咔嚓虛化調用接口


?

淡入式虛化調用接口


?

OnRenderImage操作


?

咔嚓虛化直接迭代虛化圖片


?

淡入式虛化分幀虛化圖片


?

虛化Shader的兩個Pass通道


?

僅額外采樣像素周圍4個點的信息,可增加。


?

進行像素顏色的加權計算


?



最后值得注意一個地方:

要對保存虛化圖片的Texture2D進行些屬性設置:
?

總結

以上是生活随笔為你收集整理的在Unity中做一个淡入式的屏幕虚化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。