4

正如标题所说,我想编写一个 3d 游戏(可能是 BattleZone 克隆),但不使用 OpenGL、DirectX 等 API。问题的核心是,我只想学习如何在屏幕上绘制基本的 3d 形状并对其进行操作。不要在意它是否看起来像垃圾。我以前使用 OpenGL 来实现类似的目的,但真的没有了解这些主题。

问题是,我不知道从哪里开始。我下载了 Doom 源代码,但这有点超出我的想象。虽然我已经编程了一点,但图形问题远远超出了我的深度。

如果有人能提供链接或代码(任何语言),我将非常感激,这将帮助我实现我的目标。

4

2 回答 2

5

听起来是一个令人兴奋的项目。我在 90 年代后期做过类似的事情。在 OpenGL 和 DirectX 流行之前,有大量关于这个主题的好书。

从根本上说,你必须学习如何

  • 表示 3D 几何
  • 变换几何体(平移和旋转)
  • 将该几何图形投影到 2D 屏幕上。

这些主要主题中的每一个都有许多子主题(例如,复杂的对象可以由许多多边形构成。您可能希望将多边形限制为仅由三角形构成,或支持其他多边形。您可能希望加载通用模型格式,例如 .obj 文件,以便您可以使用现成的工具创建模型)。

这些主题过于广泛,无法在此处详细回答。整本书都是关于这个主题的,包括

3D 游戏编程的黑色艺术(书籍,令人惊讶的是仍然可用)

有关一般主题的良好介绍,请查看:

http://en.wikipedia.org/wiki/3D_projection

http://en.wikipedia.org/wiki/Orthographic_projection

http://en.wikipedia.org/wiki/Transformation_matrix#Perspective_projection

您已经看过的 Doom 使用了一种称为高度场渲染的特殊优化,并且不允许渲染任意 3D 形状(例如,您不会在 Doom 中找到可以在其下行走的桥)。

于 2012-06-11T20:31:28.660 回答
2

我有第二版的计算机图形学:C 中的原理和实践,它使用 SRGP(简单光栅图形编程)和 SIGGRAPH,它是一个环绕 SRGP,如果您查找有关图形研究的文章和论文,您会看到两者这些库被大量使用,它们比你提到的 API 更直接和低级。我很难找到它们,所以如果你找到了,请给一个链接。请注意,第三版是 WPF 中的,所以我不能保证它的实用性,我不知道第二版是否还在印刷,但我找到了很多关于这本书的参考,它有它自己的页面在维基百科中

另一个解决方案是 Win32 API,它在渲染方面也没有提供太多,但是在窗口上绘制点和线是微不足道的。我已经写了一些关于它的教程,但我没有涉及绘制像素和线条,所以它们只有在你对设置窗口的基础知识有困难时才有用。请注意,它不适用于实时渲染,因此它可能会变慢。

最后,您可以查看 X11 编程,这是大多数带有 GUI 的现代操作系统的基础。我还没有找到适用于 Windows 的库,但我也没有在它上面投入太多时间。我知道它通常可用于 CIGWIN 和 Linux,而且我相信查看图形的核心会非常有趣,因为您已经在 3D 图形的底层查看。

于 2015-06-03T10:57:38.647 回答