OpenGL延迟着色之一
生活随笔
收集整理的這篇文章主要介紹了
OpenGL延迟着色之一
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OpenGL延遲著色
- OpenGL延遲著色簡介
- 源代碼剖析
- 主要源代碼
OpenGL延遲著色簡介
我們一直使用的方法稱為“正向渲染”或“著色”。… 這是一種簡單的方法,其中我們對VS中所有對象的頂點執行一系列轉換(法線和坐標到剪輯空間的大部分平移),然后對FS中的每個像素進行光照計算。由于每個像素在FS中僅使用一次,因此在計算每個像素的光效時,我們需要向FS提供有關所有光源的信息。這是一種簡單的方法,但是有其缺點。在具有許多對象的復雜場景(如大多數游戲)中,并且同一像素被多個對象覆蓋的情況下,我們將浪費資源。例如,如果深度的復雜度為4,則光計算的3倍是徒勞的,因為只需要頂部像素。當然,我們可以按照與相機的距離對物體進行排序,
高級渲染的另一個問題是大量光源出現的。通常,在這種情況下,光線的傳播半徑不大(否則它將淹沒整個場景)。但是我們的FS會計算每個光源的效果,即使它離像素很遠也是如此。我們可以嘗試計算它們之間的距離,但這是FS中的額外開銷和分支。正向渲染根本不適合具有大量光源的場景。試想一下,使用100個來源將進行多少次計算…
延遲陰影是許多游戲中使用的一種流行技術,可以解決上述問題。關鍵是幾何計算(位置變換和法線變換)與照明計算之間存在分隔。我們沒有將所有對象從有效緩沖區一直移到幀緩沖區中的最終位置,而是將過程分為兩個大部分。在第一遍中,我們啟動常規VS,但不是將處理后的
總結
以上是生活随笔為你收集整理的OpenGL延迟着色之一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenGL GLFX开放GL效果库
- 下一篇: 带网络的pe系统怎么办 网络环境下的PE