卡通|Unity引擎带来真实的卡通渲染( 二 )
卡通渲染的风格表现力越来越广 , 对于卡通渲染来说 , 不像 PBR 那样有标准流程和衡量准则 , 卡通渲染很大程度上会依赖于美术方面的造型和色彩 , 所以美术风格的处理在卡通宣传中是比较重要的 。
另外卡通渲染是人们主观审美与现实环境抽象的结合 , 不同人对卡通渲染概念理解不同 , 这就产生了各式各样的制作流程 , 不过还是有一定固定思路在其中的 。 我们来看一下游戏开发者们为了好看的卡通渲染画面都做了哪些努力?
首先列一下概念 , 卡通渲染常见的有两个名称 , 就是Cel Shading 和 Toon Shading , Cel 是赛璐璐 celluloid 的缩写 , 而 Toon 就是 cartoon 的简写 。 最简单的我们只需要阴影、描边和高光 , 就可以组合成具有卡通感的画面 。
不过就像刚刚所说的 , 这些并不是必须的 。 随着卡通渲染的发展 , 卡通渲染这个概念在逐渐的泛化 , 在美术上有对应的形态和色彩表现 , 就可以有卡通风格的感觉了 。
关于卡通渲染的基础表现 , 下面先来快速过一遍卡通宣传的基本技巧 。
卡通渲染第一步就是修改光照模型 , 对 NDotL 计算兰伯特光照进行修改 , 常见的有使用 Step 函数 , RampMap 贴图的方式 。
首先是 Step 阶跃函数 。 单独的 Step 很简单 , 就是给出另外一个 A 值 , 大于该值的为 1 , 小于该值的为 0 , 而 Smoohstep 就是平滑的阶跃函数 , 图中的紫色曲线就是 Smoohstep 的函数图像 , 右边是对应的光照结果 , 在给定的 a 值和 b 值之间会有一段平滑的过渡 , 兰伯特计算结果 , 将兰伯特的计算结果通过 step 重新映射 , 我们就可以控制阴影的边界软硬和位置了 。
然后是 RampMap , ramp 图修改光照的方式和阶跃函数类似 , 将兰伯特光照作为映射值去采用 ramp 图就可以得到对应的风格化光照 。 中间的图就是 ramp 图(又称 LUT 查找表) 。 阴影的软硬和颜色变化可以通过 ramp 图的色彩过渡来实现 。
然后是边缘光 , 这是常见的效果之一 , 动画中的边缘光更偏向软硬两层边缘光混合的情况 。 常见的实现方式主要有两种 , 菲涅尔和深度偏移 , 也有使用边缘检测的方式 , 不过不太常见 。
基础的边缘光可以由法线和视角方向点积获得 , 基于 NDotV , 同时这也是 Shader Graph 中 Fresnel 节点的计算 。
对于深度偏移的边缘光可以获得等宽的硬边缘 。 这对于一些转折比较少的模型 , 比如立方体的支持会更好一点 。 原理就是将模型顶点偏移 , 重新采样深度 , 然后与原模型的深度进行比较 , 深度差大于某一值域 , 那么就是边缘 。 《原神》中的人物边缘的亮边应该就是使用了这种方式 。
明暗交界线是动画中经常会出现的特征 , 这是绘画中常见的处理 。 基于这些特征 , 不少画师会在明暗交界线上做特殊的偏色处理 , 动画中也都有体现 , 在物理的渲染中比较接近这些效果的是 SSS 表面散射 , 这一表现可以看作是对 SSS 的夸张 。
那么对于明暗交界线的计算 , 我们只需要找到明暗交界线区域的亮度范围就可以了 。
如果使用 ramp 图来计算光照 , 就可以直接将交界区域在 ramp 图中画出来 。 另外也可以使用数学的方法 , 比如之前的阶跃函数用两个 Smoohstep , 一正一反相乘 , 就可以求得中间明暗交界的位置 , 然后填充颜色 。 或者也可以使用高斯函数 , 也叫正态分布函数来选中明暗交界线区域过渡的位置 。
最后是描边 , 描边也叫轮廓边 , 早期描边主要的作用是补充动画中色块的细节 , 把转折的结构表现出来 , 所以这个时候描边叫做轮廓边会更合适一点 。 另外轮廓边并不一定是黑色的 , 在动画的场景中轮廓边大多以亮线的高光形态来表示 , 就像右图中的亮线勾边一样 , 人物上则一般是以黑色的轮廓线偏多一点 。
相关经验推荐
- season|使用虚幻引擎为《Season》打造卡通渲染效果
- 卡通|《开心连球球》:消除游戏不止“开心消消乐”!欧美卡通不止“剑与远征”!
- 香港|香港经典卡通人物“麦兜”系列作品即将拍卖
- 无水印|帅气杰尼龟卡通壁纸 高清壁纸无水印
- 插画|一组少女心十足的好看插画,很适合做卡通动漫头像哦!
- 笔下|《鬼灭之刃》全员变卡通风格,蝴蝶忍清新可爱,无惨还是那么可怕
- 系列|【CF】体验服快车:再添新成员,你值得拥有!卡通系列抢先看
- 卡通|动画片展览道具模型玻璃钢卡通猪猪侠公仔雕塑有温度的美陈场景
- 文文|国漫再现观众举报风波,金鹰卡通菲梦少女遭下架,看到原因我醉了
- 厨神小当家|《厨神小当家》第二季,登陆湖南金鹰卡通电视台,这次是麻婆豆腐
