0

回到过去,我试图从一本游戏编程书籍中学习 C。如果我没记错的话,你的游戏“引擎”要做的第一件事就是切换显示模式以进行渲染。这涉及到切换到 640x480 显示模式(可能是模式 13?)的一些 asm,因此您可以直接在屏幕上绘图。类似的东西。

我的问题是,现代的等价物是什么?我有兴趣编写一个执行类似操作的命令行程序;进入某种光栅模式供我绘制,但是,我不认为我的程序会在 kde、unity、Aqua 等某种窗口管理器下运行。

这会是 OpenGL 可以提供的东西吗(或者 OpenGL 也假设一个窗口管理器)。我提出的程序不是游戏,但理想情况下会从一个基本的清晰屏幕开始,我可以绘制图元(二维线、圆矩形等)

干杯!

4

1 回答 1

1

现代操作系统不像过去那样让程序员可以方便地访问低级图形例程。部分原因是由于 GPU 的出现,这使得使用图形硬件成为比只有 CPU 更大的挑战。另一个原因是随着窗口管理器变得越来越复杂,每个操作系统为程序员提供的图形沙箱越来越受到限制。

话虽如此,OpenGL 绝对值得一看。它是跨平台的、多功能的,并且可以自动利用任何可用的硬件(包括显卡)。OpenGL 本身并不直接提供对窗口上下文的访问,但您可以使用 OpenGL 实用程序库 (GLUT) 轻松创建它。然而,OpenGL 是非常低级的,您将不得不处理帧缓冲区、刷新和位掩码以及各种低级的废话,如果您以前没有做过这些事情,可能会使 OpenGL 开发成为一场噩梦。

如果我开始一个项目,我可能想要一个更强大的图形环境,提供绘图功能和开箱即用的窗口。SDLSFML都提供低级图形 API,开始时会更友好一些。它们都是在 OpenGL 之上实现的,因此您可以在需要时使用任何 OpenGL 功能,但您不必担心一些更繁琐的细节。

附带说明一下,如今 C 可能不是开始图形编程的最佳语言。如果您想要一个非常简单且每天都变得越来越相关的图形环境,您可能需要查看 Web 必须提供的内容。JavaScript 和 HTML5Canvas 为绘制图元、图像等提供了一个非常简单的界面。

于 2015-01-15T03:40:40.457 回答