您的位置:首页 > 移动开发 > Objective-C

《高效学习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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息