今年是第二次参加UnrealOpenDay活动,收获颇丰,也认识了很多业界大咖。这里稍微详细点的总结一下会议内容和参会心得。
首先是行程:
会议9点签到,9:45正式开始。地点和去年一样还是在宝华万豪酒店,位于上海马戏城地铁站旁边,从火车站到酒店也就半个多小时,很方便。
今年可能是因为会议持续两天,会场变大等原因增加了活动预算,所以既没有衣服也没有午餐(附近有一个商场)。
23号当天有三个会场,24号有两个会场,官方会在会议前几天公布会议流程,由于三个会场同时进行,所以需要自己规划好时间。会议内容如下图,
有几点需要注意一下
中午时间非常紧,吃饭要排队的,建议听完后立刻就去吃饭
有一些演讲可能超时,也许会影响到你的计划
有一些内容对你可能没什么用,另一些看起来没用还可能有意外收获,该换就换
另外会场有一些展台可以去体验游戏(我试玩了失落之魂,感觉还可以),和去年相比最大的变化就是VR游戏基本上都没了。
会议内容总结:这个是我事先规划好的参会行程,稍微有一点调整,下面就我听到的内容简单给大家总结一下。
9:45-10:45 会场A OpenSpeech
全球虚幻开发者截止2018年3月已经到达500万,最近一年虚幻制作出了很多火爆的游戏如堡垒之夜,绝地求生,绝地求生手游等,优秀的独立游戏也越来越多。堡垒之夜很快要实现全平台发布,任何平台的玩家都可以匹配到一起进行游戏,同时Epic会把优化内容添加到引擎里面。除了在游戏领域,UE还广泛应用在汽车展示,建筑行业,航空航天,影视制作(武庚纪,斗罗大陆等动漫),AR(苹果2017发布会展示的The Machines),真实人物模拟渲染(Siren)等。
10:45-11:30 会场B 腾讯Wetest
Wetest是腾讯推出的一个一站式测试平台,提供了包括可视化的性能监测,数据分析,自动采集日志,准确定位单个用户操作信息,机器人模拟运行等功能,个人觉得这些东西对游戏的上线与测试确实非常有用,特别是各个流程都不完善的中小团队,不过价格与实际的使用体验还要亲自测试才行。
11:30-12:00 会场B 影视制作圆桌会议
13:00-13:30 会场A 加勒比海盗手游海洋系统
主要是讲了海洋系统需要考虑的一些方面,并给出了实现与优化策略。这里挑几点说一下,
1.波浪动画 为了避免游戏进行中大量的实时计算,他采用了FFT算法提前将水体的运动轨迹数据计算并保存到贴图里面,然后在运行时读取这些数据,这种方式稍微增加了内存开销。同时参考了刺客信条里面海洋的实现方式对具体细节做了一些优化
2.海洋的光照模型采用GGX舍弃Phong
3.材质方面采用平面反射,细节法线与次表面散射提升画面表现。泡沫使用的是预生成的蒙版图。浅海水底的焦散方式采用Epic GDC2017的Talk:Content-Driven Multipass Rendering inUE4,也是事先计算好数据存储到贴图里面
4.船体与水面交互 在船的周围放上几个球形检测体,通过计算球形体与水面的位置等执行交互逻辑
5.船尾的波纹如何实现 为了表现乘风破浪的效果,他利用粒子系统生成相应的高度图来产生海面的交互起伏
13:30-14:00 会场C PSVR
去的晚了,只听到一部分,他通过修改RHI的API利用PS4专有的硬件加速手段开启了PS4上面的MSAA,提升了清晰度。另外,在渲染上将画面分成了几个区域分别处理,提升了帧率。
14:00-15:30 会场A 堡垒之夜性能优化
主要讲了手游上如何在尽量不影响玩家体验的情况下优化系统,包括声音优化,物理优化,渲染优化,材质大小,资源加载优化等。Epic测试了不同机型的各方面的测试数据,提出来手游优化很艰辛(特别是安卓)。。。
增加了针对手游(各个平台)更为细致的scalability层级划分,可以在不同的平台上更细致的调整特性。简单来说就是在不行的机器上能砍掉就砍掉,砍不掉就想办法砍掉一部分(稍微皮一下)
IOS上,新增了三个Task线程来处理并行动画,粒子模拟,物理,贴图的流式加载,场景查询,渲染裁剪等,另外,还增加了一个Audio线程。对于安卓机型,新增了RHI线程
通过距离,Occlusion裁剪,层级Lod,HLOD,动态阴影等方式减少DrawCall
地形上Lod也做了优化,使远近的LOD面数差距更明显,性能提升效果更明显
15:35-16:05 会场B Incredibuild分布式编译
Incredibuild可以大大提高编译,烘焙,shader的速度,看数据确实很诱人。根据服务器数量,配置等按照时间收费。好像是8台8核机器,一年1000美元?
16:05-16:15 会场C 本地化
我原来以为是分析引擎本地化原理与流程,其实就是简单介绍UE官方文档方面的本地化流程。
16:15-16:45 会场C VR方舟公园性能优化
粒子优化 不在发射器里面加光照组件,少用GPU粒子,使用Unlit着色模型,如果使用DefaultLit着色模型,LightMode选用Volumetric
PerVertex NonDirection
shader 使用Mask材质尽量不用透明材质
设置合适的裁剪距离与LOD,使用Precomputed Visibility来减少硬件遮挡查询的消耗,采用渲染实例化工具来降低渲染批次(可以自己写实例化工具处理植被以外的对象)
光照 尽量使用静态光源,其次是半动态光源,最后再考虑动态光源。动态物件IndirectLightCacheQuality设置为ILCQ Volume。不要勾选摆动植被的CastDynamicShadow选项
阴影 半动态光源下动态物件均使用Per-ObjectShadow绘制阴影会导致动态物件过多的时候半动态光源比动态光源消耗还大,所以尽量减少动态物件的使用。渲染阴影选用LOD级别较低的渲染
后处理 静态、半动态光源,推荐使用的后处理有Distortion,TemporalAA,Tonemapper,Bloom。动态光照相比前面加一个SSAO。
采用NVIDIA的VRWorks优化VR 但VRWorks不支持胶囊体阴影,距离场AO,还有场景边缘不清晰的问题。例外,MS与SPS只适用于Pascal架构的显卡
前向渲染+TAA的效果比较好
Draw线程优化 使用Precomputed Visibility,减少视频播放,减少参与计算动态物件的光源数量
使用VRworks-Single Pass Stereo合并左右眼渲染重复计算的部分
碰撞 不需要事件的对象不要勾选GenerateOverlapevents,减少物理资产碰撞体数量,只需要射线检测的不需要完全开启CollisonEnabled
动画 更新模式选择OnlyTickPose WhenRendered
16:45-17:05 会场B Unreal大地形加载
总结来说就是讲解如何把Unity里面的数据移植到Unreal并做了一下性能对比,发现Unreal性能基本上完胜Unity(吃惊)
之前他们在网上有一篇文章,很详细,参考链接731312
17:15-17:45 会场C Cascaded Interactive Water
腾讯next工作室技术专家分享了自己的一个新的大规模水体交互算法,目前初步测试下来性能非常不错。基本的思路也是采用Lod思想,远处精度低,近处精度高
8:05-18:35 会场B 区块链与游戏
简单讲解了区块链的概念与基本原理,展望了一下区块链在游戏行业的未来。感觉大家热情不是很高,对区块链的认识还是有一定的限制吧
09:45-10:35 会场B 编辑器扩展
讲解非常全面,从菜单栏到工具栏再到配置选项,蓝图节点。基本上你在编辑器上的所有操作都涉及到了,不过内容太多导致很多细节不够,API名称太多也记不过来(不过听说有PPT)。
10:35-11:05 会场B 救赎之路
主美:展示了大量的作品与草稿。总结一句,创作要靠感觉~
制作人:项目立项遇到了游戏体验差时间与资金不足的问题,然后及时中断调整
主程:手动计算锁链动画位置解决原生模拟效果不好的问题,通过CustomMask实现传送门场景的效果。
11:05-11:35 会场A 如何渲染出一个真实的人物角色
Epic的TA ,ZakParrish(非常活泼开朗的一位技美,很羡慕这样的大佬)分享了像Siren这样一个超级真实的人物是怎样用虚幻引擎渲染出来的。(然而水平有限,并没有都跟上)
基本的面部数据是通过扫描得来的,想要得到完美的数据可能需要上百个相机
头部模型4万个左右的三角形,加上头发,嘴,眼睛等细节比较多的部分共8万面左右
法线贴图分为两种,一种是基础法线贴图另一种是细节法线贴贴图
烘焙的贴图有Zbrush Cavity,Spec High Pass,Roughness Regions, Thickness,Spec Low Pass,头皮AO,面部AO,法线
头发使用xgen工具创建。分为四个部分,包括基本的轮廓模型可以飘动的细节模型等,有三张UV贴图。对于真实的角色,面部的模型走向(拓扑结构),发型走向是非常重要的
调整了牙齿与嘴唇的边界过度问题,眼部增加了虹膜阴影
使用cavitymaps增加面部细节。绒毛采用半透明材质,根部是颜色深,头部发亮
这里推荐一篇文章,描述的比较详细,可以结合官方的视频来看
https://zhuanlan.zhihu.com/p/37337230
11:35-12:05 会场A 失落之魂动作表现
刀光 第一种是AnimaTrail粒子(再通过材质系统控制Alpha通道),第二种是Faketrail
打击效果 一个简单的击中效果就由刀光,血雾,碎片等多个特效组成,很多情况要配置后处理实现(Blur)
残影 使用网上的插件GhostMesh,基本原理是在玩家移动的轨迹上创建一个新的Mesh
辅助效果 钝帧Dilation,手柄力反馈
13:00-14:00 会场A 构建高端表现效果的粒子
现场讲解并操作了一个激光枪打到地面上实现灼烧以及周围冷却凝固的效果。
14:00-15:10 会场A 手游大世界(刺激战场)
1. 通过流关卡切换高空与落地时不同的植被模型
2. 将地形数据拆成单独的Level加载,通过地形Lod系数等降低精度,采用镂空简单模型覆盖在真实地形外围来减少DrawCall
3. 不同的level存放不同的lod,根据配置距离加载不同的level进而加载不同的模型Lod
4. 采用离线烘焙减少内存与包体,提升工作效率
5. 阴影优化 包括FarFadeOut,层级间软过度,HardWarePCF提升采样性能,CSM阴影缓存,MoreCSMStable,指令优化,不同材质采样书目调整
6. 抗锯齿 MSAA+AlphaToCoverage
7. 带宽优化 HDR rendertarget选择 RGBA16F或R11G11B10f,IOS下剔除了Stencil
15:10-15:40 会场B 光明记忆
分享了蓝图下Gameplay框架与相关技能的实现
15:40-16:10 会场B 在线开放世界
主要讲述了大世界场景地图的工作流是什么样的
16:10-16:40 会场B 探索VR的无限可能
16:40-18:10 会场A 新的粒子系统Niagara
听到了一点Maya与UE的livelink,可以实现Maya到UE的单向数据传输。
4.20版本会新增粒子系统Niagara,相比Cascade粒子系统多了时间轴编辑与蓝图功能,可以在Niagara内部调整粒子的运动速度与方向等,总结来说就是可以在不用写代码的情况下实现更多酷炫的粒子效果
会议相比去年的另一个进步就是三个会场都有全程的视频录制,官方说之后会放出来。如果有的话,我这里会第一时间更新视频链接。
其实Epic官方的演讲在今年的GDC上面其实都有的,能的朋友直接YouTube上搜索Epic官方就可以了。国内的朋友可以到B站看,内容详细程度与效果可能比现场还好。
GDC2018官方视频
https://www.bilibili.com/video/av21076711/?p=1
https://www.bilibili.com/video/av23907648/?p=1
最后,这次行程最高兴的就是认识了很多牛人,非常感谢 @大钊 组织的聚会!