UE4虚幻引擎 Cel着色材质教程卡通阴影
作者:汤美Tommy Tran
由于基于物理的渲染,虚幻引擎4的开发非常容易。该软件可近似估算光线与材料的相互作用方式,从而产生逼真的图像。但是,如果要开发具有风格外观的游戏,则需要探索其他技术。
实现风格化外观的一种方法是使用cel着色材质(也称为卡通着色材质)。该技术模仿了卡通和动漫中通常使用的阴影。您可以在诸如Jet Set Radio,《塞尔达传说:风行者》和《地心引力》等游戏中看到此类示例。
在本教程中,您将学习:
创建和使用后处理材料
创建一个cel着色器
将cel着色器隔离到特定的网格
使用查找表控制色带
入门
下载入门项目并解压缩( 提取码: incg)。导航到项目文件夹,然后打开CelShader.uproject。您将看到以下场景:
这是您将要进行阴影处理的字符。在开始之前,您应该知道什么是cel着色材质。
什么是Cel卡通着色材质?
Cel卡通着色是当您使用多个颜色带,而不是连续渐变来渲染某些东西时。
以下是《塞尔达传说:荒野之息》中的 cel着色示例。请注意,只有角色具有cel阴影,而背景却没有(是不是接近卡通动画片黑白灰)。
在此图像中,有三个波段。一种用于阴影,一种用于中间色调,另一种用于高光。
一个常见的误解是,如果某物具有轮廓,则将其阴影化。例如Borderlands。尽管此游戏具有风格化的外观,但未进行 cel着色。您可以在下图中看到它。请注意,角色的阴影不利用颜色带。
即使轮廓不是单元阴影,也通常将它们组合在一起。这有助于使图像看起来像已绘制或着墨。您会在动漫风格的游戏(例如Guilty Gear Xrd和Dragon Ball FighterZ)中看到很多。
学习如何实现cel着色。
Cel着色方法
最常见的方法是比较表面方向(称为法线)和光照方向。通过计算法线和光方向之间的点积,您将获得一个介于-1和1之间的值。
值-1表示表面和光朝向相反的方向。0表示它们彼此垂直。1表示它们朝向相同的方向。
通过对点积进行阈值化,可以创建多个波段。例如,如果点积大于-0.8,则可以分配较深的颜色。如果点积低于-0.8,则指定浅色。这将创建一个两波段cel着色器。
此方法的局限性是其他光源不能影响cel阴影对象。同样,对象不能在cel阴影对象上投射阴影。
要解决此问题,您需要使用其他方法。您无需计算点积,而可以计算表面的照度。然后,您可以在阈值化期间使用该值而不是点积。