可以在openGL中“查看”对象

时间:2011-10-27 09:31:17

标签: opengl

enter image description here

我不确定为什么会这样,我只渲染一些简单的原始QUADS。 红色意味着在黄色前面。

黄色总是在红色前面,即使它在它后面。

这是一个错误还是我错误地看到了多维数据集?

2 个答案:

答案 0 :(得分:10)

打开深度缓冲和深度测试,或者OpenGL会在后面绘制后者。

  

您的应用程序至少需要执行以下操作才能使深度缓冲起作用:

     

创建窗口时请求深度缓冲区。

     

在创建上下文并使其成为当前上下文之后,在程序的初始化例程中调用glEnable(GL_DEPTH_TEST)。

     

确保正确设置zNear和zFar剪裁平面,并提供足够的深度缓冲精度。

     

将GL_DEPTH_BUFFER_BIT作为参数传递给glClear,通常与其他值(如GL_COLOR_BUFFER_BIT)进行按位或运算。

请参阅此处http://www.opengl.org/resources/faq/technical/depthbuffer.htm

答案 1 :(得分:0)

我有同样的问题,但它与深度缓冲区无关,虽然我确实看到了一些更改,当我启用它时。它与使用的混合函数有关,它们在渲染的最后一步组合了像素强度。所以我不得不关闭glBlendFunc()