pso有兩種意思,分別是:1、指製程認證“Process Sign-Off”,此為客戶對供應商/代工廠進行的生產製程的審核;2、指微粒群最佳化演算法.
本文操作環境:Windows7系統、Dell G3。
pso快取是什麼?
PSO 一是指製程認證(Process Sign-Off),此為客戶對供應商/代工廠進行的生產製程的審核;二是指微粒群最佳化演算法。
當Link完了之後,產生一個program,我們會拿到這個data,把它存下來,存在一個檔案裡。我做了一個虛擬的檔案系統,這個虛擬檔案的key就是那段program的data。存下來以後,當第一次運行遊戲時這個檔案是空的。
每次都會Link,然後存進去。當第二次運行的時候,情況就會變好了。以前曾經Link過的,我直接在檔案裡找到,透過這個Program載入進來,也不需要去設定Shader,也不需要Link,直接就可以用了。
第三個是多個PSOcachefile。 UE4自己有一個功能是對PSO的緩存,原來是叫Shadercache,後來改成pipelinecache。他只有一個文件,我們改進了這個功能。在錄的時候,我們可以錄很多個文件。
像是我們在打Boss戰的時候,那個Boss以前從來沒出來過。他一出來,不管你是Link還是怎麼樣,反正他會卡頓。因為就算是你Link了,他往顯卡送的那一刻,往鏡頭送那一刻,他也會有一定的時間開銷。然後當那個Boss從來沒出現過。
一出來就卡一下,這個效果不太好。還有我們遊戲運行Loading完了之後,我們需要播放一個CG,那個CG有很多也是遊戲不太用到的資源,它也會卡一下。我們還是想用引擎的PSO功能,記錄的功能,然後把它預熱一下。
但是一個不夠,尤其是出現怪物的時候。然後我們就做了一個錄影不同的PSO的cache。 PSOcache需要錄渲染所有的參數,Shader,各種參數都會被錄下來。錄下來之後當你需要播這些、需要畫這些文件的時候,它會在後台給你把這些東西跑一遍。
這樣的話,當你真正渲染模型的時候就不會卡頓,我們做了多個這樣的檔案。比方說,在這個Loading條結束的時候,我們需要播CG,那在Loading條結束的時候,就載入這個場景所對應的記錄好的檔案。當這個CG播放的時候就會非常的平滑。
沒有一絲的卡頓。對於boss也是這樣,快到播boss的時候,我們也在後台把這個cache檔加載進來,做一下這樣的預熱,就會達到非常好的平滑效果。今天的分享大概就是這些,非常感謝。
更多相關知識,請造訪常見問題欄位!
以上是pso快取是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!