《高效学习OpenGL》 之 深度测试 遮挡查询 glDepthFunc(), glGenQueries(), glBeginQuery(), glGetQueryObjectiv()
2014-03-03 11:55
1856 查看
1.为深度测试设置比较函数:
glDepthFunc(GLenum func);
//func默认为GL_LESS
2.遮挡查询
生成一组未使用的查询ID:
glGenQueries(GLsizei n, GLuint *ids);
//返回n个当前未使用的ID,可用于表示遮挡对象的名称。这些名称是在ids数组中返回的。
判断一个标识符当前是否被一个遮挡查询对象所使用:
GLboolean glIsQuery(GLuint id);
指定一次遮挡查询操作的开始:
glBeginQuery(GLenum target, GLuint id);
//target必须是GL_SAMPLES_PASSED,id是一个查询对象名称
结束一次查询操作:
glEndQuery(GLenum target);
//target必须是GL_SAMPLES_PASSED
判断指定查询的结果:
glGetQueryObjectiv(GLenum id, GLenum pname, GLenum *params);
//id是一个查询对象名称,如果pname是GL_QUERY_RESULT,params将包含通过深度测试的片段的数量
//如果数量为0,表示此对象完全被遮挡
清除遮挡查询对象:
glDeleteQueries(GLsizei n, GLuint *ids);
//参数同glGenQueries()
glDepthFunc(GLenum func);
//func默认为GL_LESS
2.遮挡查询
生成一组未使用的查询ID:
glGenQueries(GLsizei n, GLuint *ids);
//返回n个当前未使用的ID,可用于表示遮挡对象的名称。这些名称是在ids数组中返回的。
判断一个标识符当前是否被一个遮挡查询对象所使用:
GLboolean glIsQuery(GLuint id);
指定一次遮挡查询操作的开始:
glBeginQuery(GLenum target, GLuint id);
//target必须是GL_SAMPLES_PASSED,id是一个查询对象名称
结束一次查询操作:
glEndQuery(GLenum target);
//target必须是GL_SAMPLES_PASSED
判断指定查询的结果:
glGetQueryObjectiv(GLenum id, GLenum pname, GLenum *params);
//id是一个查询对象名称,如果pname是GL_QUERY_RESULT,params将包含通过深度测试的片段的数量
//如果数量为0,表示此对象完全被遮挡
清除遮挡查询对象:
glDeleteQueries(GLsizei n, GLuint *ids);
//参数同glGenQueries()
相关文章推荐
- 《高效学习OpenGL》 之 裁剪测试 alpha测试 glScissor(),glAlphaFunc()
- 《高效学习OpenGL》之 视口变换 glViewport(), glDepthRange()
- 关于OpenGL中深度截取(GL_DEPTH_CLAMP)的讲解
- NGUI中的层级问题(通过修改(Depth)深度来解决前后遮挡问题)
- glDepthFunc
- glDepthFunc()函数
- OpenGL函数思考-glDepthFunc
- glClearDepthf与glDepthFunc(2012-08-07 )
- 关于GLSL的gl_FragCoord、gl_FragDepth以及深度计算
- cocos2d-x 开启深度测试验 实现 遮挡
- glClearDepthf与glDepthFunc
- glClearDepthf与glDepthFunc
- jogl glDepthFunc glhint
- glClearDepthf与glDepthFunc
- Unity Shader (三)深度测试(depth test)
- 关于GLSL的gl_FragCoord、gl_FragDepth以及深度计算
- OpenGL函数思考-glDepthFunc
- glClearColor、glClear、glColor、glShadeModel、glClearDepth、glDepthFunc
- 用depth字段优化指定深度节点的查询
- 《高效学习OpenGL》 之 混合 glBlendFunc(), glBlendFuncSeparate(),glBlendEquation(), glBlendEquationSeparate()