gpt4 book ai didi

c++ - OpenGL 执行非常缓慢

转载 作者:搜寻专家 更新时间:2023-10-31 00:02:42 24 4
gpt4 key购买 nike

在开发游戏时,我正在测试我的渲染器。不幸的是,它仅以每秒约 4 帧的速度运行。分析显示令人惊讶的是,只有 5% 的运行时间属于我的代码,其余 95% 的总运行时间花在了 nvoglnt.dll 上。

虽然只使用了一个 256x256 纹理,除此之外,我在一些相机转换之外使用的唯一 openGL 代码是以下代码模板。对于总共 33554432 个四边形,它仅执行了 134217728 次。

glTexCoord2f(u, v);
glColor3f(r, g, b);
glVertex3f(x, y, z);

我可能做错了什么导致 OpenGL 变得如此缓慢?我可以使用任何常见的性能技术来改进它吗?

最佳答案

正如 datenwolf 所说,134217728 很多次。如果您使用顶点数组,则 3300 万个四边形甚至很多。但现代卡片应该可以很好地处理它。

这里的瓶颈完全是 CPU,您每一帧调用了 1.34 亿 x 3 个函数。由于您以 4FPS 的速度运行。那是每秒 16 亿次函数调用!难怪它运行得这么慢。

您应该做的是使用顶点缓冲区对象。无论您的数据有多不稳定,即使您必须每帧更新它,它也会更快。

顺便说一句,我很好奇为什么您需要渲染 3300 万个易变四边形?如果您能更广泛地概述您正在做的事情,我们可以提出其他优化技术。

关于c++ - OpenGL 执行非常缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7553687/

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