gpt4 book ai didi

performance - glBitmap问题

转载 作者:行者123 更新时间:2023-12-01 11:08:02 24 4
gpt4 key购买 nike

我正在处理一些使用 glBitmap() 调用来绘制位图图标的工作中的遗留代码。我的问题是,一旦您一次绘制大约 1000 个图标,它就会变得相当慢。它会减慢到大约 1 到 2 秒的刷新率,我想看看我是否可以让它更快。

首先我应该描述一下当前代码是如何工作的。位图图标是 32x32 图像,每个像素一位,预加载到内存中。对于绘制的每个图标,代码执行以下操作:

glNewListglRasterPos2f位图glEndList

然后在显示列表上调用 glCallList()。我知道像这样为每个图标重复调用 glCallList() 可能会非常慢,但是代码中的某些重叠架构使得更改变得非常困难。

有没有其他方法可以在不重新设计整个架构的情况下加快速度?我几乎可以自由支配做那种事情,但我必须能够向管理层证明这是合理的。从 glBitmap() 更改为使用纹理映射四边形之类的东西会更快吗?我可以在单个显示列表中多次调用 glBitmap() 并且只为所有图标调用一次 glCallList() 吗?

我过去做过一些 GL 的工作,但已经有一段时间了。我很生疏,但我可以解决大部分问题。

最佳答案

一路有纹理的四边形。我用它来渲染文本(图表的轴号)并在屏幕上获得了 60 FPS 和数百位数字,带有英特尔集成视频(几年前,所以它是 GMA945 代)。

同样把所有的图标内容放到一个纹理中,调用glTexCoord来选择你想要的部分,这样就避免了切换纹理。

顺便说一句,因为你的图标是单色的(对于灰度也是如此),将它们存储在纹理的 alpha channel 中,然后你可以在输出四边形时选择实际颜色。

关于performance - glBitmap问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3339877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com