-1

如果我想在我的 SFML 窗口中显示精灵和/或纹理,并在按下键时让它移动,我最好使用 OpenGL 将精灵绘制到屏幕上(如果可能的话,我才刚刚开始研究这个)还是使用 SFML 会更好?

4

2 回答 2

2

这是一个很难回答的问题,因为它取决于各种因素。

什么是 OpenGL 和 SFML?

OpenGL

OpenGL(开放图形库)是一个用于渲染 2D 和 3D 图形的庞大而先进的跨平台 API。API 主要尝试专注于使用 GPU 来实现硬件加速渲染。

SFML

SFML (Simple and Fast Multimedia Library) 是一个可移植且易于使用的 2D 渲染 API。API 运行在 OpenGL 之上,因此 SFML 也是硬件加速的。

编辑: SFML 是一种多媒体、可移植且易于使用的 API,用于各种用途。API由5个不同的控制模块组成——系统、窗口、图形、音频和网络。

OpenGL 或 SFML

首先你需要问自己一些问题。

  • 我有多少经验?
  • 我以前和他们中的任何一个一起工作过吗?
  • ETC...

如果您使用过这两个 API 中的任何一个,您可以简单地选择使用您已经知道的那个。因为将您的知识附加到您已经知道的库中,通常比学习全新的东西容易得多。

如果您不了解 OpenGL 或 SFML,那么选择可能会有点困难,但请记住以下几点。

OpenGL

  • 这需要大量的学习!
  • 您需要处理/创建/使用/了解很多不同的东西,才能简单地使用它。
  • 您需要了解矩阵数学以及欧几里得向量甚至更多知识,才能简单地制作基本程序。

SFML

  • 正如名称Simple and Fast Multimedia Library中所述,它意味着简单!
  • SFML 为您处理了很多事情,这些事情您需要在使用 OpenGL 时自己完成。
  • 无需了解矩阵数学欧几里得向量即可制作基本程序。

结论

  • 如果您知道其中任何一个,请使用您最了解的那个!
  • 如果您还不了解其中任何一个,并且想要一些简单的东西,请从 SMFL 开始。
  • 如果你想要一些先进的东西并学习很多新东西并控制每件小事的处理方式,那就选择 OpenGL。

当您第一次了解 OpenGL 时,它真的很容易。尽管对 OpenGL 中的大部分或全部事物一无所知的过程是困难的并且需要时间!

因此,如果您想从简单的事情开始使用 SFML,因为加载纹理并使用 then 比使用纯 OpenGL 容易得多,因为在 OpenGL 中您需要创建自己的纹理类来处理纹理的加载和创建。在 SFML 中已经有一个纹理类以及加载它们的方式等。

精灵和纹理

于 2013-11-06T06:34:49.837 回答
0

基本上 SFML 使用 OpenGL,SFML 只是访问 OpenGL 实现的一些功能的一种更简单的方法

于 2013-12-24T09:35:08.933 回答