我正在编写一个程序来显示5百万个矩形,用OpenGL渲染.它需要约.3秒钟在屏幕上显示这些矩形.但是,当我尝试放大/缩小或向左/向右平移屏幕时,也需要相同的时间.
我想知道是否有办法将所有内容保存到内存/缓冲区中,因此屏幕不必一次又一次地重绘.
我也对其他解决方案持开放态度.
以下是我的重塑功能:
static void reshape_cb() {
glViewport(0, 0, (GLint) screen_width, (GLint) screen_height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D (0.0, DESIGN_SIZE, 0.0, DESIGN_SIZE);
}
Run Code Online (Sandbox Code Playgroud)
我正在编写一个程序来显示5百万个矩形,用OpenGL渲染.它需要约.3秒钟在屏幕上显示这些矩形.
这听起来像是以非常低效的方式发送绘图命令.现代GPU能够每秒渲染数亿个三角形.我的猜测是,你正在使用立即模式.
我想知道是否有办法将所有内容保存到内存/缓冲区中,因此屏幕不必一次又一次地重绘.
缩放通常意味着改变视点或渲染分辨率,因此需要完全重绘.
我也对其他解决方案持开放态度.谢谢.
您应该优化绘图代码.关键字是: