破解|破解技术难题,Unity官方性能优化和企业服务是如何工作的?( 五 )


这里是我们UPR相关资源的链接,可以查看相关的文档或者是相关的工具。
破解|破解技术难题,Unity官方性能优化和企业服务是如何工作的?
文章插图
目前我们UPR支持的主要方式是QQ群,大家感兴趣是可以扫描这个二维码加入到我们群里做一些问题的咨询,我们有官方的技术人员在里面提供问题的解读。
破解|破解技术难题,Unity官方性能优化和企业服务是如何工作的?
文章插图
最后再介绍一下我们技术支持团队现在在国内提供的服务的内容。现在我们在国内提供的技术支持主要覆盖了三方面的内容。
破解|破解技术难题,Unity官方性能优化和企业服务是如何工作的?
文章插图
过去我们是比较基础地提供一些技术支持、问题解答、bug修复等等,最近这几年国内开发者开发的游戏越来越复杂,会有更加深度的需求,我们现在已经开始提供了引擎定制的服务,如果现有引擎里面有一些功能不能满足你们的需要,我们官方可以提供引擎的定制,开发为你们专门定制的引擎版本,来帮助你们实现你们想要的功能。
另外,我们也有技术美术的团队来提供技术美术方面的支持。这部分我们接下来会有技术美术团队的负责人来介绍技术美术服务的内容,我这里就不详细地介绍。
破解|破解技术难题,Unity官方性能优化和企业服务是如何工作的?
文章插图
我先简单介绍几个我们已经定制方案的案例。首先我会介绍一下开放世界的解决方案,后面会介绍一个分布式开发流程加速的方案。我们也会提供类似于卡通渲染的整体的解决方案或者是其他你们需要的功能,我们也是可以根据你的需要进行定制开发。
首先,这是我们开发中的一个开放世界的demo,现在可以看一下这个视频。这个世界大概现在是有4×4公里的面积,里面会有大量的山川、树木、草,各种元素在里面。过去在Unity的老版本里面如果我们要做这么大的开放世界,经常会遇到很多问题。其中一个问题就是LOD的问题,过去Unity里面自带的LOD的最大的问题会导致每个对象、每一级的LOD的mesh都会加载到内存里面,它没有streaming的过程,就会导致你整个场景内存消耗非常大,我们在开放世界方案里面提供了一个streaming的方案,一会儿会介绍。
另外,在开发一个开放世界的游戏还遇到植被的问题,因为它里面有大量的植被。在过去Unity的引擎里面渲染大量的植被会发现相机的裁减剔除、LOD的计算上会花大量的时间。
我们开放世界解决方案主要包括了几个方面的内容,首先我们开发了一个HLOD的系统,是一个分层级的LOD。过去的LOD是针对每一个对象来使用的LOD系统。HLOD是针对整个场景进行了四叉树的切分,切分之后,我们会把低级别的模型进行预先地合并,切成很多块之后,每一块之内低级别的LOD模型会合并成一个mesh,这样离得比较远的时候可以通过一个drawcall就把很多物体渲染出来。
破解|破解技术难题,Unity官方性能优化和企业服务是如何工作的?
文章插图
HLOD还解决了一个问题就是streaming,我们可以解决角色在行走的时候动态地判断我当前渲染的高级别的LOD mesh把它加载进来,远处只加载低级别的LOD,这样的话可以动态地加载、卸载,来减少整体的内存消耗。
我们这个方案里面也提供了体素化ShadowMap这种阴影的解决方案,主要是面向开放世界是可以做到几公里范围内都有阴影的效果,过去如果是用CSM的ShadowMap,如果是做几百米,很多硬件性能上就已经吃不消了。
另外,刚才提到了对大量植被的渲染我们主要提供了GPU的加速方案。我们会通过Computer Shader来优化这个相机的剔除操作以及LOD的计算。
分布式方案主要解决了一个问题,现在大家用Unity开发重度游戏越来越多,经常遇到一个问题,一台电脑需要打开一个新的工程的时候会有一个非常漫长的导入的阶段,现在我们提供了一个方案可以用十几台或者是二十几台电脑并行地导入你的游戏工程,过去可能需要导入10个小时才能完成的工程,现在我们使用十几台电脑有可能一个小时就能导入完成。
破解|破解技术难题,Unity官方性能优化和企业服务是如何工作的?
文章插图
另外,过去开发过程中还有几个非常耗时的阶段,包括Asset Bundle打包,IL2Cpp代码的编译等等的都非常耗时,我们分别把这些阶段都做成了分布式的加速方案,通过很多台电脑进行并行地处理,来减少处理的时间。
刚才介绍了我们解决方案的内容,再接下来介绍我们常规技术服务支持的内容。
破解|破解技术难题,Unity官方性能优化和企业服务是如何工作的?