OpenGL渲染了很多精灵:堆栈还是堆?

时间:2016-08-16 17:40:34

标签: c++ performance opengl stack heap

我一直在观看TheCherno在YouTube上的一个系列节目,他在节目中展示了自己在C ++中开发的游戏引擎。我一直在跟踪并复制代码,同时他解释了它的作用。无论如何,他到了一个点,他想在屏幕上渲染一堆矩形,它看起来像这样(我删除了照明顺便说一句):

enter image description here

在视频中,他编写了类似下面的代码来生成正方形:

std::vector<Renderable2D*> sprites;

for (float x = 0.0f; x < 16.0f; x += 0.1f) {
    for (float y = 0.0f; y < 9.0f; y += 0.1f) {
        sprites.push_back(new Sprite(position, size, color));
    }
}

所以每个方块都在堆上分配(我想他忘了删除所有内容!)。这是我尝试过的,它也是如此:

std::vector<Renderable2D> sprites;

for (float x = 0.0f; x < 16.0f; x += 0.1f) {
    for (float y = 0.0f; y < 9.0f; y += 0.1f) {
        sprites.push_back(Sprite(position, size, color));
    }
}

那他为什么要在堆上分配每个方块呢?这对性能有好处吗?如果是这样,我没有发现任何性能差异。两种方式都非常顺利。

0 个答案:

没有答案
相关问题