光照貼圖產生中的精度問題

來源:互聯網
上載者:User

使用全域光照貼圖對情境進行渲染,首先就需要對情境進行光照貼圖的產生,同時計算出情境中各個多邊形的頂點所對應的紋理座標,然後再對多邊形列表的光照貼圖進行合并,並進行紋理座標的重新置放,這樣就可以產生整個情境的一張光照貼圖,從而實現帶有光照效果的高效率渲染。

理論上,在渲染時各個多邊形根據它所對應的紋理座標來訪問情境光照貼圖就能得到正確的顯示效果,但在實際中卻由於浮點運算的精度誤差而使得到的紋理座標產生誤差,導致每個多邊形在訪問光照貼圖時會出現紋理偏差,進而致使渲染出的情境效果不正確,特別是情境中多邊形的邊緣處會出現很不自然的裂痕,這樣就使渲染的品質降低。雖然這些偏差都是在單個紋理地區的邊界上出現微小的偏差,但由於兩個多邊形邊界處本應自然銜接,於是這在邊界上出現的即便是極小的偏差也導致了整體渲染效果的下降。

 

 

 

根據問題出現的原因可以得到如下的解決方案:

1.      
通過提高計算多邊形紋理座標的精度,比如由float -> double,但在實際實現中這樣操作並沒有什麼實質的改善。

2.      
在進行多邊形的光照貼圖到情境的光照貼圖的合并過程中,對多邊形的光照貼圖進行處理。在進行貼圖擴充的時間,對原始單個多邊形的光照貼圖進行擴充,利用原始貼圖的邊緣顏色值進行擴充,使其邊緣範圍變大,這樣即使是在情境的光照圖中出現訪問的偏差,得到的依然是該貼圖的邊界的顏色值,這樣就可以使相鄰的兩個多邊形的邊緣融合得很好。在實際實現中用這種方法就可以很好地解決各個多邊形邊界裂痕的問題。

 

擴充後的光照貼圖:

     
                  

              
原始的貼圖                                                               擴充後的貼圖

 

其中,藍色邊框這外即是擴充出的紋理地區。

 

改進後的情境渲染效果:

       

 

        雖然使用貼圖的擴充增大了原有光照貼圖的尺寸及空間,但相對其帶來的好處來說,這一點是可以忽略不計的,這種擴充方法還可以用在其它類似問題的解決中。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.