《Sherman》是由曾荣获艾美奖的《大白的梦》创作团队,使用Unity高清晰渲染管线HDRP制作的实时渲染动画短片。
Unity媒体与娱乐创新团队的光照主管Jean-Philippe Leroux参与制作了一些优秀影视动画项目,包括:《ADAM 2》和《ADAM 3》,以及《大白的梦》。
现今影视动画行业,正在进行着重大变革-实时制作的兴起。实时动画现在不仅仅是一个渲染解决方案,它还革新了整个创作流程。
实时创作引擎最初是用于游戏开发的工具,随着画面质量的提高和技术的不断成熟,如今实时创作引擎已经能够作为创作工具,制作影视级的内容。
那么实时渲染与离线渲染有什么不同呢?我们是如何把大型渲染农场上数小时的处理过程,转变为在几秒内实现的即时反馈和4K画质结果呢?这里没有使用任何魔法,而是许多简化操作、近似处理、优化过程和小技巧结合起来的结果。
我们制作的实时渲染动画短片《Sherman》的目标之一:展示HDRP制作高级实时渲染效果的能力。
本文,Jean-Philippe Leroux将重点介绍如何在Unity实现《Sherman》的实时光照解决方案,并提供实用的建议与技巧。不论你是3D动画专家还是传统光照艺术家,本文都将提供需要的工具,帮助你在Unity中为实时内容创建丰富而细腻的光照效果。
解析《Sherman》
在下图的画面中,光照部分进行了很多处理,我们将详细讲解所有元素是如何结合起来的。在这个镜头中,我们可以梳理出几乎所有Unity光照效果方面的知识,以便你在自己的项目中活学活用。
我们可以把实现该画面的光照效果分为四类,然后分别介绍如何控制这些光照类型。
掌控环境光照
如下图所示,展现了间接漫反射光照即全局光照对画面的影响。
首先,我们定义场景的环境光照。在《Sherman》中,环境光照并不是简单地使用一个环境光来模拟光线散射,而是利用了Unity渐进式光照贴图,将全局光照的结果烘焙到光照贴图中,制作出局部的环境光照。
![bca14f81935a25d5ba0e7619c45a4fd7.png](https://i-blog.csdnimg.cn/blog_migrate/e72951dbb16e32fa00894d15ed4c5e04.jpeg)
光照贴图
我们的项目使用了多场景设置,所有静态场景元素保存在episode_set场景游戏对象。场景光照元素保存在Unity的活动场景episode_set_lighting中。这点非常重要,因为活动场景决定生成的光照数据保存在什么位置。
了解多场景工作流程:
https://docs.unity3d.com/Manual/MultiSceneEditing.html
我们不需要使用001_timeline场景来构建场景光照,因此在制作过程中,我们会卸载该场景。如果仔细观察,我们可以看到名称为ToHide的部分,其中包含一个摄像机和一个太阳定向光的实例。
一些后期处理效果对光照很重要,例如:色调映射和环境遮蔽,但我们需要摄像机来呈现这些效果。在给场景添加光照时,我们使用一个临时的摄像机,而在项目完全加载后,应该只会留下一个摄像机。当烘焙完成后,ToHide调试摄像机和光照会被再次隐藏起来。
对于光照贴图中的任何对象来说,相应的UV不应该发生重叠,每个表面都需要有特定的UV。大部分情况下,我们可以在导入时让Unity自动生成光照贴图UV。
了解更多UV内容:
https://docs.unity3d.com/Manual/LightingGiUvs-GeneratingLightmappingUVs.html
对于复杂的有机对象,最好让美术使用数字内容创作DCC软件来制作UV2。如果想要在光照贴图中不连续的边缘上,实现更加平滑的结果,拼接缝隙是一个简单的方法。
下图为Unity Lighting设置面板。