Unity 开放日 - 厦门分享总结

Road Map:Unity 接下来的开发方向展望

  • 动态场景实时 GI(Global illumination 全局光照):包括光线二次弹射方案,实时光线追踪方案。

  • 开放世界解决方案:GI,体素阴影,indirect draw 大量加速

  • 虚拟纹理(Virtual Texture):将原本一张高精度文理分割成为多个小块,每次内存只保留其中一个小块,streaming 加载和卸载。

  • 程序化开放世界地形生成工具

  • UIToolKit: 类似网页的 ui 系统

  • URP: SSAO(屏幕空间环境光遮蔽),light cookie,decal(贴花),point light shadow(点光源阴影,非常耗费性能)

  • 2d Demo:官方资源商店有个免费的 2D Demo,用到了各种最新的 2D 工具

  • 可视化编程工具

  • Savemode

  • 多语言 Package:多语言工具包

Unity 新的渲染技术

Forward+

  • Forward+ 是对传统 Forward Renderer Pipline 在多光源上的一个优化,提前将场景中的物体分组,判断每组受到哪些光照影响,之后每个物体就不必对所有的光源运算。

  • 屏幕分为多个小方格,小方格内的所有物体作为一组,判断这一组受到每个光的影响。这个步骤使用 Compute Shader 计算,计算后的结果存于纹理中,需要写回内存。

  • 苹果手机的 Metal 图形 API 可以将 Compute Shader 的结果不需要写回内存,保留于 GPU 中,一个 pass 就可以预处理完成。

  • Unity 将支持 shader 中的特别写法(hacking hlsl )使用苹果 metal api 功能,

使用 SRP 定制渲染管线

总的目的就是用各种手段优化 URP 流程,使其更加适用于移动端

  • 简化渲染管线流程,使其更加轻量。减少 CPU 与 GPU 数据传输次数和带宽消耗。

  • 修改一些 ShaderLibrary 中的渲染公式

  • 优化后处理效果,减少采样次数。

卡通渲染常用技术

  • 传统光照结果进行离散化,但不能用直接 pbr 结果离散化

  • Rampmap:经验模型计算出光照结果后,通过查表得到最终结果

  • MatCap :提前烘焙光照结果结果到纹理上,通过改变纹理参数来改变光照着色效果,来近似 PBR。

  • SSSTexture(次表面散射模拟贴图): 使用一张单独的贴图来叠加人体此表面散射效果

  • pbr + Toon:使用 mask 区分两个部分。比如衣服部分使用 PBR 着色,人体部分使用卡通着色

  • 卡通描边:基于 Mesh 几何的,使用工具提前对 Mesh 进行法线平滑,法线外扩后的描边比较细腻。

  • 场景描边:场景深度描边,法线描边,或图像只取高频率信息,和 SSAO 算法、效果类似

  • 头发:着色使用低频高频高光叠加,产生漫画质感,动态头发使用 dynamic bone

  • 后处理:卡通渲染后期特殊效果比真实的面数重要,要注重后处理

最后更新于