2013-05-25 49 views
0

我理解一個簡單的GLSL霧陰影是如何工作的,但它如何應用?將其直接應用於地形網格不會產生所需的「霧」結果。如何用着色器模擬OpenGL的內置霧效果?我唯一能想到的就是將着色器應用到相機周圍的一系列包圍球體中,但對於一些霧而言,這看起來像很多工作。OpenGL/GLSL霧應用程序

更新: 一些圖像進一步解釋。

這是我已經應用到我的地形網格的着色器,而結果是不是我想要的:

http://puu.sh/31dft.jpg

這是影響我期待複製類型:

http://mw2.google.com/mw-panoramio/photos/medium/4503932.jpg

+0

它如何不產生預期的結果?你有任何截圖的一些參考你如何看起來像? – Grimmy

+0

@Grimmy,看我更新的帖子 – LucasS

+0

所以你想體積霧嗎? – Grimmy

回答

0

您必須將霧色和背景色設置爲相同。否則,效果看起來怪異。霧的目的是讓遠處的物體「消失在背景中」。你的圖像的問題是你的背景是明亮的藍色,就好像你希望它是一個晴朗而晴朗的日子。但是場景中的物體正在變成白色,好像有一道非常濃密的霧。我建議你找到一些妥協 - 對兩者都使用灰藍色。

1

半真實的氣氛渲染是許多(正在進行的)研究致力於的複雜問題。在參考照片中,基本上有三個主要因素可以促成特定的構圖:i。霧/霧霾ii。大氣散射iii。高度。

簡單地說,只將霧應用於諸如地形等物體,本質上是一個有缺陷的概念,因爲霧遮擋/遮擋了光線的透射。這包括來自天空的光。因此,爲了涵蓋應用於「天空」的霧的情景,需要另一種方法,涉及後處理。本質上,每個像素的位置需要在三維空間中進行重構,霧算法需要遍歷每一個像素。

根據具體的藝術風格,這可能已經足夠滿足您的需求,但它更復雜。本文檔http://developer.amd.com/wordpress/media/2012/10/D3DTutorial_Crytek.pdf爲大氣渲染提供了一個很好的起點(它包括體積霧)。