概念页
卡通着色
Toon Shading
非真实感渲染 (NPR,也称风格化渲染) 不追求照片般逼真,而是追求特定目的或画风。卡通 / cel 渲染是其中最受关注的一种:用实线分隔大块纯色区域。表面着色常用纯色填充、两色"硬着色"、或对最终图像做色调分离 (posterization);描边见 轮廓边与几何描边。
为什么用卡通风格
- NPR 的目标多样:技术插图(只显示与目的相关的细节,例如修发动机用的线稿比法拉利发动机照片更有用)、模拟绘画与自然媒介(钢笔淡墨、炭笔、水彩)等(RTR4 15 章引言)。
- McCloud 在《Understanding Comics》中称卡通的力量为"通过简化来放大":去掉杂乱,突出与表达相关的信息;简单画风的角色更容易让更广的观众产生代入感。
- 卡通风格容易定义,适合由计算机自动生成,长期用于把三维模型融入二维赛璐璐动画,许多游戏(如《大神》)也采用(15.1 节)。
表面着色方法
| 方法 | 做法 | 注意点 |
|---|---|---|
| 纯色填充 | 网格区域用不受光照的单色 | 最简单 |
| 两色 / 硬着色 | 像素着色器中,着色法线与光方向点积高于阈值用亮色,否则用暗色 | 适合简单光照 |
| 色调分离 | 把最终图像连续值量化为少数几个色阶,色阶间突变 | 直接量化 RGB 会因各通道独立变化产生难看的色相偏移,应在 HSV、HSL、Y'CbCr 等保色相空间中进行 |
| 一维重映射 | 用一维函数或纹理把光照强度映射到指定明暗或颜色 | 纹理本身也可预先量化或滤波 |
两色硬着色可写为 其中 是阈值(15.1 节)。
视角相关的二维色调图
Barla 等人用二维贴图代替一维色调纹理,第二维由表面深度或朝向索引,使物体在远处或快速运动时平滑地降低对比度。该算法与其他着色方程、手绘纹理结合,用于《军团要塞 2》,形成卡通与写实混合的风格。卡通着色的变体还可用于夸大对比度,以便可视化表面或地形特征(15.1 节)。
取舍
- 优点:规则简单、开销低,与描边结合即可得到经典卡通外观。
- 缺点:量化色阶会放大锯齿,书中提到形态学抗锯齿对这种高对比输出和色调分离效果都很有效(15.2.3 节)。
- NPR 领域往往没有物理上"正确"的参考答案,这既是问题也是自由;在交互帧率下多数方案都会在某些情况下失效,关键是判断什么在你的应用里"够好"(15.3 节)。
出处
- realtime_rendering_4ed.pdf 第 15 章 Non-Photorealistic Rendering
相关页面
图形学轮廓边与几何描边Contour Edges & Geometric Outlining卡通渲染的黑色描边可以按表面着色、过程几何、图像处理、几何边检测或混合方式生成。本页讲边的分类,以及在几何层面生成描边的三类方法:基于着色法线、背面过程几何(偏移、膨胀、外壳)、显式检测轮廓边并做隐藏线消除。图像空间方法见 图像空间边缘检测。图形学图像空间边缘检测Image-Space Edge Detection不碰场景几何,只对渲染出的深度、法线、物体 ID 等缓冲(G-buffer)做图像处理来找出描边位置,再用形态学算子加粗、与着色结果合成。它对任何表面都适用、不要求网格连通,是游戏中最常见的描边方式之一;缺点是边的判定需要按内容调参,可能漏检或误检。图形学笔触与表面风格化Stroke Surface Stylization除卡通外,表面还可以呈现素描、炭笔、铅笔等笔触风格。核心问题是:按明暗选择笔触纹理,并在物体远近变化、运动时保持屏幕上笔触粗细和密度稳定。屏幕空间纹理会产生"浴室门效应",贴在表面上的纹理又要用色调艺术贴图 (TAM) 解决缩放问题。图形学着色模型与光源Shading Models & Light Sources着色模型描述物体颜色如何随表面朝向、观察方向和光照变化。光源通过两个参数与着色模型交互:指向光源的方向 \mathbf{l} 和光的颜色 \mathbf{c}{\text{light}}。方向光、点光源、聚光灯的区别就在于这两个量如何随场景变化;距离衰减和方向衰减函数的选择同时影响画面与性能。图形学色调映射Tone Mapping色调映射把场景参考的辐射亮度转换为显示参考的辐射亮度,目标不是恒等复现、也不是把所有信息"挤进"显示范围,而是在显示条件下尽量复现观看原场景时的感知印象。它通常是曝光缩放加一条 S 形曲线(全局映射),之后可做调色;最后由显示编码输出到 SDR 或 HDR 显示器。图形学色度学与色彩空间Colorimetry & Color Spaces色度学研究光谱功率分布与颜色感知的关系。人眼只有三种视锥细胞,所以三个数就能精确表示任意颜色刺激;CIE XYZ 是标准的三刺激值空间,各种 RGB 色彩空间由三原色和白点定义,可用 3×3 矩阵互相转换。实时渲染用 RGB 而非光谱计算,严格说是范畴错误,但对非预测性渲染效果出奇地好。