我有一个大型 3D 场景,所有对象都存储在 OpenGL 顶点数组中,并且每个帧都使用以下内容绘制:
for(int i = 0 ; i < noLists ; ++i)
{
glVertexPointer(3, GL_FLOAT, 0, vertexArraysList[i] ) ;
glColorPointer(4, GL_FLOAT, 0, colorArraysList[i] ) ;
glDrawArrays(GL_QUAD_STRIP, 0, verticesNumber) ;
}
通常,用户首先开始查看整个场景,但很快识别出感兴趣的部分并放大给定区域,因此整个场景的大部分都落在屏幕之外。但是我发现缩放时的 FPS 速率与查看整个屏幕时相同,因此 OpenGL 似乎仍然绘制了所有那些落在屏幕之外的顶点(或者至少在管道中的进展足够远,与绘制没有区别他们在时间成本方面)。
有没有办法测试特定顶点数组的内容是否落在屏幕之外,所以我可以避免绘制它?