勵志

勵志人生知識庫

shadow moire原理

Shadow Moire原理是一種在渲染場景時出現的視覺效果,特別是在使用陰影映射(Shadows Mapping)技術時。陰影映射是一種主流的陰影算法,它分為兩個Pass來渲染場景:

第一個Pass:從光源射出的方向出發,記錄到達像素(片元)的最淺距離,並得到一張深度圖,其中深度值表示物體離光源的距離,0-1的深度值表示黑色到白色,物體離光源越近顏色越黑。

第二個Pass:從攝像頭的觀察方向出發,渲染場景得到像素(片元)。然後,計算這些片元到光源的距離,並與第一個Pass中記錄的距離進行比較。如果片元到光源的距離比第一個Pass中記錄的距離更遠,則說明片元被遮擋,存在陰影。

由於光源離地平線越近,光源到像素的距離1和攝像頭到像素的距離2就會不一致,導致地面出現類似摩爾紋的陰影錯誤。為了解決這個問題,通常會增加一個根據角度改變的偏移距離Bias值。但是,如果Bias值過大,可能會導致陰影邊緣出現懸空的問題,即腳步陰影看起來像是懸在空中,這種情況在工業界通常通過調整Bias值來大體解決。

PCF(Percentage Closer Filtering)是一種減少這種摩爾紋陰影錯誤的模糊技術。它通過比較片元到光源的距離,不再只和深度圖的一個點做比較,而是和這個點周圍如3x3範圍的每個點(片元)做一個平均或加權過濾,從而消除了陰影邊緣的鋸齒。

總的來說,Shadow Moire是由於光源和攝像頭之間的相對位置變化導致的,而PCF和增加Bias值是解決這一問題的常見方法。