2010-12-05 34 views
2

我試圖將霧添加到我的場景中,而不是場景變得更遠離相機更霧,霧似乎完全依賴於高度。下面是一個屏幕截圖,展示問題:OpenGL霧是基於Z軸而不是深度

http://gyazo.com/ab60dfd1d85a3a5533153f09ef6a059e.png

我用下面的代碼初始化霧:

gl.glFogx(GL10.GL_FOG_MODE, GL10.GL_LINEAR); 
gl.glFogfv(GL10.GL_FOG_COLOR, new float[] { 1.0f, 1.0f, 1.0f, 1.0f }, 0); 
gl.glFogf(GL10.GL_FOG_DENSITY, 0.35f); 
gl.glHint(GL10.GL_FOG_HINT, GL10.GL_DONT_CARE); 
gl.glFogf(GL10.GL_FOG_START, 10.0f); 
gl.glFogf(GL10.GL_FOG_END, 15.0f); 
gl.glEnable(GL10.GL_FOG); 

這是我的投影是如何設置的:

gl.glMatrixMode(GL10.GL_PROJECTION); 
gl.glLoadIdentity(); 
GLU.gluPerspective(gl, 90.0f, _w/_h, 0.1f, 15.0f); 
GLU.gluLookAt(gl, _player.position.x, _player.position.y, _player.position.z, centerX, centerY, centerZ, 0.0f, 0.0f, 1.0f); 

任何想法有什麼不對?

+0

您的霧正在應用於世界座標而不是視圖。不知道爲什麼:/ – 2010-12-05 19:03:23

回答

1

哦。您需要使用gluLookAt代替GL_PROJECTION,而不是GL_MODELVIEW矩陣。真是一個美好的時刻。