面向初學者的3D遊戲著色器 延遲渲染

2021-10-01 18:25:33 字數 744 閱讀 4435

延遲渲染

延遲渲染(延遲著色)是一種螢幕空間照明技術。在遍歷場景的幾何圖形時,不計算場景的照明,而是推遲或等待執行照明計算,直到場景的幾何圖形片段被剔除或丟棄。這可以根據場景的複雜性提高效能。

延遲渲染分兩個階段執行。

第一階段包括瀏覽場景的幾何圖形,並將其位置或深度、法線和材質渲染到乙個稱為幾何緩衝區或重力緩衝區的幀緩衝區中。除了一些轉換之外,這主要是乙個唯讀階段,因此其效能成本最低。在這個階段之後,你只需要處理螢幕形狀的2d紋理。

第二也是最後乙個階段是使用第一階段的輸出進行照明計算的階段。這是計算環境顏色、漫射顏色和鏡面顏色的時候。陰影和法線貼圖也在這個階段執行。

優勢使用延遲渲染的原因是為了減少照明計算的數量。使用正向渲染,照明計算的數量與片段和燈光的數量成比例。但是,對於延遲著色,照明計算的數量會隨著畫素和燈光的數量而縮放。回想一下,對於單個畫素,可能會產生多個片段。新增幾何圖形時,使用正向時,每個畫素的照明計算數量會增加,而使用延遲時不會增加。

對於簡單的場景,延遲渲染不能提供很大的效能提公升,甚至可能會影響效能。然而,對於光線充足的複雜場景,這是更好的選擇。延遲變得比向前更快,因為你只計算每盞燈,每畫素的照明。在正向渲染中,你要計算每個片段每盞燈的亮度,每畫素可以是多次。

不足之處

延遲渲染允許您使用許多燈光渲染複雜場景,但它也有自己的一套折衷方案。透明度成為乙個問題,因為透過半透明物件可以看到的幾何資料在第一階段會被丟棄。其他權衡因素包括由於緩衝區和處理混疊所需的額外變通辦法而增加的記憶體消耗。

面向初學者的3D遊戲著色器 Fog

fog 霧 或攪拌機中稱之為薄霧 給場景增加了大氣薄霧,提供了神秘感和柔和感。當一些幾何圖形突然進入相機的平截頭體時,會出現彈出視窗。uniform vec4 color uniform vec2 nea r 要計算霧,你需要它的顏色 近距離和遠距離。uniform sampler2d positi...

面向初學者的3D遊戲著色器 汙跡

汙跡 當你試圖獲得乙個特定的外觀或者執行一些技術比如運動模糊時,模糊這個或者那個的需要會經常出現。下面是一些模糊遊戲形象的方法。盒子模糊 盒子模糊或均值濾波演算法是一種簡單的實現模糊效果的方法。速度很快,完成了任務。如果你需要更多的技巧,你可以公升級到高斯模糊。vec2 texsize textur...

面向初學者的3d遊戲著色器 unity3d

面向初學者的3d遊戲著色器 對在3d遊戲中新增紋理 光照 陰影 法線貼圖 發光物體 環境遮擋 反射 折射等。下面是一組陰影技術,已經解釋了每一種技術,這樣就可以把你在這裡學到的東西應用 移植到你使用的任何堆疊上 不管是戈多 統 一 虛幻還是其他什麼。對於著色器之間的粘合,我選擇了神話般的潘達3d遊戲...