glGenTextures速度和内存问题

时间:2009-06-29 00:05:10

标签: memory opengl

我正在学习OpenGL,最近发现了关于glGenTextures的内容。 虽然有几个网站解释了它的作用,但我不禁想知道它在速度,尤其是记忆方面的表现如何。

调用glGenTextures时我应该考虑什么?我应该考虑卸载和重新加载纹理以获得更好的速度吗?标准游戏需要多少纹理?有什么变通方法可以解决内存和速度带来的任何限制?

1 个答案:

答案 0 :(得分:4)

根据manual,glGenTextures仅分配没有“维度”的纹理“名称”(例如ids)。所以你实际上并没有像这样分配纹理内存,与实际的纹理内存分配相比,这里的开销可以忽略不计。

glTexImage实际上会控制每个纹理使用的纹理内存量。您的应用程序对纹理内存的最佳使用将取决于许多因素:包括每帧使用的最大纹理工作集,硬件的可用专用纹理内存以及纹理内存的带宽。

至于你关于典型游戏的问题 - 你在创造什么样的游戏?控制台游戏开始填补蓝光光盘容量(我已经开发了PS3标题,最初没有预测适合蓝光)。这个空间的很大一部分是纹理。另一方面,可下载的网页游戏受到更多限制。

基本上,您需要使用合理的游戏设计并提出估算: 1.游戏使用的总纹理。 2.任何时候使用的最大纹理。

然后,您需要查看目标硬件并决定如何使其完全适合。

这是一个旧游戏开发者文章的链接,可以帮助您入门: http://number-none.com/blow/papers/implementing_a_texture_caching_system.pdf