AO的解釋,不錯

2021-09-30 03:15:59 字數 699 閱讀 1819

ao-ambient occlusion,「環境吸收」或者「環境光吸收」。

什麼是occlusion?

簡單的來解釋,那就想象一下這樣的乙個情形:

當場景中所有的物體都是單一白色並且是由乙個白色燈光來產生均勻的直接照明,那麼基本上,結果就是得到乙個蒼白的影象。但是當某些物體阻擋了相當數量的本應投射到其他物體的光線時,那將會發生什麼呢?這些光線沒有到達那些物體,結果就是被光線阻擋的地方變得較暗。越多光線被阻擋,表面就越暗。所以基本上我們得到的是乙個帶有自身幾何相交暗區的白色影象。

occlusion 就是提供了非常精確和平滑的陰影,就好像是全域性照明的結果。在你最終渲染後有多種方法來合成這些陰影會在真正意義上改善影象,它主要能改善陰影,給場景更多的深度,真正有助於更好的表現出模型的所有細節。

通俗的來講就是:ao不需要任何燈光照明,它以獨特的計算方式吸收「環境光」(同時吸收未被阻擋的「光線」和被阻擋光線所產生的「陰影」),從而模擬全域性照明的結果,它主要是通過改善陰影來現實更好的影象細節,尤其在場景物體很多從而到處阻擋著光線導致間接照明不足時,ao的作用會更加明顯。

那麼要問ao到底能帶來哪些效果(好處)呢?具體的說,ao可以解決或改善漏光、飄和陰影不實等問題,解決或改善場景中縫隙、褶皺與牆角、角線以及細小物體等的表現不清晰問題,綜合改善細節尤其是暗部陰影,增強空間的層次感、真實感,同時加強和改善畫面明暗對比,增強畫面的藝術性。

忘記**摘的了,感謝寫這文章的人精闢的講解

AO的預編譯

js在頁面載入過程中順序執行。但是分塊預編譯 執行。js在執行前會進行類似 預編譯 的操作,而且先預宣告變數再預定義函式。此時注意,是宣告,不是定義,如 var a 1 在預編譯中,只是執行了 var a 沒有賦值,即在預編譯結束時a 為undefined。注意 並不是先全文編譯完在執行,而是塊編譯...

Spring Anno AOP 基於註解的AOP)

參考文章 aspect註解 package com.itheima.utils import org.aspectj.lang.proceedingjoinpoint import org.aspectj.lang.annotation.import org.springframework.ster...

不錯的文章

1,人生最重要的不是努力,不是奮鬥,而是抉擇。2,老闆只能給乙個位置,不能給乙個未來。舞台再大,人走茶涼。3,意外和明天不知道哪個先來。沒有危機是最大的危機,滿足現狀是最大的陷阱。4,所見所聞改變一生,不知不覺斷送一生。5,生意,可以掌控努力與投資,卻無法掌控結果。人生得意時找出路,失意時才有退路,...