【问题标题】:Effort Required to make 3D Game Engine?制作3D游戏引擎需要努力吗?
【发布时间】:2015-08-24 22:22:45
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 你要求一个很大的答案。这个网站是针对一般特定问题的。一些姐妹网站可能更适合理论问题。简短的回答:变化很大。射手?战略?谜?基本部分是:硬件渲染引擎、游戏逻辑模块、用户界面、声音引擎、网络模块(仅限多人游戏)、艺术家服务和编辑器。支持软件变化更大。
  • 好的,我可以接受简短的回答。

标签: game-engine 3d-engine


【解决方案1】:

只专注于 3D 渲染:

二进制空间分区,就像 3D 渲染的许多元素一样,是可选的。在这种情况下,这是一种优化,通过切掉不可见的部分,使计算机可以减少渲染场景的工作量。

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

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

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

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

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

【讨论】:

  • 这就是我想要的。谢谢
猜你喜欢
  • 1970-01-01
  • 2014-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2018-07-02
相关资源
最近更新 更多