Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OpenGL雾基于Z轴而不是深度_Java_Android_Opengl Es - Fatal编程技术网

Java OpenGL雾基于Z轴而不是深度

Java OpenGL雾基于Z轴而不是深度,java,android,opengl-es,Java,Android,Opengl Es,我试图在我的场景中添加雾,但与远离摄影机的场景变得更加雾化不同,雾似乎完全取决于高度。下面是演示问题的屏幕截图: (来源:) 我使用以下代码初始化雾: 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

我试图在我的场景中添加雾,但与远离摄影机的场景变得更加雾化不同,雾似乎完全取决于高度。下面是演示问题的屏幕截图:


(来源:)

我使用以下代码初始化雾:

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 );

知道怎么了吗?

哦。您需要对GL_MODELVIEW矩阵使用gluLookAt,而不是GL_投影。多么美妙的时刻。

正如您所说,您的相机需要使用GL_MODELVIEW


请参见

您的雾将应用于世界坐标,而不是视图坐标。不知道为什么:/Z轴是深度。。。你把一切都画错了。X是从左到右,Y是从下到上,Z是从远到近。