網(wǎng)格著色器是最近添加到編程管道中的一種,旨在克服經(jīng)典幾何管道使用的固定布局的瓶頸。本文介紹了 DirectX 和 Vulkan 開發(fā)人員的最佳實(shí)踐。
圖 1 網(wǎng)格著色器替代幾何體管道
推薦:
分割數(shù)據(jù)時(shí),使用 64 個(gè)唯一頂點(diǎn)和 126 個(gè)三角形基本體的值,中間甜點(diǎn)為 40 和 84 。這里的重點(diǎn)是組織實(shí)現(xiàn),以便直接使用不同的分段進(jìn)行實(shí)驗(yàn)。
盡可能減少放大和網(wǎng)格著色器中的有效負(fù)載大?。?/p>
使用位壓縮和量化表示
用重心替換屬性,并允許像素著色器獲取和插值屬性
網(wǎng)格和放大著色器階段為 LoD 選擇和進(jìn)一步剔除策略提供了機(jī)會(huì)。這些可在不同粒度下實(shí)現(xiàn),例如:
在 AS 階段:剔除簇或進(jìn)行管道 LoD 決策
在 MS 階段:剔除單個(gè)原語
如果很簡單,可以提前做出決策,并使用應(yīng)用程序中可用的推斷數(shù)據(jù)。這樣可以節(jié)省大量的工作。請記住,不需要模擬更復(fù)雜的剔除方案,默認(rèn)情況下,硬件會(huì)有效地模擬這些方案。
在處理程序?qū)嵗瘯r(shí),依賴放大著色器和網(wǎng)格著色器,例如頭發(fā)或植被、 iso 曲面(流體模擬、醫(yī)學(xué)成像中的體素?cái)?shù)據(jù))、從 3D 掃描獲得的資源、 LOD 以及 CAD 應(yīng)用程序中經(jīng)常遇到的一般詳細(xì)模型。
考慮特殊網(wǎng)格的拓?fù)溥B通性。與顯示稀疏拓?fù)涞木W(wǎng)格(如粒子)相比,我有單獨(dú)的實(shí)現(xiàn)來處理密集拓?fù)洹?/p>
請注意,放大著色器階段會(huì)增加開銷,盡管通常這可以忽略不計(jì)。
Vulkan:
與 DX 相比,VK_NV_mesh_shader中的網(wǎng)格著色器允許對網(wǎng)格輸出進(jìn)行任意讀寫訪問,這些輸出是預(yù)先分配的。您可以通過直接使用或重新調(diào)整這些輸出的用途來獲得性能,并避免額外的共享內(nèi)存分配。
不推薦:
避免放大著色器的大輸出,因?yàn)檫@會(huì)導(dǎo)致嚴(yán)重的性能損失。通常,我們鼓勵(lì)靈活的實(shí)現(xiàn),允許微調(diào)。考慮到這一點(diǎn),有許多通用因素會(huì)影響性能:
有效載荷的大小。 AS 有效負(fù)載最好保持在 108 / 236 字節(jié)以下。
放大著色器的調(diào)用次數(shù)。
由相應(yīng)放大著色器發(fā)射的網(wǎng)格著色器數(shù)(放大率)。
不要嘗試使用放大和網(wǎng)格著色器模擬固定函數(shù)管道,因?yàn)檫@可能會(huì)增加冗余。
避免在每一幀的新網(wǎng)格中分割,并考慮脫機(jī)烘焙這些數(shù)據(jù),這允許在空間或頂點(diǎn)重用中優(yōu)化網(wǎng)格。
關(guān)于作者
wnger:
Ana Mihut 是 NVIDIA 的圖形開發(fā)工程師,她專注于游戲引擎中新渲染技術(shù)的優(yōu)化和集成。在 NVIDIA 之前,她在 Foundry 擔(dān)任渲染軟件工程師,致力于電影 VFX 渲染。安娜擁有博士學(xué)位。紐卡斯?fàn)柎髮W(xué)計(jì)算機(jī)科學(xué)專業(yè)
Christoph Kubisch 是 NVIDIA 公司的高級開發(fā)技術(shù)工程師,專注于 OpenGL 和 Vulkan 實(shí)時(shí)渲染技術(shù),適用于 CAD / DCC 和科學(xué)應(yīng)用。他與外部合作伙伴和 NVIDIA 的內(nèi)部團(tuán)隊(duì)合作,優(yōu)化當(dāng)前和未來的渲染算法。在加入 NVIDIA 之前, Christoph 是馬格德堡 Otto von Guericke 大學(xué)醫(yī)學(xué)數(shù)據(jù)集硬件加速可視化技術(shù)的研究人員。此外,他還作為技術(shù)藝術(shù)家創(chuàng)作游戲藝術(shù)、技術(shù)和 DCC 插件開發(fā)。
Manuel Kraemer 目前在 NVIDIA 擔(dān)任圖形軟件工程師,專注于高性能幾何圖形處理。在此之前,他曾在皮克斯、迪士尼動(dòng)畫、雙底片和英國廣播公司擔(dān)任多個(gè)電影、動(dòng)畫和電視項(xiàng)目的技術(shù)總監(jiān)。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4793瀏覽量
102429
發(fā)布評論請先 登錄
相關(guān)推薦
評論