Hello,大家好,我是木偶心沒。上次一起研究了虛擬貼圖的其中之一RVT(runtime virtual texture) Unreal虛擬貼圖RVT的應用 ,今天就再一起探索一下另一款今天和大家一起分享另一款Unreal虛擬貼圖SVT的應用。
虛擬貼圖SVT Streaming Virtual Texture基於mipmap來進行優化,是用來優化貼圖渲染的一種方式。自帶的mipmap主要是根據攝像機與物體的距離來進行大小切換,而SVT將每個mipmap分成了128*128的很多塊,然後把這些塊根據是否會出現在屏幕中放在一個page table中,最後physical texture隻會存儲出現的屏幕中的那些塊,會很大部分的節約內存。在此過程中,GPU決定屏幕上所有可見像素所訪問的塊,也就是說塊被視為可見時,其將與GPU通信,GPU會將所需圖塊加載到GPU內存緩存。無論貼圖有多大,SVT的塊大小(默認128*128)僅考慮可見塊。而判斷是否可見的方法,使用的是標準深度緩衝,可以在GPU上計算出圖塊的可見性。
1、SVT用法
SRT的使用就是用兩種辦法簡單的把普通貼圖轉化成為SVT。
第一種就是直接在貼圖設置裏麵勾選Virtual Texture Streaming
另外一種是在Content Browser裏麵右鍵Convert to Virtual Texture。轉化後的virtual texture
轉化成功以後的虛擬貼圖在縮略圖右下角會有一個VT符號。
另外圖片本身變成virtual texture了以後,在材質內部texture sample中,就要將Sampler Type選成Virtual對應類型。如果用第二種方法直接右鍵convert to virtual texture,引擎會自動把用到這個貼圖的所有材質裏麵的texture sample變成virtual類型。
2、查看SVT效果
使用命令r.VT.Borders 1,如果沒有效果,就先用r.VT.Flush刷新一下
引擎會用不同顏色(白,黃,藍,綠)的網格線表示不同的mip層級,白色網格的每個網格線都是我們之前設置好的塊大小128*128.
同時,我們也可以用r.VT.Flush,然後在貼圖查看器裏麵查看當前攝像機裏麵看到的貼圖塊(白色網格)
另外也可以使用stat virtualtexturing查看用到的貼圖塊以及開銷等。
另外,如果對於一張1024的貼圖來說,如果設置為128大小的虛擬貼圖塊,那麼大就隻會有四層變化1024>512>256>128,也就是到第四層mipmap以後就不會再優化了,但是我們可以通過更改虛擬貼圖的貼圖塊大小來增加mip層,比如改到64*64就會有5層變化。
SVT一般可以用到植物上麵,比如一個地形上麵的植物,可以擠在一張虛擬貼圖裏麵,然後渲染的時候根據可見性去加載。另外也可以用到lightmap上麵,因為lightmap本身就是一張貼圖集
盡管SVT會比較省內存,但是本身使用還是會有一些問題。比如貼圖大小隻能是2的冪次方;使用臨時抗鋸齒(TAA)的時候有時會出現一些噪點;加載分辨率很高的SVT時,攝像機在場景中移動時可能會突然出現一些可見物體。
來源:Thepoly公眾號
上一篇 UE4材質融合過渡應用案例教程
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答本篇文章會深入解析火星時代教育的平麵設計班內容。本課程將帶你進入平麵設計的廣闊世界,跨越設計的理論與實踐,挖掘你的設計潛能。
火星網頁實習培訓開啟了走向網絡前端開發的大門。火星時代教育引領學生掌握了最新的前端技術並且了解火星網頁實習培訓的相關內容。
找到最好的vr遊戲開發培訓學校,提升你的VR遊戲開發技能,成為行業內的專業人士。關鍵詞:VR遊戲開發,VR培訓,遊戲開發學校。
探討影視美術建築表現的重要性以及如何通過火星時代教育的專業培訓,有效提升此項技能。
本文主要介紹了培訓學校空間設計的重要性及其技巧,並探討火星時代教育如何運用空間設計給學習帶來更好的體驗。
了解一個頂級的遊戲開發培訓機構如何通過專業的課程和實戰訓練幫助學員成長為高級遊戲開發者。
1. 打開微信掃一掃,掃描左側二維碼
2. 添加老師微信,馬上領取免費課程資源
同學您好!