上海 Unite 2019 总结

2019-05-20 12:00:00

第一天

  • 运用 Substance 打造 Unity 次世代材质纹理

    介绍了 PBR 的基础概念,利用 Substance 制作 PRB 贴图的流程,以及一些注意事项。
    例如在 sRGBAlbedo 贴图中,最暗的不应该全黑(低于30-50),最亮的不应该全白(大于240)。
    然后演示了一下 Substance Designer 把一张真实照片转换成可以在引擎中使用的一套 PBR 贴图的过程。

  • Unity 科幻巨作《异教徒》影视级技术大起底

    没有全程听。主要是看了 Unity 官方使用 HDRP 做出来的影视级效果的一个 Demo。具体的实现细节也没有介绍。

  • Unity Tiny Mode 概述

    Unity 官方介绍了 Tiny ModeRoadmap
    了解到一些信息,比如当前版本的 Tiny Mode 只能用 TypeScript 编写脚本逻辑,未来会支持 C#
    Tiny Mode 依赖 ECSJob System,未来使用 Tiny Mode 进行开发的话,会与现在的开发模式大大不同。
    (会后看了一下B站 Unity 官方介绍如何使用 Tiny Mode 开发 H5 游戏的教程,感觉 Tiny Mode 算是寄居在 Unity 内的一种完全不一样的开发方式吧,场景、GameObjectInspector 的使用都完全不一样。)
    Tiny Mode 模块化设计,根据需要添加模块,包体更加可控。Core 52kb,Physics2d 37kb 等等。
    Tiny Mode 的性能也是可伸缩的。

  • Marvelous Designer 动画创作工作流在 Unity HDRP 的实现

    Marvelous Designer 是一个服装设计软件,可以模拟真实的布料效果,并且应用到骨骼动画上。
    原本以为是游戏中的布料效果实现,其实跟游戏没什么关系。

  • 二次元向高品质着色器解决方案:Unity-Chan Toon Shader 2.0 介绍

    https://github.com/unity3d-jp/UnityChanToonShaderVer2_Project
    介绍 UTS2 在之前版本的基础上有哪些新的亮点(日式英语太难听懂了,有点没 follow 上)。
    新版的 UTS2 支持 Point LightSpot Light 这类光源。

  • 《不可思议之梦蝶》从 PC 版移植到 Nintendo Switch 经验分享

    独立游戏开发者介绍把 Unity 项目发布到 Switch 平台的经验。
    首先是接入 Switch 平台要做的一些事情,比如 I/O 需要接入 Switch 的接口,需要注意 https://github.com/unity3d-jp/UnityChanToonShaderVer2_Project 的几种不同使用方式等等。
    还有一些注意事项,比如使用 wwise 等一些第三方库的时候,需要通过邮件和任天堂获取许可;第三方插件的一些设置,比如 wwise 的音频格式会导致发布到 switch 之后运行崩溃。
    然后是项目在开发中的一些提高效率的方法,使用 Cache Server 减少加载时间,使用 Git 分支来做多版本的切换。
    最后是他们做的一些游戏优化,比如包体优化,把不需要生成 mipmaps 的纹理的导入设置修改一下。加载优化,使用 Switch 平台支持硬解的音频格式,减少解压时间。

  • Unity 次世代地形工具介绍

    比较失望的一场,大部分时间是在介绍新的工具怎么使用,比如增加了很多 Brush。没有介绍具体的技术细节。

  • 《网络奇兵 3》运用 HDRP 统一光照模型解析

    演讲逻辑很好,但是内容有点水。总结起来就是他们在用 HDRP 的过程中遇到了一个问题,是一个封闭场景,他们会需要替换地板的材质,一种是全黑的地板,一种是中等灰度的地板,一种是全白的地板。
    然后这三种地板会让一个有同样光源的场景反射出不同的亮度(真实环境下也的确会这样),他们觉得最终效果暗的太暗,亮的太亮,想要解决这个问题。
    然后就是讲他们解决问题的尝试。
    第一种尝试是改光源的 intensity,太亮的场景减到 1/2,太暗的场景加到 2 倍,的确能让场景的亮度达到想要的效果,但是场景中如果有半透明体的物体的话,反射和折射出来的光会不一样。 Pass。
    第二种尝试是加减光源,太亮的地方就减一个光源,太暗的就多放一个光源。其实和改光源的 intensity 没差别,反而性能上去了。Pass。
    第三种尝试是加后处理,他们用了 Eye Adaptation 来控制曝光,能让原本欠曝的场景亮一点,过曝的场景暗一点,但是确点也很明显,就是如果暗的场景只占了一半,另一半是亮度正常的场景的话,正常的部分就会过曝,亮的场景同理,一些部分会欠曝。Pass。
    最后是怎么解决的呢?反正我最后听到这有点无语。讲课的人说他们后来发现 HDRP 有一个 Debug 工具,可以检查场景里的材质贴图是不是有问题,打开这个工具,可以看到红色部分是贴图(颜色)太亮的,蓝色部分是贴图(颜色)太暗的,找到有问题的材质,改一下颜色或者贴图就好了。(其实就是第一场 Substance 的人讲的,Albedo 贴图的颜色范围)

  • Unity 影视级工具链指南

    介绍了很多影视相关的工具,但也只是一句话带过,没有演示,没有细节。

第二天

  • 《使命召唤手游》引擎技术升级与演化

    去年开始使用 PBR 流程重做美术资源。PBR shader 分5级。
    高端机用 HDR RT,低端机在 Tonemapping 之前恢复信息。
    地形包括植被用的 Houdini 生成。
    LightProbe 脚本生成。Lightmap GPU 烘焙。
    Texture AtlasTexture Streaming 减少内存和带宽使用

  • Unity C# Job System 的功能使用

    Unity 的技术支持工程师介绍他是怎么理解和使用 C# Job System 的。
    他有简单提到一些技术细节,比如每个 Job 执行的时候,会把需要使用的数据拷贝一份,Job 执行完成会再拷贝赋值回去,一些常用的引用类型,Unity 都写了一个对应的值类型来做访问,比如 Transform 对应 TrasformAccess。需要用到 NativeArray,意味着会有 unsafe 代码,会有指针操作,对逻辑程序员要求又高了。
    个人觉得 Job System 是在多线程操作上的一个包装,把一些繁琐的细节包装了起来,但实际上还是需要逻辑开发人员清楚的知道哪里会产生性能消耗,如何把逻辑解耦才可以提升性能。不然一味的套用 Job System 可能不会带来太大的性能提升,反而增加了功耗。

  • 游戏架构和云服务的耦合前瞻 —— 匹配对战和连续大世界

    大致介绍了一些在几种情景下的多人联机的优化。比如类似 Moba 的有匹配机制的实时竞技类游戏,可以通过分组的方式,保证每个玩家到服务器的延迟比较平均,而不是每个玩家找离他最近的服务器节点进行游戏。
    另外可以使用动态节点的创建来减少服务器成本。前提是节点的启动时间控制在秒级。
    对于大型的 MMO 项目,如何利用动态平衡来实现无缝大世界。

  • ARM 手游技术亮点荟萃:64 位运算,Vulkan 最佳实践,及 Arm Mobile Studio

    相对来说比较有干货的一场。首先介绍了很多场景来说明升级到 64 位的必要性,比如 ARM 在硬件层做了安全检查,更有效的防止游戏被外挂修改。
    然后是介绍了 ARM 的一个开源的 Vulkan 示范项目。和一些使用 Vulkan 的注意事项。
    比如推荐使用 FIFO 而非 Mailbox 的显示切换方式。使用 Triple buffering 而非 double bufferingPre-rotate 减少性能消耗。LoadStore 的时候可以考虑使用 DONT_CARE 的方式优化性能。

  • Unity + Houdini 程序化工作流程

    使用 Houdini 以及 HoudiniUnity 插件,做了一个关卡,先是在 Unity 里面大概搭建一个场景,然后程式化生成地形和植被还有道路等等,最后美术调整和细化。跟传统的全部美术制作的方式比起来很高效,然后又可以做到程序化生成和人工制作相结合。

  • Unity 的 Asset 管理和序列化

    介绍了 Unity 在把一个资源放到 Assets 目录下之后做了哪些事情,并且大致的讲解了一些文件的内容和意义。
    一个优化点就是,把 shader 中不需要的 pass 删掉,否则即使不消耗性能,也会在运行时内存中产生很多 ShaderLabPass 对象。

  • 如何使用英特尔图形性能分析器提高游戏性能

    讲的是在 PC 平台下怎么使用 GPA 做性能分析。

  • 适用于开放世界的遮挡剔除流式加载

    介绍了新的 OC 系统的新功能和优化点。
    首先本质上 UnityOC 系统还是使用的 Umbra 的方案。可以进行流式加载,减少内存占用,适合大世界的制作。renderershadow caster 的分开 culling,解决影子问题。