season|使用虚幻引擎为《Season》打造卡通渲染效果( 二 )


首先要选择反射率 , 也就是画家所说的每种材质的局部颜色 , 然后选择与各类物体关联的阴影色调 。 着色器会自动取得阴影色调的颜色与反射率的颜色 , 并计算出最终的阴影颜色 。 接下来 , 虚幻引擎会根据光线的入射角判断 , 是选择阴影颜色还是反射率 。
着色器会使用颜色和阴影的错觉来重现插画作品的深度和纹理 。 用Mohannad的话来说 , 通过创建这样的着色器 , 在“让美术师控制”和“让引擎完成大部分工作”这两种选择之间找到了平衡点 。 使用虚幻引擎 , 美术师可以简单地公开特定参数 , 通过对参数的修改来控制最终结果 。 在材质节点编辑器中 , 一切都是可单独编辑的 , 如此一来 , 团队就能够制作并完善主材质 , 并将它们连接至自定义工具了 。

但这种美术设计也让团队遇到了一个技术问题 。 如果一切都可单独编辑 , 就很难使用全局光照统一各个区域 。 因为每个物体都具有特定的阴影色调颜色和反射率颜色 , 它可以包含一个纹理颜色 , 这使得在不同的光照场景下 , 整个纹理很难有一致的阴影颜色 。 这就是说如果游戏中的天色发生改变 , 我们必须单独编辑所有这些物体 , 才能反映出变化 。 如果清晨的金色阳光洒在游戏中的所有物体上 , 需要逐个更改它们 , 才能反射正午清爽的蓝色光线 。 这让团队得到了一个美丽的静态场景 , 物体展示着各不相同的外观 , 但它们不能有不同的颜色或对比度 。
因此团队修改了美术设计 , 创建更容易建模的场景 , 展现物换星移 , 能够在高地和生物群区等位置间轮换 。 这迫使我们重新拾起虚幻引擎的PBR模型 , 但还需要对其做一些调整 。 如此一来 , 团队就能接收到基于入射光线的“真实”照明 , 这意味着光线将始终来自于某个自然光源 , 例如天空或闪烁的烛火 。 获得这种光照之后 , 团队会确定亮度阈值或入射角阈值 , 根据光源颜色计算每个图像像素的阴影颜色 。
卡通着色器专门用于改变材质中的颜色 , 而全新的美术设计则专注于使用光照的变化营造更美丽的场景 。 例如 , 如果想在场景中提升对比度 , 可以增强直射的阳光 , 移除天空中柔和的光照 , 从而形成一股来自太阳的直射强光 。 如果想进一步控制对比度 , 可以使用后期处理工具 。
新制定的光照决策引出了一项新特色:转向使用天空球体的静态光照 。 天空光照与光源类似 , 根据来自天空的光线 , 使整个场景的卡通渲染保持一致 。 天空光照产生的光线和阴影颜色将投射在场景中的所有物体上 。 此外团队还有一些设置项 , 可为天空设定一种基调 , 为场景的整体氛围添加一种色调 。 例如 , 在安全而熟悉的地方 , 天空光照将为所有资产投下暖色调的光线 。
现在 , 所有的光照都包含了接近于次表面散射的效果 , 光线将被物体吸收或反射 , 营造光线发散的效果 。 想想在晴朗的夏日 , 光线透过树叶 , 被绿叶吸收 , 使它们显得更加闪耀 。 另一个例子是 , 白色路面上的阳光反射进你的眼中 , 眩光让人分不清方向 , 但感觉温暖 。 光照着色器是能量恒定的 , 这意味着 , 无论我们向场景中添加多少光线 , 它始终会保持一致 。 而如果为同一物体添加两处光源 , 它的亮度就会变成两倍 。 这些写实的瞬间激发了《Season》中光照设计的改变 , 创造出玩家更熟悉的世界 。
Look Dev Manager
另一个障碍是 , 当团队得到着色器并开始构建材质和各种自定义工具时 , 这些工具不够自动化 , 缺乏易用性 。 着色器最初就有许多可用的功能 , 但它们全都散布在多个关卡中 , 需要手动执行 。

相关经验推荐