opengl glDepthRange 对象在 Z 深度上消失
Posted
技术标签:
【中文标题】opengl glDepthRange 对象在 Z 深度上消失【英文标题】:opengl glDepthRange object disappearing on Z depth 【发布时间】:2020-12-21 09:23:21 【问题描述】:当 z 深度增加同时围绕 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);
【问题讨论】:
【参考方案1】:我将
glDepthRange
的值编辑为-100、100
这是不可能的。深度范围的值必须在 [0.0, 1.0] 范围内。您可以只设置范围 [0.0, 1.0] 的子范围。见glDepthRange
。
如果要增加观看量,则需要使用投影矩阵。可以使用glOrtho
设置Orthographic projection:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0, 1.0, -1.0, 1.0, -100.0, 100.0);
glMatrixMode(GL_MODELVIEW);
【讨论】:
请查看streamable.com/wcnzei。我将其设置为 (0,1)以上是关于opengl glDepthRange 对象在 Z 深度上消失的主要内容,如果未能解决你的问题,请参考以下文章