使用openGL进行放大/缩小的方法(C ++)

时间:2014-04-22 09:04:05

标签: c++ opengl

我想知道放大/缩小时常用的方法是什么。 在我目前的项目中,我必须在屏幕上显示数百万个2D矩形,并且我在使用放大/缩小时使用固定视口并更改glortho2D变量。 我想知道这是否是一种很好的方式,我可以使用其他解决方案。

我还有另一个我认为与之相关的问题 我该怎么做放大/缩小。 正如我所说,我当前正在使用固定的视口并在我的代码中更改glortho2D变量,我假设opengl将能够找出哪些矩形在屏幕外并且不渲染它们。然而,似乎opengl一次又一次地重绘所有矩形。观看数百万个矩形(缩小)的渲染时间等于渲染数百个矩形(放大到特定区域),这与我的预期相反。我想知道它是否与我使用的缩放方法有关,或者我错过了一些重要的东西。

即。我在渲染矩形时使用VBO。

1 个答案:

答案 0 :(得分:1)

  

我认为opengl能够找出哪些矩形不在屏幕内

你认为错了

  

而不是渲染它们。

OpenGL是一个相当愚蠢的绘图API。在OpenGL中没有像场景这样的东西。它所做的就是一次将帧缓冲区上的像素着色为一个点,一条线或三角形。当几何体位于视口之外时,它仍然必须被处理到它被剪切的点(然后被丢弃)。