如何为游戏开发优化3D模型?

2023年 8月 18日 50.7k 0

译者 | 布加迪

审校 | 重楼

在过去的十年中,3D游戏开发变得极易上手。Unity和Unreal Engine之类的引擎让我们在无需大笔预算的情况下更容易开发出漂亮的3D游戏,但这个过程中仍有很多内容需要学习。

为游戏设计和优化3D模型是其中很重要的一个环节,我们将助您一臂之力。下面介绍可以用来为游戏开发优化3D模型的几个关键实践和技术。

3D模型游戏优化:开发实践

虽然您可以用3D设计软件来完成为游戏开发优化3D模型的大部分工作,但游戏引擎也让您有机会更快地开发游戏。这些方法易于实施,如果您已经开始开发游戏,这是个不错的起点。

  • 重用3D模型资产

游戏加载的每个3D模型都有资源成本。这种成本在第二次、第三次或第四次使用模型时不会产生,这为优化游戏提供了绝佳的机会,场景或对象方面不会敷衍了事。

资产重用在电子游戏开发业中非常普遍,这也是在设计复杂关卡和场景时应该始终考虑的问题。Unity之类的引擎提供了一种预制系统,以简化这方面工作。

  • 压缩纹理和优化着色器

纹理就像3D对象外面的皮肤,添加图案及其他视觉特征,使对象看起来更逼真。纹理以图像文件的形式出现,在场景中使用时,每一个文件都需要加载。如果使用压缩过的纹理,就可以释放大量的资源。

除了使用压缩过的纹理外,也有必要确保使用的着色器经过充分优化。大多数游戏引擎都有提供免费和付费着色器的资产商店,从而简化这方面工作。还可以在Unity资产商店上找到已经优化过的免费3D模型,这也适用于其他引擎。

  • 使用静态光照

光照是现代3D游戏中最耗费资源的操作之一。实时计算光的反射非常耗费资源,但是您可以将光照融入到场景中,以解决这个问题。这可以提前准备好场景中的光照,那样玩家就不必等待了。

  • 使用遮挡剔除

Unity和Unreal Engine之类的引擎都有一个叫做遮挡剔除的优化工具。这通过只渲染玩家在场景中可以看到的3D对象来减少资源使用。在玩家的视野之外,对象在玩家观看之前不会出现。这是在大型场景中节省资源使用的一种简单方法。

  • 实施LOD(细节层次)

当您近看电子游戏中的对象时,细节变得越来越重要。但是当您远处观看时,不需要呈现每一个细节,这就是LOD的作用。

当玩家远离时,引擎可以自动从对象的网格中移除多边形,在不影响沉浸感的情况下降低资源开销。

3D模型游戏优化:设计工作流程

设计为电子游戏优化的3D模型比想象中要容易。这个过程主要涉及精简模型,以确保它只有所需的顶点、线和面。有几种方法可以做到这一点。

  • 手动优化几何图形

手动优化简单的几何图形是一种很好的方法,可以让您习惯为电子游戏设计模型。在3D建模软件中,您有两个主要选项来删除面、线和顶点:删除和溶解。

删除一个面会完全去除它,在3D对象中留下开放的空间。删除顶点或线将去除与其相连接的面。溶解去除所选择的面、顶点或线,然后用新的面填充空白,以保持对象的实体性。

当您从3D几何图形中去除多边形时,有几个方面需要注意:

  • 去除隐藏的面:玩家永远不会看到的面不需要加载到游戏中。建筑物的背面、车辆的底部以及地下的几何图形形状通常可以去除。这是手动版本的遮挡贴图。
  • 去除重复/冗余的面:重复的面应该总是被删除,但您也应该寻找不需要的面。比如说,正方形只需要有一个面。如果它有两个三角形面,把它们都溶解掉,用一个面取而代之。
  • 对象合并:加载一个对象总是比加载两三个对象要好。用Blender及其他游戏开发软件合并3D对象很容易,这是降低资源成本的好方法。
  • 自动优化几何图形

手动优化适用于简单的3D模型,但您可能需要使用一些自动化工具来帮助完成此过程。您可以将这些方法结合起来使用,使您的3D模型非常适合电子游戏开发。

重新拓扑:重新拓扑是为对象创建一个新的简化网格的过程。这可以在大多数3D建模工具中自动完成,为您提供面尽可能少的网格。这在Blender中名为Remesh工具,在Maya中名为Retopologize工具,在3DS Max中名为Retopology工具。

附加组件:3D建模工具拥有丰富功能,但它们不可能内置所有功能。许多这些工具有可用于增强其功能的附加组件。这里探讨的是游戏开发优化,AP GameTools for Blender等工具提供了众多的独特功能。

额外软件:除了附加组件外,您还可以找到第三方软件来优化电子游戏开发的3D模型。Simplygon就是一个典例,有很多工具可以让优化过程更容易。

3D模型需要为游戏开发进行多大的优化?

正如您所见,优化3D对象是一个耗时的过程。不过结果是值得的,一旦您编译并运行游戏,就很容易知道做的工作有多么必要。如果需要,可以随时回去进行进一步优化。现在,您只需要学习在哪里为对象找到一些漂亮的纹理。

原文标题:How to Optimize 3D Models for Game Development,作者:SAMUEL L. GARBETT

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论