您的位置:首页 > 产品设计 > UI/UE

SFGUI和OpenGL的深度测试

2014-05-16 12:31 169 查看
使用SFGUI和OpenGL时,发现一个问题,场景中什么也没有,不知道为什么。后来在网上找到了原因,原来是启用深度测试的问题。
glEnable(GL_DEPTH_TEST); //
Enable Depth Testing
[align=left]glDepthMask(GL_TRUE);[/align]
[align=left]glClearDepth(1);[/align]

绘制半透明物体时,需注意:在绘制半透明物体时前,还需要利用glDepthMask(GL_FALSE)将深度缓冲区设置为只读形式,否则可能出现画面错误。为什么呢,因为画透明物体时,将使用混色,这时就不能继续使用深度模式,而是利用混色函数来进行混合。这一来,就可以使用混合函数绘制半透明物体了。

[align=left]
[/align]
[align=left]
[/align]
[align=left]如果程序中用到了SFGUI,在程序中启用了GL_DEPTH_TEST,必须调用glDepthMask(GL_TRUE),最好也调用一下glClearDepth(1),除此之外,画sfgui的时候要这样使用,如下:[/align]

[align=left]app_window.pushGLStates();[/align]
[align=left]sfgui.Display(app_window);      [/align]
[align=left]app_window.popGLStates();[/align]
[align=left]app_window.display();[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SFGUI OpenGL 深度测试