MegaTexture技術被使用得廣泛嗎?如果答案為不,為什麼?如果答案為是,則它主要應用於實現什麼?

時間 2021-06-02 13:25:37

1樓:MaxwellGeng

Mega Texture,現在普遍稱作Virtual Texture,如果你使用的是DX12這類高階平台專用的API,那麼對於Dynamic Indexing/ Bindless Texture的支援就應該是順理成章的了,因為貼圖不再需要,甚至是不再允許一對一的繫結到Shader中,而是通過乙個相當於指標陣列的中間層,比如DX12中的Descriptor Heap實現,實際上在DX12中已經完全放棄相容原始的繫結方法,所以相當於開發者自然而然就可以並應該使用Bindless Texture,既然是個指標陣列,就可以直接使用索引去訪問任意大小,格式的貼圖,所以單純從Virtual Texture的實現來看,會而且也正在被應用的很廣泛。

但是如果使用的不是地形這種固定範圍的,可能就會需要從GPU回讀Tiling Resource到CPU可見的記憶體位置,並由CPU決定載入和解除安裝,而為了保證最大化並行效率,現代API一般是有至少2幀的延時,其中一幀給CPU的分執行緒負責指令準備,另一幀則負責給GPU完成繪製,所以相當於玩家的視角要在第3幀時才可以看到載入的貼圖,更何況許多平台回讀操作是非常慢的,比如PC平台,從視訊記憶體複製到記憶體速度只有1.xG/s,而PC端的視訊記憶體容量則非常充裕(中端顯示卡就已經6-8G了,高階顯示卡則是10G以上),可能根本不需要實時載入和解除安裝貼圖。更何況使用全域性的Uber Shader就意味著許多複雜材質,比如混合材質,或特殊著色材質等,使用非常受限,達不到美術需求。

所以即使Virtual Texture有諸多優點,想完全淘汰原始的貼圖訪問還是不現實的。

2樓:毛毛

看了最近對狂怒2的採訪,說到虛擬紋理從rage2就此打住,因為看上去很好,但是所表現的遊戲性和演出效果並不好。卡馬克也說過開發這個技術讓他很痛苦,所以之前id tech 6的虛擬多邊形技術也不開發了,最早的時候,卡馬克抱怨過GPU開發商不願對虛擬紋理虛擬多邊形技術做出架構上的改變。估計現在硬體上沒有達到能實現虛擬效果虛擬多邊形效果的進步,單純靠軟體價效比太低問題多多,如果以後硬體更大幅度的進步革新,配合軟體上能用簡單方便的方法實現了虛擬紋理虛擬多邊形達看上去能達到的效果, 那麼現在弄這些看上去好但實際效果不好的價效比很低的東西就沒有必要了。

3樓:Steven Liu

育碧的 trials (特技摩托)系列用的就是這個,不過效率上有得有失,以後 DX12 / VK 的 bindless resource 普及了應該會有大範圍應用。

具體實現:

第N幀:渲染普通場景的同時,再用預判 camera 渲染乙個 feedback buffer 記錄材質 ID。

第N+1幀:回讀 feedback buffer,知道這幀可能用到的材質,更新貼圖 atlas,用於當幀渲染。

好處:場景所有貼圖只需要 bind 一次。

壞處:材質不能太複雜,比如有混合材質的就不能支援,同時半透物體貼圖也不能支援,另外更新 atlas 消耗也很大。還有就是 camera 移動速度很快時, feedback buffer 不能準確預判下幀的材質,導致畫面邊緣有髒貼圖,ID 的 RAGE 就有這個問題,DOOM 據說也有。

一般來說將 mega texture 用於全場景渲染的,應該只有 ID 的遊戲和 trials 系列。但是用於其他子系統的,比如地形渲染的,就比較多了。見育碧的 virtual texture terrain 在 FAR CRY 4 上的應用。

4樓:pech dai

@叛逆者龔大已經解釋了名詞,我再補充兩句,咳咳

這種技術通常用於巨大的紋理貼圖,比如大規模地形系統,PS龔大你的klayGE的這個實現就叫juda好喜感……

不過這種思想還是影響深遠的,一些星球/地球模擬的資料也這麼組織的;還有一些voxel based系統的資料也是同樣原理,只不過資料變成了三維的。

5樓:叛逆者

狹義的MegaTexture,就是專指idTech引擎裡面的那個虛擬紋理子系統。也就idTech用,不存在廣泛不廣泛。

廣義的MegaTexture,其實應該叫virtual texturing。其實幾乎所有大引擎都有支援的。是個很常見的東西。

D3D和OpenGL現在都硬體支援virtual texturing了,不需要軟體搞一遍定址。效率高很多,使用起來也方便很多。

6樓:

MegaTexture用的不廣泛,因為MegaTexture在渲染效果和渲染效能上並沒有太大的優勢,所以對大部分專案來說,這個技術不是必須的;另一方面,而為了支援MegaTexture,不但需要引擎去支援這個技術,更需要一套獨特和完善的編輯器,這套編輯器的開發在工作量上遠超引擎的相應模組,美術也需要適應新的工作流程,總得來說,如果不是專案有什麼特殊需求,使用MegaTexture這個技術是要付出額外的成本的,是不合算的。

如果我使可控核聚變技術走進成熟階段,那麼我的地位能不能達到牛頓愛因斯坦級別

如果你的技術方案是現有的技術方案,比如重力約束,磁場約束,那沒啥用,大學生都能扯幾句。所以你必須提出一種新的,可以自證,實現成本更低的技術方案才能受封。 陳雪明 你當然超越牛頓愛因斯坦,因為這兩貨沒有發明過任何東西。牛頓有個萬有引力,可萬有引力不是牛頓牛頓發明了,牛頓他爸就被萬有引力吸在地面上,那時...

是因為攝影技術的出現才使現代繪畫藝術演變成現在的模樣麼?如果沒有攝影,還會有塞尚 畢卡索等的出現麼?

戈二 看了其他幾位答主寫的,我補充一下 攝影出現後,美術和攝影其實也都有乙個尋找自身定位的階段,也都是逐漸清楚自身的媒介特性的。 莫醺先生 應該說攝影術的出現只是加速了現代藝術的發展。個人看來,現代藝術並非是單純因為人類對具象化寫實化的發展達到頂峰,而是人類的審美達到了單方向的極限。什麼是美什麼藝術...

如何使自己被霍格沃茨開除?

已經被開除的同學就別自稱學長學姐了,以及提醒各位準巫師,默默然事件之後霍格沃茲只招收UK地區新生和難民新生了,已經進去了的千萬別作死被開除啊,萬一真被開了就只能考慮考慮伊美爾利亞或者東大術院了。 VincentLx 曠課,考試掛科,不穿校服。這也不行的話直接開學不去報到,整個學期不在學校。實在還不行...