?????? 說到ssao 就要從ao說起,ao,即間接環境光遮蔽技術。我們知道現實中的光線,除了來自太陽和電燈的直射光線以外,光線碰到物體以后,還會再次反射,折射,而再次反射折射的過程中,又會被其他物體遮擋,而留下陰影。所以實際上,現實中你看到的陰影,不只是直接光源,如陽光電燈被物體遮擋所留下的陰影,還有許多是它們被間接的反射和折射后所留下的影子,而ao的目的就是模擬這種間接陰影的形成。
從上到下分別是孤島危機2中的ssao,ssdo,以及最低特效下的木有任何ao。
??????? 從上圖我們可以更清楚地發現:ao的開啟為墻壁的磚縫帶來了陰影。而ssdo是孤島危機2 dx11中帶來的新的ao處理方式,它的亮點就是“動態的ao"
??????? 我們知道,游戲中的直接光源可以是動態的,而所謂牽一發動全身,一旦直接光源的照射角度,照射強度發生變化的時候,那么與它相關的反射光,折射光也會相對地發生變化,那么這些間接的反射光,折射光被遮蔽所留下的陰影情況也自然會發生變化。傳統的ssao在面對這種復雜情況時容易發生最終顯示效果上的錯誤,因此實際上在dx9的孤島危機2中雖然也有ssao,但其實它對于動態間接光照的遮蔽計算是被關閉的,也就是“死水一般的ssao",而ssdo的出現則可以實現精確地處理全動態范圍的間接環境光遮蔽情況,因此在dx11版中你所看到的ao,是隨著環境光源的變化而變化的。
?????? 實現原理:
?????? ssao:屏幕空間環境光遮蔽,是ao被擺上臺面后,最早提出的,一種環境光遮蔽陰影計算與實現技術。原理是這樣的:我們知道物質的表面是凹凸起伏的,而游戲為了表現物體起伏,通常是在物體模型和物體凹凸紋理上做文章。ssao的目的就是檢測這些凹凸紋理表面的凹凸情況,也就是”深度值“來判斷哪些物體在凹的地方,那些物體在凸的地方。凹的地方被間接光源照射以后,它的光會被凸的地方擋住,從而產生陰影,于是ssao檢測到以后,賦予它一個陰影。
?????? ao的開啟為墻壁的磚縫帶來了陰影,而ssdo是孤島危機2 dx11中帶來的新的ao處理方式。它的亮點就是“動態的ao"。我們知道,游戲中的直接光源可以是動態的。而所謂牽一發動全身,一旦直接光源的照射角度,照射強度發生變化的時候,那么與它相關的反射光,折射光也會相對地發生變化。那么這些間接的反射光,折射光被遮蔽所留下的陰影情況也自然會發生變化。傳統的ssao在面對這種復雜情況時容易發生最終顯示效果上的錯誤,因此實際上在dx9的孤島危機2中雖然也有ssao,但其實它對于動態間接光照的遮蔽計算是被關閉的,也就是“死水一般的ssao"。而ssdo的出現則可以實現精確地處理全動態范圍的間接環境光遮蔽情況,因此在dx11版中你所看到的ao,是隨著環境光源的變化而變化的。