我想用漂亮的图形做一个相当简单的游戏。
我已经完成了几个用于创建opengl示例的教程。我理解核心对象是点和三角形。我也了解贴图纹理和应用光照。我必须遗漏一些概念性的东西。
让我们举一个例子 - 一辆简单的汽车。我需要从3D的各个角度看车。这意味着我在数学上必须用3D构建汽车?我真的必须创建并存储数千个代表其整个表面的三角形?然后,我会为这些三角形添加颜色/纹理吗?
如果我想通过公园动画导航 - 树木,路径,其他人......即使我只是将每种独特类型的物体建模一次,这可能需要数年时间?!
商业游戏开发者使用什么方法?
答案 0 :(得分:2)
有几种方法可以解决这个问题。第一种方法是自己设计所有对象。这就是专业游戏设计公司所做的事情,而且整个部门都致力于此。您可以使用Blender(免费!),Maya,3DS Max,Modo或任意数量的3D建模程序来执行此操作。
第二种方法是对所有这些对象进行程序生成(这实际上更有趣)。程序生成是指程序生成动态所需的每个对象。这使您的磁盘空间使用率降至最低,并完全消除了加载时间。通常,程序生成算法将在单独的线程中运行,以便不损害帧速率。
实际上,你可能想要做两件事:程序性地生成植物和环境,但是对角色和汽车进行建模。
Here是程序生成算法的一个很好的资源。
干杯, 奈德
答案 1 :(得分:1)
这意味着我在数学上必须用3D构建汽车?我真的必须创建并存储数千个代表其整个表面的三角形?然后,我会为这些三角形添加颜色/纹理吗?
确实是这种情况。但是,没有人通过在文件中键入数字来硬编码模型。人们使用3D建模器,如3DS,SoftImage,Blender,Milkshape,Maya等。这些建模器通常都采用三角形网格原理,即它们将模型表示为三角形网格。
如果我想通过公园动画导航 - 树木,路径,其他人......即使我只是将每种独特类型的对象建模一次,
动画通常只是单个网格的动态修改,或者是编辑中单个网格的复合对象(如汽车)的情况。
这可能需要数年时间?!
对于一个人:是的,确实如此。这就是为什么游戏工作室聘请了大量的艺术家,他们在一起工作时,仍然需要几个月到几年才能完成大规模的制作游戏。
在普通游戏工作室中,很可能找到比程序员多10到20倍的艺术家。虽然程序员的工作很复杂,但在整个游戏过程中它都是无处不在的。任何新功能或错误修复通常都会使整个游戏受益。然而,游戏中的大多数艺术品在本地使用,即仅在少数或单个地图中使用。一些艺术品,如非玩家角色动画(步行周期,动作,攻击/防御动画等)可以重复使用,但即使是那些往往是为每个角色个性化以保持多样性。常见的道具也可以重复使用。但总而言之,为游戏制作所有艺术作品是一项非常漫长而乏味的工作。