1

为了理论(和一般理解),

我想在一个适度详尽的列表中了解创建“现代” 3D 游戏引擎必须完成的所有事情(从编码人员的角度来看)

我似乎很难在其他任何地方找到这些信息,所以我认为 Stack overflow 的你们会拥有我所寻求的知识。

就“适度详尽”而言,我的意思是对此类引擎的设计阶段的一般解释,例如二进制空间分区,然后是此类引擎的实际实现以及软件的使用(如果可以解释 BSP 以外的渲染方式)。

我不想制作 3D 引擎,但只需了解制作一个 3D 引擎需要付出多大的努力。

4

1 回答 1

1

仅专注于 3D 渲染:

像 3d 渲染的许多元素一样,二进制空间分区是可选的。在这种情况下,它是一种优化,通过切掉不可见的部分,允许计算机做更少的工作来渲染场景。

从本质上讲,渲染只是一个五个阶段的过程。首先,生成一个三角形列表。接下来,使用矩阵乘法将三角形从 3 空间转换为 2 空间。接下来,用像素和元信息填充三角形。最后,使用元信息对像素进行单独着色。最后,像素被绘制到屏幕上。

这些步骤中的大多数部分或全部由显卡完成,这意味着程序员的工作是告诉显卡执行哪个步骤并提供输入数据。

然而,这个简单的引擎甚至不接近现代引擎。现代引擎将充满优化,如二进制空间分区、网格简化、背景加载和纹理压缩。它们还将充满特殊功能,如阴影、镜子、薄雾和粒子效果。

现代引擎必须能够加载和解释纹理和网格,并且在某些情况下,在运行时变形和修改两者。最常见的示例是在关键帧之间进行插值。

引擎可能需要与游戏逻辑模块交互,以便重用数据进行碰撞检测。碰撞检测是确定子弹是否击中某物的东西,也是使墙壁和地板变得真实的东西。

于 2015-08-24T14:15:36.130 回答