GPU遮挡查询的方法是渲染一个物体时,向GPU发出遮挡查询命令,再渲染物体且不写颜色缓存和深度缓存,然后等待查询结果返回,如果查询结果为渲染的像素数量大于0则表示该物体应该被渲染,否则不被渲染。
GPU遮挡查询的简单方法:
1.glGenQueriesARB: 创建查询
2.glBeginQueryARB: 发送查询命令
3.glGetQueryivARB: 查看查询命令是否返回
4.glGetQueryObjectuivARB: 查看查询结果
5.glEndQueryARB:
GPU遮挡查询的改进方法:
1.glGenQueriesARB: 创建查询,并保存到队列
2.glGetQueryivARB:查看查询命令是否返回
3.如果查询返回,则根据查询结果渲染物体,否则根据上帧物体是否被遮挡而决定是否渲染物体
4.glBeginQueryARB: 如果当前物体的查询结果返回则再次发送查询命令
5.遮挡查询渲染
6.glEndQueryARB:
7.转到2继续下个物体,知道所以物体遍历结束。