本文是在看完之前的综述论文《Cartoon Style Rendering》的总结,论文时间是2008年有点早,但有一定启发意义。
前言
首先卡通渲染是非真实化渲染(NPR)的一个部分.而NPR旨在模拟出手工插图的效果例如油画、墨水画、漫画风格作品。
其中卡通风格的渲染本质是黑色轮廓和内部区域的纯色,也叫做cel shading
和 toon shading
,通常被用作在电影或者电脑游戏中。例如下面图片的塞尔达风之传说,还有后面的漫画作品。
对于建模一个现实人物角色十分困难,也包括了角色动画,而卡通风格渲染可以拓宽我们通过计算机进行交流思想情感和感受的能力,如果场景物体是抽象风格,更多人能够认同角色和故事。
之前提到黑色的轮廓其实是第一个关键点,他们表达了角色的形状和可视化风格。其中轮廓检测原文指示主要是
If the edge is shared by a front and back a face, it is classified as a contour edge, also called a silhouette.
传统的着色模型,也就是常说的布凌冯模型可以用下面的式子表达:
第一项为环境光照用来近似背景灯光和全局的漫反射,第二项用于计算表面接受直接光照的比例,第三项用于计算高光这里具体不介绍了。 V视角方向 L光线方向R是反射向量。
介绍传统着色模型是因为其是理解NPR流程的关键。卡通场景的内部着色通常是由很多色块组成,是一种更风格化的着色表面而不是通过传统着色模型计算的平滑表面颜色,所以我们不能不修改就直接用传统的着色模型与卡通风格之上。
相关工作
这个就是在1996年DECAUDIN采用了z-buffer和普通缓冲区内的不连续性进行边缘绘制,并计算阴影得到的卡通渲染结果。随后也有更多的关于实时卡通渲染的方法出现,像Lake et al. 2000 等通过面法线区检测边缘和折痕。
但是按边缘和按网格的计算需要全局的邻接信息,通常我们渲染流程中顶点和片段着色器就只有局部的信息,
于是就有方法《Real-time rendering of cartoon smoke and clouds》提出了把全局信息打包进了顶点着色器之中。
卡通绘画是一门艺术,与真实感渲染相反,卡通风格渲染可以用来产生许多不同的风格。如果我们想到卡通或漫画,我们会发现几乎没有任何卡通看起来像另一部卡通,每一个都有独特的风格。
就比如中国经典的水墨画,其也被制作成水墨动画yuan等人就提出了一种GPU驱动的实时渲染方法将动画3D模型自动的转变成水墨动画。另外,Spindler 等人也实现了罪恶之城中类似的画风渲染。
Lee等人提出了铅笔画分隔的渲染方式《Real-time pencil rendering.》,将其整合到GPU中运行,并采用了多重轮廓绘制技术去模拟人类的轮廓绘制,并通过简单的定向纹理映射对内部进行着色并且取得了不错的效果,部分结果图如下
接下去进一步探究具体的方法技术部分。