美文网首页
卡通渲染

卡通渲染

作者: ayasechihaya | 来源:发表于2019-08-07 11:33 被阅读0次

    卡通渲染

    卡通渲染也叫做Toon-Shading或Cel-Shading,属于非真实感渲染(Non-PhotorealisticRender)的一种。

    卡通风格是游戏中很常见的一种渲染风格,使用这种风格的游戏画面有一些比较明显的共同特征,比如明显的描边线条,分明的明暗变化,简单的大色块等。

    卡通渲染不同于真实感渲染,它不追求真实。

    卡通渲染就是使模型呈现卡通风格的一些渲染方法。

    它区别于普通渲染的主要有以下两点:

    1、光照模型

    在一般渲染中使用的大多是模拟真实世界中的光照的模型,比如使用简单的数学公式来模拟的几种常见经验模型:

    1)能够较好表现粗糙表面的漫反射Lambert光照模型。

    2)能够较好表现金属材质的镜面反射Phong光照模型。

    3)融合了前两种模型优点的Blinn-Phong光照模型,它也是最为广泛使用的光照模型,是很多CG软件默认的光照渲染方法,因此也被称为标准光照模型。更加高级的还有基于物理的光照模型。它们都是尽力使得渲染结果更加贴近现实。

    在卡通渲染中,不能再直接使用以上光照模型,为了使渲染结果能够呈现卡通效果,通常需要对光照模型进行一些处理,来得到离散的明暗区域效果。

    例如,卡通风格的高光往往是模型上的一块快分界明显的纯色区域,以标准光照模型为例,在标准光照模型中,使用法线点乘光照方向以及视角方向来得到高光反射系数,于卡通渲染来说,可以同样适用这种方式来得到高光反射系数,但不同的是,需要把该值与一个阙值相比较,比如如果小于该阙值,则高光反射系数为0,反之为1。而且,卡通渲染中高光往往有很多个性化的需求,比如可以伸缩、可以方块化等等。

    2、轮廓线

    轮廓线的提取是卡通渲染很重要的部分。有许多绘制模型轮廓的方法。它们可以分为以下类型:

    1)简单快速,使用视角方向和表面法线点乘结果来得到轮廓线信息,能够在一个pass中得到渲染结果的,基于观察角度和表面法线的轮廓渲染。

    2)快速有效,使用两个pass先后渲染背面与正面面片,过程式几何轮廓线渲染。

    3)基于图像处理的轮廓线渲染。

    4)基于轮廓边检测的轮廓渲染。

    下面是一个最简单的卡通渲染流程:

    image

    1、使用一个pass把一个模型渲染到一张纹理图上(Render to Texture)。

    2、用第二个pass对这张图进行边缘检测(可使用sobel边缘检测算法),找出边界并把它渲染到屏幕空间中。

    3、为了实现卡通着色,创建一个带强度级别的灰度纹理,来达到卡通绘图中的离散阴影效果。

    4、在顶点着色器中,通过光线方向与法向量的点积来确定顶点接受光线的多少。将结果规范化到[0,1]之间,来在纹理坐标空间中取值。

    Unity-Chan

    Unity-Chan是UnityTechnologies日本团队官方发布的一个开源二次元卡通渲染方案和素材组。

    它也代表Unity娘——对Unity的拟人化,是最初UnityTechnologies Japan为吸引日本地区ACG爱好者使用Unity进行创作而特别设计的角色。

    这里主要来看一下它的Shader部分:

    如图,Unity-Chan的Shader很简单,分为眼睛、头发、衣服(fuku)、皮肤(hada)、面颊(akarami)

    image

    to be continue......

    Unity-Chan2

    这是Unity日本推出的全新的Unity-Chan素材组,相比于一代,它的内容丰富了很多倍。

    它的Shader部分如图,相比于一代庞大了非常多。新增了后处理、曲面细分着色器、针对移动平台的优化等等。

    image

    to be continue......

    相关文章

      网友评论

          本文标题:卡通渲染

          本文链接:https://www.haomeiwen.com/subject/rtxodctx.html