tim*_*woj 3 opengl performance
我正在处理一些代码中的遗留代码,使用glBitmap()调用来绘制位图图标.我的问题是,一旦你同时绘制了大约1000个图标,它会相当慢.它减慢到大约1到2秒的刷新率,我想看看我是否可以让它更快.
首先,我应该描述当前代码的工作原理.位图图标是32x32图像,每像素一位,预先加载到内存中.对于每个正在绘制的图标,代码执行:
glNewList glRasterPos2f glBitmap glEndList
然后在显示列表上调用glCallList().我知道为每个图标重复调用glCallList()可能会非常慢,但是代码中的一些重叠架构会使更改非常困难.
有没有其他方法可以加快速度,而无需重新构建整个事物?我几乎可以自由地做这种事情,但我必须能够为管理辩护.从glBitmap()更改为使用纹理映射的四边形会更快吗?我可以在单个显示列表中多次调用glBitmap(),只需为所有图标调用glCallList()一次吗?
我过去做过一些GL的东西,但已经有一段时间了.我很生气,但我可以把大部分都弄清楚.
纹理四边形一路.我使用它来渲染文本(图表的轴编号)并在屏幕上获得60 FPS和几百位数字,使用英特尔集成视频(几年前,所以它是GMA945代).
将所有图标内容也放入单个纹理中,只需调用glTexCoord来选择所需的部分,然后避免切换纹理.
顺便说一句,因为你的图标是单色的(并且对于灰度级),将它们存储在纹理的alpha通道中,然后你可以在输出四边形时选择实际的颜色.
| 归档时间: |
|
| 查看次数: |
1124 次 |
| 最近记录: |