卡通渲染的一些思路

思路还在整理

风格化渲染还是使用UnLit不受光的

卡通灯光

暂时使用调整平行光强度为0.1,削弱平行光的影响,增强卡通风格天空盒强度来实现场景卡通打光

动态阴影贴图

阴影分层管理 动态的物体如玩家 自己做动态阴影

  • 将照明通道与几何通道分离。
  • 动态阴影级联提高阴影质量
  • 场景中PBR灯光仅投射阴影 卡通(贴片灯光)灯光和仅阴影灯光单独灯光,区分开来分层

使用许多静态阴影贴图相机不仅仅是出于艺术原因, 而且也是为了提高纹理流的效率。 当我们考虑使用静态阴影贴图时,我们首先考虑的问题之一是内存使用和流式传输故障。 我们通过监控纹理大小并专注于能够有效地在多个帧之间分配流式传输来管理静态阴影贴图纹理流式传输工作负载。因此,我们不能让单个静态阴影贴图纹理太大。 我们的静态阴影贴图放置在它们自己的流式传输级别中,在流式传输级别中,我们通过设置每帧流式传输内存限制来在多个帧之间分配纹理流式传输。

静态阴影贴图

阴影分层管理 场景内静态物体 就烘焙静态阴影

使用体积阴影的原因是正常烘焙的阴影纯黑显示效果不太好

贴画灯光不受阴影

风格化阴影

玩家阴影和我们的一些静态阴影贴图都是用阴影到光的过渡风格绘制的。阴影距离阴影投射物体越远,阴影线就越细,这代表了 2d 卡通风格阴影到光的过渡。

胶囊阴影

非玩家角色使用更具成本效益的胶囊阴影来绘制阴影。胶囊阴影是标准的 UE4 功能。艺术家准备近似于角色网格的胶囊形状,并使用这些形状计算朝向全局光方向的每像素可见性以近似软阴影。它不适用于照片级逼真的游戏,但我们可以摆脱胶囊阴影的斑点外观,因为我们是卡通人物。

角色

脸部比其他部分需要更高的质量。 但是,使用顶点法线阴影实现所需质量存在问题。 第一个问题是使用顶点法线很难创建平滑的曲线。 如右图所示,根据光线的方向,阴影形状可能变得相当混乱。 这是因为几何图形的可分割数量是有限的,而阴影形状受分割方式的影响。

第二个问题是,顶点法线产生的阴影形状很容易因面部运动而破坏。

当骨骼方向因面部运动而改变时,顶点法线的方向也会改变,这会无意中破坏阴影形状。

在这个面部表情极端的场景中,阴影形状会根据光线的方向而变得相当破碎。

第三个问题是艺术家很难做出调整。 艺术家可以调整几何体和顶点法线,但他们很难通过手动调整完全避免问题 1 和 2。 很难直观地了解顶点法线和几何体调整在所有各种光照方向上的结果形状。 即使使用法线贴图代替顶点法线,问题 1 可能会得到解决,但问题 2 和 3 将无法解决。

AO 体积阴影

漫反射全局照明

SSAO

SSR

后处理概要

后期处理卡通着色

体积雾

相机运动模糊

卡通运动模糊

色调图

盛开

使用屏幕空间特效,实现调色高亮等功能

非常适合没有深度的物体 体积雾

还是使用Gbuffer计算world space UV

镜头光晕

抗锯齿

smoothstep(Radius-Width, Radius+Width, Dist) The yellow frame area is 2*width.

为了调整圆形边界锯齿

区域范围内的卡通渲染

好像是为了节省全局的渲染开销和美术更好操作的思路去做箱型范围渲染

分离基于相机视角的后处理,使用Cube类似的空间约束

深度相关时的竖直墙面,就用GBuffer worldDepth 计算