国画一笔多色的计算机模拟

2010-01-01 01:45邓学雄张志尧
图学学报 2010年2期
关键词:笔尖毛笔国画

邓学雄, 章 文, 张志尧, 颜 玮

(华南理工大学机械与汽车工程学院工业设计与图学研究所,广东 广州 510640)

国画中的表现技巧繁多,国画仿真研究者对国画中多种效果的仿真展开了研究。如对笔画进行模拟[1],基于水墨画感性艺术效果图形的画笔模型的建立[2],三维毛笔模型的建立(成功模拟了分叉效果)[3],以2D 笔画模型为基础对水墨画效果进行仿真[4]。由于国画效果样式繁多,形成过程复杂,很难用单一的数学模型模拟出所有效果。因此,各种国画效果的仿真方法也如雨后春笋般涌现。

“一笔多色”是众多国画绘画技法中的一种,也是较难控制和掌握的一种。目前,用计算机模拟“一笔多色”的研究并不多见。本研究是用多个笔道叠加的算法来实现色彩混合的绘画技法,为计算机模拟“一笔多色”的国画艺术效果提供了新技术。

1 一笔多色效果的形成分析

一笔多色效果的形成主要是当毛笔同时沾有不同的颜色,墨水和颜料将会在笔尖至笔腹形成一定的分布规律。毛笔的笔迹会受颜料在毛笔中分布的影响,颜色有一定的分布规律。手执笔腹沾胭脂红,笔尖沾墨的毛笔,轻轻落笔,重顿后迅速提笔,将会得到类似于图1(b)上图的笔迹颜色分布。

图1 一笔多色效果形成

当进一步实验之后发现,也会得到类似图1(b)下图的笔迹颜色分布。这是因为笔尖所沾的颜料较少,而笔腹所沾的颜色被吸收到笔腹的空腔中,毛笔在纸上滑动的过程中,笔腹受压,笔腹空腔中的颜料不断从毛笔流向纸张,由于笔腹颜色的流量比笔尖颜色的流量大,最终把笔尖颜色逼至笔道痕迹的边缘,如图1(c)所示,最后形成了图1(b)下图的效果。

2 一笔多色效果的模拟

对一笔多色颜色分布进行分析,可以想到若把多个粗细和颜色渐变的笔道在同一位置叠加,便可实现一笔多色的效果。在一组为实现一笔多色叠加的笔道中,最下面的笔道粗,最上面的笔道细,最下的笔道为笔尖颜色,而最上面的笔道为笔腹颜色,各笔道间颜色均匀过渡。

为了记录用户选定的笔尖和笔腹颜色,在CChinesePaintView 中增加两个成员变量m_tipColor 和m_midColor 来分别记录用户选定的笔尖和笔腹颜色,在增加一个成员变量m_brushStyle 来记录用户选择的笔触类型,NON为一般笔触,MUL 为一笔多色笔触。在CStroke类中新增成员变量m_tipClr, m_midClr, m_style分别表示笔道的笔尖颜色,笔腹颜色和风格类型。为了兼容一般笔道,在笔道风格为NON 时,笔道根据m_midClr 的颜色绘制。

2.1 叠加笔道数目的确定

由用户的选择信息和实时的Packet 信息的读入,可以生成最底层的笔迹。再由用户设定参数midPercent 的值来记录笔腹笔道(叠加的最上层笔道)的粗细占整个笔道(叠加最底层笔道)的百分比。那么最上层笔道中每点的画笔大小等于最下层笔道中每点的画笔大小乘以midPercent。

假设最上层笔道中最粗的地方笔画大小为maxWeight,则在该点最下层笔道的笔画大小为maxWeight*m_midPercent,两个笔画大小的差值为maxWeight*(1-m_midPercent),达到最大值。为了使一笔多色笔道的颜色过渡达到平滑效果且计算效率达到最优,在最上层笔道与最下层笔道之间添加maxWeight*(1-m_midPercent)-1 个笔道,这使得在多色笔道最粗的位置,顺序叠加的笔道之间大小相差1,达到最高的分辨率。因此,在将一笔多色笔道转化成多个普通笔道前,先扫描笔道中的各点得到maxWeight,之后就可算得需要叠加笔道的数目了。

2.2 一笔多色笔道的实时显示

要确定笔道的叠加数目,就需先得到maxWeight 的值,但在一个笔道结束之前,是无法预测该笔道中哪个点的笔画大小最大,这为一笔多色笔道的实时显示造成了一定困难。为了解决这个问题,可以在用户绘制的过程中绘制出最底层的笔迹,在用户提笔的瞬间绘制一笔多色的多层叠加笔道。在用户绘制过程中显示最底层笔迹十分重要,这样用户可以预测所画笔道的位置和粗细,使程序更具可用性。

2.3 一笔多色笔道删除处理

实验程序中设置了一个“回退”按钮,用户按下该按钮后,程序将删除笔道数组中的最后一个笔道。若一个多色笔道由n 个普通笔道叠成,则用户要按n 次“回退”按钮才能把它完全删除。为了解决这个问题,在CStroke 中设置一个变量m_index 来记录一笔多色笔道中的子笔道序号,普通笔道的m_index 值为0,一笔多色笔道的最底层笔道m_index 也为0,底层笔道的上一层笔道m_index 为1,依次递推,若一个一笔多色笔道共由n 个子笔道组成,则最上层笔道的m_index 值为n-1。删除上一个笔道的过程如图2所示。

图2 上一笔道删除流程图

2.4 一笔多色子笔道参数计算

如图3 所示,设一个多色笔道有n 个子笔道组成,最外层的m_index=0,percentage=1,颜色为 笔 尖 颜 色; 最 内 层 的 m_index=n-1 ,percentage=m_midPercent,颜色为笔腹颜色笔道中任一点的weight值是最外层笔道对应点weight乘以m_midPercent。为了求出任一子笔道的颜色和weight 值和最外层笔道对应点weight 值的关系,先算出相邻笔道percentage 的差值delta:

图3 一笔多色子笔道参数计算(一)

delta=(1-nMidPercent)/(n-1);

那么对于任一m_index 值为index 的子笔道,它上面某一点的weight 值subWeight 与最外层笔道该点的对应点weight 值firstWeight 的关系为:

subWeight=firstWeight*(1-delta*index);

假设每一个子笔道的颜色由midPercent 份的midClr 和tipPercent 份的tipClr 混合得到,且midPercent + tipPercent = 1,则:

midPercent = delta * index / (1- m_nMidPercent );

tipPercent = 1-midPercent;

据此,可以对需要添加的子笔道参数逐一设置。子笔道参数计算中各量的关系如图4 所示。最后把这些子笔道都添加到CChinesePaintDoc的笔道数组中,并把原笔道的颜色设置为笔尖颜色,m_style 改成NON。

这样就完成了一个多色笔道向多个单色笔道的转化,如图5 所示。(注意,这里所说的m_color 是指m_midClr,在m_style 为NON 的情况下,笔道按m_midClr 的颜色绘制。)

图4 一笔多色子笔道参数计算(二)

图5 多色笔道转化成单色笔道的过程

3 仿真作品及讨论

图6 和图7 为本程序绘制的一笔多色效果。可以看出混合过渡效果十分柔和,在顿笔、提笔时都表现自然。同时该种算法占用存储空间较小,运算速度快。

图6 一笔多色效果展示(一)

4 结 束 语

本研究的国画一笔多色艺术效果的计算机模拟,目标为寻求一种可以实现用户一笔多色效果实时笔迹绘制的算法,力求实现多色笔道中颜色真实自然过渡,并在实时绘制中表现用户的运笔力度及钩提顿挫。一笔多色算法的原理,主要是基于用多个笔道叠加模拟一笔多色效果的构想,讨论了多笔叠加中笔道数目的确定方法、多色笔道的数据结构及其中各参数的计算、实时显示的具体过程及笔道删除处理。用多笔道叠加的方法,巧妙地解决了一笔多色笔道中的色彩过渡问题,避免了逐点计算笔道中各点颜色的复杂过程,提高了运行速度,逼真细腻的表现了一笔多色的艺术效果。

[1] 白海飞, 齐亚峰, 孙济洲. 基于纹理映射的中国水墨画飞白效果的仿真生成[J]. 天津大学学报, 2005, 38(1): 74-79.

[2] 李 丹, 孙美君, 孙济洲. 水墨画仿真中画笔的行为实现[J]. 中国图像图形学报, 2004, 9(2): 184-189.

[3] 于金辉, 徐晓刚, 彭群生. 一个三维计算机水粉笔刷模型[J]. 计算机辅助设计与图形学学报, 2000, 12(9): 664-667.

[4] 孙美君.中国水墨画仿真中毛笔模型的研究与设计[D]. 天津: 天津大学电子信息工程学院, 2005.

猜你喜欢
笔尖毛笔国画
国画《鲦鱼》
国画《鲿》
毛笔的由来
使用后的毛笔该如何存放?等
寻找笔尖上的少年
让真情在笔尖流露
深情笔尖下的西部惊叹曲
国画欣赏
画画小工具 毛笔
笔尖上的“京味儿”