2011-08-30 83 views
4

這是我如何使霧在OpenGL:爲什麼OpenGL霧沒有出現?

float fog_colour[4] = {1,1,1,1}; 
glEnable(GL_FOG); 
glFogf(GL_FOG_MODE,GL_EXP2); 
glFogfv(GL_FOG_COLOR,fog_colour); 
glFogf(GL_FOG_DENSITY,0.5); 
glHint(GL_FOG_HINT,GL_NICEST); 
glFogf(GL_FOG_START,0.1); 
glFogf(GL_FOG_END,100); 

每個對象範圍爲0.1-100,但霧只是沒有出現,發生了什麼?

+0

如果沒有出現霧,什麼?你渲染什麼樣的場景?也許霧密度0.5不夠強。 –

+1

你的霧是完全黑色的。我的猜測是你的場景背景也是黑色的。 – wormsparty

+3

@ wormsparty:不,霧色是白色的('{1,1,1,1}'是白色的而不是黑色的)。 – Constantinius

回答

5

問題是GL_EXP2模式。

如果檢查公式用於GL_EXP2模式霧混合因子:

F = E 1(( - 密度* Z)^ 2)(夾緊到[0..1])

霧曲線僅用密度參數進行調整。如果您的範圍是0.1-100,我會建議大約0.001的密度。

無論如何,對於測試霧更好地首先以GL_LINEAR模式開始。可視化更容易。

相關問題