2012-07-26 34 views
1

我正在使用OpenGL + GLSL進行環境反射。OpenGL中環境反射的SphericalMapping和CubeMapping之間的區別?

我想以最準確的方式反映物體周圍的環境。

我發現基本上有兩種方法可以做到這一點,一種叫做SphericalMapping,另一種叫做CubeMapping。

它們在着色器代碼上有所不同,但真的不明白它們之間的區別。

很明顯,對於cubemap着色器,我有6個圖像打印在一個立方體上,片段着色器需要看正確的像素,並且爲我的Spheric貼圖着色器使用照片潤飾軟件扭曲或得到的單個圖像通過拍攝鏡面反射球體的照片。

球面貼圖的缺點似乎是相機(以及持有它的人)總是出現在圖像中,並且採樣是不均勻的。這個最新的聲明是什麼意思?球面映射中的「黑洞」效應是什麼意思?

我想找到這兩種方法的差異和缺點的交互式演示,似乎cubemapping是最好的,但不知道爲什麼。

這兩款產品中最棒的是哪一種,特別是對於在您的意見中進行頭部跟蹤的實時模擬?

回答

1

Spheremaps通常用於小型,低質量的東西。

球面映射的缺點似乎是攝像機(和持有它的人)是

我們在這裏討論的計算機圖形圖像中總是顯示;沒有真正的相機,或沒有真正的人。嘗試使用imagegoogling「spheremap」,你不會在圖片中看到任何人。

採樣不均勻

這意味着spheremap的中心有一個相對較小的區域多的像素,而在邊界附近,你有一個比較大的區域幾個像素。

Cubemaps幾乎總是更好:您可以在運行時輕鬆生成它們,更快地採樣硬件,即使您有6個紋理而不是1個,您仍然可以使用較低的分辨率,並且仍然可以獲得相同的質量。

+0

哦謝謝!我將繼續使用立方體貼圖,他們在每個細節上擊敗球體貼圖,並且着色器的寫入更加簡單! – linello 2012-07-26 10:18:18