2012-11-20 49 views
1

我在HLSL中有一個代碼,旨在模擬IBL(基於圖像的燈http://en.wikipedia.org/wiki/Image-based_lighting)。爲了模擬IBL對於從對象周圍的「世界」獲得紋理是必要的,我希望通過對象的位置動態生成紋理。我有兩個問題:「基於圖像的光」HLSL

•如何在物體周圍360度生成一個世界的紋理?我需要每個45度的6臺攝像機,或者只有一臺可以做到這一點?

•我已經知道如何用「sampleCUBE」映射立方體紋理,但是我在6邊有相同的圖像,我怎樣才能讓每邊都有它自己的紋理?

http://i.stack.imgur.com/Iz6RZ.png

的IBL存在於遊戲,如極限競速4和Crysys 2.

回答

1

您可能需要6渲染(如果設置巨大的FOV可能是2或4,但它會導致失真和意志更難以使用),或者如果您可以使用立方體貼圖作爲渲染目標或使用某種類型的渲染到球形地圖,則可以單次渲染它。link沒有完整的圖片,您將無法使用足夠的數據。但是這些渲染可能包含非常基礎的着色器和低分辨率輸出。此外,您不需要每幀刷新它們,而是可以移動紋理一點,併爲每個5幀刷新近距離物體,每10幀遠距離物體刷新一次。最重要的是,您只需要在可見部件上使用「基於圖像的光源」,因此您最多隻能使用3次通過而不是6次。