Cel Shading(Toon Shading,Cartoon Shading)叫卡通渲染(着色),它是一种NPR(非真实感渲染)的技术,旨在使电脑生成的图像呈现出手绘般的效果。
为了使图像可以与漫画或者卡通达到相似的效果,专业人员通常使用卡通渲染着色器进行处理。
卡通渲染是在大约21世纪初期,作为计算机图形学的副产物出现的新技术,并且主要应用于电子游戏中;然而,它可以呈现出如手绘动画一样简洁明了的效果。
在 2D 渲染中,通常通过应用平滑渐变使2D物体看起来像3D对象。相反的,在3D渲染中可以使用 CelShading,使平滑渐变拆解为较为突然的过渡。当与轮廓相结合时,CelShading可以实现卡通渲染的外观。
近年来常用的卡通渲染分为美式卡通风格和日式卡通风格。
美式卡通风格在色彩上比较连续,有渐变色,着色风格很大程度上依赖于艺术家定义的色调(tone),而在阴影和高光方面常常采取夸张和变形的做法,比较典型的是《军团要塞2》,表现为人物造型夸张,但着色连续,接近真实感光照。
日式卡通风格往往角色造型写实,但在着色方面,趋向于大片的纯色色块,有明显的明暗交界。
卡通风格在技术实现上有哪些特征?
描边
不管是美式卡通风格还是日式卡通风格,描边是不可或缺的效果。
卡通渲染的描边可以追溯到赛璐璐动画的手绘制作流程,描边凸显了模型的重要性和层次感,使得画面的主次关系更加清晰,小编认为这跟卡通风格在着色上的凸显重要性,忽略不必要的细节是相对应的。
关于描边技术,大致包含了三类:
基于视角的勾边,这部分的计算依赖于我们的一个直觉观察:当我们的视线和某个表面相切时,这个表面上的像素点往往就是模型的边缘,基于这个观察,我们可以用 来估计一个像素的“边缘程度”,当然,这个值也可以用来作为纹理坐标去采样一张预定义的“轮廓纹理”。
不过,最大的缺点是线宽粗细差别较大,不易控制。
基于几何生成方法的描边,这类方法的特点是描边本身是一个单独的几何体,通过特殊的方法绘制出来。
比较常见的做法是shell method,原理和实现都比较简单:首先在绘制结束正常的模型后,将需要描边的物体改用正面剔除再绘制一遍,在VS中将顶点沿着法线方向膨胀一定距离,然后在FS中将模型用纯色输出。
另外一种叫做z-bias的方法,也是绘制背面,但不膨胀,而是把背面顶点的Z值稍微向前偏移一点点,使得背面的些许部分显示出来形成描边效果。
基于图像处理的描边,这类方法的实现可以说更接近于“边缘”这一概念的本质定义。
什么是“边缘”呢?
边缘就是在深度或者法线上不连续的位置。因此为了获取边缘,我们只需要在图片上找到深度或者法线不连续的位置即可,因此,我们需要将深度信息和法线信息以贴图的形式传入,运用边缘检测算法去寻找这些像素。
这类方法的优点是描边的线宽一致,缺点是需要额外的法线和深度信息,当然,由于近年来流行的延迟渲染框架,法线和深度本来就是G-Buffer的一部分,因此往往不需要额外绘制法线和深度的信息。
基于边缘检测的描边,分别用深度信息和法线信息进行单独的边缘检测,而后合并起来成为最终的描边。
美式卡通往往倾向于使用基于图像处理的描边方法生成均匀一致的描边效果。
日式卡通中往往倾向于使用基于几何体生成的方法去描边,这类描边方法相较于另两类方法的好处在于线宽更容易为美术所控制,而在日式卡通中,往往需要粗细有变化的描边去体现角色不同部位的特征。
例如,在《GUILTY GEAR Xrd》中,角色的描边就是通过几何体生成的方法,结合了shell method和z-bias method,并引入了逐物体的顶点色来控制描边细节,同时也是为了保证描边粗细不会随着摄像机视距发生变化,具体来说,顶点色存储的信息包括:
- R通道:控制toon shading的阈值,和描边无关,和着色有关,这个我们后面描述
- G通道:控制顶点根据视距膨胀的强度(这个部分具体操作我也没有完全弄清楚,希望了解的朋友来补充)
- B通道:控制描边的z-bias,越大则描边越不可见
- A通道:控制描边的粗细
着色
在着色上,最经典的两种NPR着色方法,分别是Cel Shading和Tone Based Shading。
Cel Shading的基本思想是把色彩从多色阶降到低色阶,减少色阶的丰富程度,从而实现类似手工着色的效果。
不同于Cel Shading,Tone Based Shading的风格化是基于美术指定的色调插值,并且插值得到的色阶是连续的。它首先需要由美术指定冷色调和暖色调,而最终模型的着色将根据法线和光照方向的夹角,在这两个色调的基础上进行插值。
如果想将卡通渲染应用到实践中,还需要根据具体的美术风格进行特定的组合,结合对应的细分技术,实现最终的效果。
除了卡通风格,类似钢笔、素描、水彩画、水墨画等艺术风格也属于非真实感渲染(NPR渲染)的流派范畴。
如何学习NPR渲染技术?需要掌握哪些知识点?
对于大部分美术从业人员来说,学习卡通渲染并非易事。
风格化的渲染离不开自定义的着色器开发,也就是需要写Shader,而对游戏开发者而言,着色器更是游戏开发中的重要部分。
优秀的着色器可以创造非常精美的游戏画面,同时保证极高的性能,这也导致会Shader的设计师们薪酬日渐上涨,令很多行内人士艳羡不已。
学习NPR渲染技术需要掌握:
基础知识:学习Shader需要了解一些图形学基础知识,比如顶点、像素、矩阵变换等。虽然可以从简单的效果开始,但对于高级效果而言,图形学知识至关重要。
开发工具:不同平台有不同的Shader开发工具。比如在Unity中可以使用Shader Graph、在Unreal中可以使用Material Editor、在Cocos中可以直接编写GLSL代码。选择一个适合自己的平台进行学习,可以事半功倍。
ASE材质节点编辑器:了解ASE材质节点编辑器的界面基本内容及操作,为日式卡通材质的制作打好基础。掌握ASE输出节点,讲师会教导大家如何通过调整材质节点、让建模更加真实。
卡通材质制作:利用ASE制作卡通材质,通过节点材质的编辑,了解日式卡通材质的制作流程,制作卡通材质外描边outline,同时快速梳理卡通材质的制作逻辑。
贴图绘制渲染:利用PS、C4D制作卡渲贴图,了解贴图的制作和用处。掌握阴影贴图以及处理结构线的绘制,明白光照贴图绘制的要点难点,了解对smooth平滑效果和边缘光优化的实际应用。
本文转自:字符无限科技,转载此文目的在于传递更多信息,版权归原作者所有。如不支持转载,请联系小编demi@eetrend.com删除。