《高效学习OpenGL》 之 深度测试 遮挡查询 glDepthFunc(), glGenQueries(), glBeginQuery(), glGetQueryObjectiv()

来源:互联网 发布:在淘宝产品搜索量最高 编辑:程序博客网 时间:2024/05/19 17:23

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()



0 0
原创粉丝点击