opengl glDepthRange object 在 Z 深度上消失
opengl glDepthRange object disappearing on Z depth
当 z 深度增加同时将 object 围绕 x 轴旋转 10 度时,线条会消失。我将 glDepthRange 值编辑为 -100,100 或更高但没有任何变化。我该如何解决?
void render()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
if( gRenderQuad )
{
glBegin( GL_LINE_LOOP );
glVertex3f(0.3f, 0.5f, 0.4f );
glVertex2f( -0.5f, -0.9f );
glVertex2f( 0.5f, -0.5f );
glVertex2f( 0.5f, 0.5f );
glVertex2f( -0.5f, 0.5f );
glEnd();
}
glDepthRange(-100,100);
glEnable(GL_DEPTH_TEST);
}
I edited the glDepthRange
value to -100, 100
这是不可能的。深度范围的值必须在 [0.0, 1.0] 之间。您可以只设置范围 [0.0, 1.0] 的子范围。参见 glDepthRange
。
如果想增加观看量,需要用到投影矩阵。一个 Orthographic projection can be set with glOrtho
:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0, 1.0, -1.0, 1.0, -100.0, 100.0);
glMatrixMode(GL_MODELVIEW);
void render()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
if( gRenderQuad )
{
glBegin( GL_LINE_LOOP );
glVertex3f(0.3f, 0.5f, 0.4f );
glVertex2f( -0.5f, -0.9f );
glVertex2f( 0.5f, -0.5f );
glVertex2f( 0.5f, 0.5f );
glVertex2f( -0.5f, 0.5f );
glEnd();
}
glDepthRange(-100,100);
glEnable(GL_DEPTH_TEST);
}
I edited the
glDepthRange
value to -100, 100
这是不可能的。深度范围的值必须在 [0.0, 1.0] 之间。您可以只设置范围 [0.0, 1.0] 的子范围。参见 glDepthRange
。
如果想增加观看量,需要用到投影矩阵。一个 Orthographic projection can be set with glOrtho
:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0, 1.0, -1.0, 1.0, -100.0, 100.0);
glMatrixMode(GL_MODELVIEW);