Style2paints V4论文简介:为平面绘画作品添加3D光照效果
版权声明: 未经同意,禁止转载。(更新时间:2020-04-20)
关键词:智能打光算法,Generating Digital Painting Lighting Effects via RGB-space Geometry论文解读
本文属于:动漫线稿自动上色-系列论文解读
目录
【视频】
论文演示视频:B站
1. 基本信息
论文标题:Generating Digital Painting Lighting Effects via RGB-space Geometry
为数位板绘画作品添加仿3D光照渲染效果的算法,基于RGB颜色几何学
论文链接:(1) Simo-Serra Lab (2) GitHub (3) ACM Digital Library
研究领域:计算机图形学,数字图像处理,光照效果重新生成(Relighting,也译为“重光照”),颜色几何学(Color Geometry,主要关于“凸包”(convex hull)的算法)
作者:
LVMIN ZHANG, Soochow University / Style2Paints, China
EDGAR SIMO-SERRA, Waseda University / JST PRESTO, Japan
YI JI and CHUNPING LIU, Soochow University, China
发表期刊:ACM Transactions on Graphics (Presented at SIGGRAPH 2020) (CCF A类期刊)
项目主页:链接
代码:
(1)官方代码:lllyasviel/PaintingLight,包含了光照效果生成算法Demo(不含线稿自动上色部分)。
作者说明仅限于学术研究用途,禁止用于商业盈利目的。
(2)Style2paints V4暂未公布完整项目代码,仅提供过在线Demo网站(已下线)。如果你正在寻找旧版Style2paints(线稿自动上色项目)的代码,请参见:Style2paints V3论文解读。
研究意义:
(1)基于数学算法(“颜色几何学”),没有使用深度学习:算法鲁棒性强,思想内涵丰富。
(2)被计算机图形学顶级会议SIGGRAPH 2020录用。
2. 问题
由计算机图形学课本可知{*}:要得到3D光照渲染效果,一般需要先有一个3D模型,然后才能计算出观察镜头中每个像素的反射光强度和颜色。(光线从光源发出,照射到3D模型表面,最终反射到观察镜头上,如下图所示。)
问题:那么,对于一幅普通的平面绘画作品,在缺少对应3D模型的情况下,是否有可能为其添加3D光照效果?
“光照效果”是数位板绘画的重要组成部分。与3D模型经算法自动渲染得到光照效果不同,数位板绘画中的光照效果是由画家手工绘制的。手工绘制光照效果的过程非常耗时,因此本文致力于研究如何为绘画作品自动添加光照效果(无需3D建模),以减少画家耗费在绘制光照效果上的时间。
(图中部分图标来自[ref-3])
(图中部分图标来自[ref-4])
3. 算法动机
3.1 补充绘画基础常识
为了理解论文中的相关概念,首先补充介绍一个数位板绘画领域的基础常识{*}(笔者一开始不了解这一点,导致无法理解论文的方法)。画家使用数位板绘画时,需配合“高级数字绘画软件”(如:Easy Paint Tool SAI)一起使用。SAI中的上色笔刷是可以具有“半透明”效果的(这一点与Windows自带画图软件不同,其自带的笔刷是不透明的)。而且笔刷的透明度是可调节的(由“笔刷浓度”等设置参数决定)。这意味着:对画布上的同一位置,分别使用两种不同颜色的笔刷上色后,第二次的笔触痕迹不会完全覆盖掉第一次的笔触痕迹,而是两次笔触产生半透明的叠加融合效果。这种上色方式可以让色彩更具有质感、更绚丽,或者更剔透。对于很多色彩绚丽的漫画作品,实际上均为多重笔触叠加上色的结果。(非绘画专业人士往往以为画家是从调色板为每个像素选择一种颜色,然后一次性完成上色。)
由此可得出一个结论:当使用了带半透明效果的笔刷后,对于画布上每个像素,其颜色不是由该位置上最后一次笔触的颜色决定,而是由整个绘画过程中所有经过该像素的笔触颜色叠加融合得到。
颜色的具体融合方法,以2次不同颜色的笔触叠加融合为例。绘画软件计算最终的融合颜色时,遵循下面的加权融合公式:
其中:{c1,c2}分别为两次笔触的颜色,{α1, α2}分别为两次笔触的融合权重(由“笔刷浓度”、笔刷绘制时移动速度等多种因素综合决定)。c为融合后得到最终颜色。
论文将整个绘画过程中所有经过某个像素的笔触记录集合称为“笔触历史”(stroke history){*}。另外,论文使用“笔触密度值”(stroke density)来衡量某像素的“笔触历史”中参与颜色融合的笔触总数(注:部分被不透明笔刷覆盖掉的笔触,不参与最终的颜色融合)。画布上某个像素的“笔触密度值”越高,意味着:整个绘画过程中,有较多半透明笔触经过该像素。(关于“笔触密度值”的定义公式,详见论文。)
下图展示了“笔触密度值”的可视化结果:
(注:图中的“最终上色结果”指完成了上色过程,但尚未添加光照效果)
3.2 算法核心动机
作者通过观察画家使用数位板上色的过程,总结出一个重要的规律。画家一般是先完成上色过程,最后再添加光照效果。当画家为作品添加“光照效果”时,倾向于在初始上色结果(尚未添加光照效果)中具有“重叠笔触”的位置添加更多光照或阴影效果。(“重叠笔触”指“笔触密度值”较大的像素)。即:对于在初始绘画结果中具有“稠密笔触历史”(dense stroke history)的像素,需要添加更多表现光照效果的笔触。受这一规律启发,本文提出一种光照效果生成算法。
4. 方法简介
对于一幅普通的数位板(动漫)绘画作品(没有对应的3D模型),本文提出了一种光照效果生成算法,能为其添加仿3D光照渲染效果。算法分为两个步骤:
(1)笔触密度估计(Estimating stroke density)。由于绘画过程中的“笔触历史”是未知的(未公布),所以需要设计一种“笔触密度值估计算法”,根据最终的成稿估计绘画过程中的笔触密度值。算法的大致过程为:首先从输入图像的“RGB颜色空间凸包”(RGB-space convex hull)中提取一个“虚拟调色板”(virtual palette),然后利用图像像素颜色和调色板颜色的关系来估计笔触密度值。
(2)由粗到精的光照效果生成(Generating Lighting Effect)。首先,基于小波变换(wave transform)生成粗略的光照效果。然后,基于上一步估计出的“笔触密度值”,对粗略的光照效果进行精细修正,得到最终的光照效果。
本文算法的应用范围。本文提出的光照效果生成算法可应用于“数位板绘画”(digital painting)和“电影数字绘景”(matte painting,知乎介绍{*}),能显著缩短画家为作品添加光照效果的时间。另外,实验表明,本文算法还可用于为绘画之外的图像添加光照效果,包括照相机拍摄的照片,以及由3D模型渲染生成的图像(用于在缺少原始3D模型的情况下,更改其光照效果)。
5. 效果展示(部分)
最后,感谢作者开源了相关演示代码!(注意:作者禁止将代码用于商业和盈利目的,请尊重版权!)
相关报道与介绍:
Style2paints V4介绍:
[量子位] GitHub上万星:超精细的漫画上色AI,登上了趋势榜
参考与引用资料:
{*}为本blog为了便于理解论文而补充介绍的内容,论文原文中没有出现。
[ref-1] https://encyclopedia2.thefreedictionary.com/3D+computer+graphics
[ref-2] 由MikuMikuDance软件生成,使用其中的KAITO模型
[ref-3] 手电筒图标来自:http://www.easyicon.net/1107127-flashlight_icon.html
[ref-4] 沙漏图标来自:http://www.easyicon.net/548302-Timer_icon.html