SDL 基础知识:纹理与图像

SDL Basics: Textures vs. Images

我正在编写一些代码,使用 SDL2 来显示带有分层移动标记的图像,我想我想使用新的 (?) 2D 硬件加速渲染。据我了解,我必须加载图像并将其转换为纹理——但有什么区别呢?搜索 'image texture 2d sdl' 只会让我得到有关如何加载纹理的教程,我正在寻找更多的背景知识而不是操作方法。

所以,一些问题:

要了解纹理的基础知识,我建议您看一下a simpler library's documentation。此处,术语 pixmap 的使用方式与 SDL 的 texture 相同。本质上,这些已经转换并上传到您的 GPU 内存中,这使得操作速度更快,但处理起来也更复杂。

OpenGL 纹理是另一种野兽,但我们基本上可以说它们是相同的,即显存中的图像。在OpenGL中绑定纹理时,需要将其上传到GPU内存中,有点类似于这种纹理变换。

在 125 个对象上,我认为考虑使用 2D 加速是值得的,尤其是当你必须移动它们时。如果这只是一张静态图片,我想你可以选择常规图片路线。

作为一般规则,我鼓励您尽可能使用 2D 加速(或只是加速,就此而言),即使只是为了电池改进。话虽如此,如果图像是静态的,结果将完全相同,可能只是代码路径略有不同。因此,我想您可以像加载常规图像一样加载静态背景图像而没有任何缺点(请注意,我不是 SDL 专业人员,所以这种混合方法在这里可能行不通,但值得尝试,因为它适用于大多数2D 工具包)。

希望我回答了你所有的问题:)