2
我正在构建一个带有许多小纹理的OpenGL应用程序。我估计在任何时候屏幕上都会有几百个 的纹理。在OpenGL中存储很多小纹理
任何人都可以推荐将所有这些纹理存储在内存中的最佳做法,以避免潜在的性能问题?
我也有兴趣了解OpenGL如何管理纹理。 OpenGL会尝试将它们存储到GPU内存中吗?如果是这样,我可以指望多少GPU内存?如果不是,OpenGL多长时间从应用程序内存传递纹理到GPU,并且在发生这种情况时我应该担心延迟?
我正在使用OpenGL 3.3。我打算只使用现代功能,即没有即时模式的东西。
+1纹理图案。伟大的方法。我希望有足够的教程来实现它。 – Marnix
谢谢!这很好。关于教程:这听起来像纹理图谱与精灵图基本上是相同的想法,关于它有很多可用的资源。问题:我在其他地方看过的书中表明,我通常可以指望至少有256MB的GPU内存,如果我的纹理+几何图形超过这个数值,我的性能就会大打折扣。这听起来是对的吗? – rlkw1024
@Jarrett 256 MB听起来像是一个非常合理的下限,假设你不是针对低端电脑。任何使用过去4年或5年的独立显卡的应该至少有256 MB的VRAM。如果你的目标是更高端的,尽管更新的计算机,你可以依靠至少两倍。即使是配备专用卡的笔记本电脑,现在通常也会有VRAM。 – nonVirtualThunk