内容简介:【博物纳新】是UWA旨在为开发者推荐新颖、易用、有趣的开源项目,帮助大家在项目研发之余发现世界上的热门项目、前沿技术或者令人惊叹的视觉效果,并探索将其应用到自己项目的可行性。很多时候,我们并不知道自己想要什么,直到某一天我们遇到了它。更多精彩内容请关注:lab.uwa4d.comFPS Sample是Unity技术团队做的第一人称联机射击游戏工程,由6人团队完成。它包含了完整的代码和资源,是对Unity新特性的非常好的应用示例,这些新特性主要包括高清晰渲染管线(HDRP)、新的网络传输层和实体组件系统(EC
【博物纳新】是UWA旨在为开发者推荐新颖、易用、有趣的开源项目,帮助大家在项目研发之余发现世界上的热门项目、前沿技术或者令人惊叹的视觉效果,并探索将其应用到自己项目的可行性。很多时候,我们并不知道自己想要什么,直到某一天我们遇到了它。
更多精彩内容请关注:lab.uwa4d.com
导读
FPS Sample是Unity技术团队做的第一人称联机射击游戏工程,由6人团队完成。它包含了完整的代码和资源,是对Unity新特性的非常好的应用示例,这些新特性主要包括高清晰渲染管线(HDRP)、新的网络传输层和实体组件系统(ECS)。本文将简单介绍FPS Sample项目、项目对HDRP的运用以及项目的性能检测。
项目介绍
FPS Sample的完整工程目前可以在Github上下载,项目工程约36GB,注意要使用Git LFS才能下载到完整资源。项目中包含了1个主要场景、2个角色、4件武器的完整资源,可以进行最多16个玩家的多人射击游戏,可选死亡竞赛模式和突围模式。
目前项目工程使用的Unity版本是2018.3 beta 12,支持的构建平台为Windows (客户端&服务端) 和Linux (服务端)。
画面效果:
FPS Sample一经发布,其高质量的画面效果就惊艳了游戏圈,以下为游戏的部分画面截图:
FPS Sample使用了Unity 2018推出的可编程渲染管线(SRP)中专注于高端图形渲染的高清晰渲染管线(HDRP),与之对应的是专注于性能的轻量级渲染管线(LWRP)。HDRP是一个基于物理的渲染管线,在FPS Sample中运用到了许多HDRP中的新功能,以实现更好的画面效果。
1.次表面散射(SSS)
次表面散射可以模拟光穿透半透明物体的效果。它也常用于渲染皮肤。在FPS Sample中,会看到如下图中水果质感的植物,在高折射率的表面,可以看到很多镜面反射的效果,而在低折射率的面上几乎看不到这样的效果。
次表面反射开启和未开启的渲染效果对比
2.体积设置(Volume Settings)
体积设置允许可视化修改环境设置并调整如天空、阴影、雾等效果,创建自定义的体积设置并在场景中进行切换,以实现HDRP场景中的不同视觉外观。比如在进入一个较暗的洞穴时,可能需要调整HD阴影设置以降低太阳级联距离,并增加全局体积雾密度。
3.贴花(Decal)
Enable Decal是HDRP的材质新开启的一个参数,在项目中,可以用于制作材质表面的细节,比如墙上的铁锈痕迹。
用贴花表现墙面的斑驳
4.物理光单位系统(PLU)
物理光单位系统-Physical Light Units(PLU)意味着光照单位是基于真实的可测量数值,它可以达到较高的保真度。通常来说将LUX用作定向光(Directional Light)的单位,因为在真实世界中,LUX用于测量太阳光的强度。其它真实世界光源使用 Lumen 来测量光强度,它可用作场景里小型光发射器的参考单位。
在FPS Sample中,Directional light的强度被设定为2000 lux。
5.HDRP的新灯光类型的运用
在HDRP中,光照系统进行了很多改进,其中包括新增的矩形区域光源、允许光线以直线发射的线性光功能等。
线性光的应用
性能测试
我们使用UWA线上性能测评服务和UWA GOT Online对该项目进行了性能测试,得到了具体的运行数据,以供开发者参考。使用的测试环境如下:
测试设备A:
系统: Win10
内存: 16G
CPU: Intel(R) Core(TM) i7-6700HQ CPU @2.6GHz
GPU: NVIDIA GeForce GTX 1070
测试设备B:
系统: Win10
内存: 16G
CPU: Intel(R) Core(TM) i7-4720HQ CPU @2.6GHz
GPU: NVIDIA GeForce GTX 960M
测试场景:Level_01
分辨率:1920x1080
画质效果:Ultra & TAA
一、性能总览
1. 总体性能趋势
在特效全开的情况下,项目在设备A上可以跑到FPS均值36帧,而设备B上只能跑到均值19帧,且在运行过程中会有明显卡顿感,两次测试的FPS数据对比如下:
2. 渲染模块分析
上面已经提到FPS Sample使用了HDRP,因此我们在性能报告中,会特别关注渲染模块的耗时。究竟新的渲染管线在性能表现上,和传统的Built-in渲染管线有什么区别呢?
在CPU时间占用中,可以发现我们熟悉的Camera.Render不见了,取而代之的是RenderPipelineManager.DoRenderLoop_Internal这个方法,这里可以看到具体的裁剪、后处理、灯光效果、阴影等各个渲染模块的耗时情况。
同样,我们对比了在两个测试平台上的渲染耗时,可以看到在测试B中,由于渲染线程和GPU压力过大,WaitForPresent这一项非常高,比测试A的均值高了将近18ms,RenderPipelineManager的耗时也高了1.68ms。
3.逻辑代码分析
在FPS Sample中,主要的逻辑代码是Game.Update和Game.LateUpdate。两个方法在两次测试中的CPU耗时均值如下:
两次测试中,逻辑代码的耗时差距不大。查看Game.Update的耗时曲线和堆栈信息,可以看到有许多尖刺状的峰值,具体查看之后发现是由GC.Collect导致的。
其他如动画、物理等模块的CPU耗时比较常规,这里就不再多做分析了。之后我们会把这个项目的性能测试报告放到UWA官网上作为示例项目展示,感兴趣的朋友可以多关注一下。
快用 UWA Lab合辑 Mark好项目!
今天的推荐就到这儿啦,或者它可直接使用,或者它需要您的润色,或者它启发了您的思路......
请不要吝啬您的 点赞和转发 ,让我们知道我们在做对的事。当然如果您可以留言给出宝贵的意见,我们会越做越好。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 战争迷雾开源库测评
- Impostor Baker开源库测评
- Unity网格变形开源库测评
- 【博物纳新】2D破碎效果开源库测评
- Procedural Landmass Generation开源库测评
- 【博物纳新】水面涟漪反射效果开源库测评
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。