日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实时全局光照总结

發布時間:2023/12/31 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实时全局光照总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

全局光照只考慮一次間接光照,核心問題是怎么找出次級光源以及如何高效的計算全局光照。
RSM
shadow map中存儲了次級光源的信息,這些次級光源被當作diffuse材質,可以像四面八方反射光線,簡單理解就是把每一個shadow map中的像素當成是一個點光源,每一個渲染點都需要去找能影響它的點光源。關鍵的問題是次級光源太多,我們需要根據屏幕空間的法線,世界坐標,深度信息對次級光源進行篩選,但是因為次級光源沒有遮擋關系,所以RSM無法表達全局光照的陰影。這個算法通常用到手電筒上,因為這樣的shadow map分辨率很小。
LPV
LPV在找次級光源的地方和RSM一樣,它將場景體素化,每一個體素里面存儲次級光源,次級光源沿著周圍的6個格子開始傳導,經過幾次迭代后,每個格子的光源信息存儲在球諧函數上,最后每一個渲染點查找它所在的體素中,加上這個體素的間接光照。這個算法要比RSM快,因為一幀只做一次光的傳播,然后所有像素都可以分享這個結果,另外使用了球諧函數也就意味著間接光照不支持specular,同樣這個算法不支持AO,另外這個方法有漏光的現象,因為體素中的間接光照是無差別對待的,如果過體素劃分的比較大,那么有些幾何點本不應該被照亮,還是被照亮了。
VXGI
VXGI將場景組織成四叉樹,然后將間接光源的radiance和direction信息注入到四叉樹中,每一個渲染點都會發射一個錐體,判斷有多少個格子在視錐體中,距離像素越近的使用越精選的格子進行判讀,越遠使用越粗的格子判讀,因為有光源的方向信息,所以每一個點光源都可以計算specular,鏡面反射好處理,對于漫反射這是發出多條錐體去覆蓋半球。
SSAO
上面的算法無法計算全局光照的陰影,SSAO在屏幕空間上計算全局光照的陰影,原理很簡單,沿著著色點法線方向的半球隨機灑落一些點,在shadow map中比較這些點的深度,然后判斷遮擋光系。因為只有屏幕空間的信息,所以會出現錯誤的遮擋,比如屏幕空間中的兩個像素其實在世界空間中距離比較遠,本不應該被遮擋,最終還是被遮擋了,如果能夠獲得點的世界位置的信息就可以避免這個問題,比如HBAO。如果有距離場信息,我們可以在世界空間中發出一些射線進行精確的遮擋判斷,因此SDF也可以做AO遮擋。
SSDO
和SSAO差不多只不過判斷的是哪些點遮擋了,然后根據這些點做間接光照。這個算法只能做短距離的全局光照,物體的遮擋關系發生變化后間接光照的效果會發生變化。
SSR
其實就是根據屏幕空間做射線然后計算相交,需要不停的試探,可以使用深度金字塔進行試探優化。這里的相交計算是通過深度信息比較而不是真正的射線。

總結

以上是生活随笔為你收集整理的实时全局光照总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。