APP下载

一个基于笔划和多重绘制的树木生成模型及其实现

2013-08-16赖步英王小铭

关键词:笔划绘制枝条

赖步英,王小铭

(1.广州航海高等专科学校信息与通信工程学院,广东广州510725;2.华南师范大学计算机学院,广东广州510631)

树木的形态模拟与生成一直是图形学界关心的热点领域之一.近十多年来,我国学者在这一领域的研究做了大量的工作.树木形态模拟与生成大概可以归纳为两类工作:一类是出于农林种植与植物学研究为目的的真实感造型与绘制;而另一类则是以虚拟景物或艺术作品生成为目的的非真实感图形绘制.前一类工作的关键是根据不同种类树木的生物特征,对枝干、树叶及树木的形态结构建模,并主要采用基于几何造型的画法完成树木的绘制与渲染.这类工作的代表包括郭焱[1]以玉米为例对作物生长与模拟的可视化研究;李保国和郭焱[2-3]对作物生长与虚拟植物的研究;高亮之等[4]对小麦栽培模拟的研究,严力姣和全为民[5]对水稻生长的动态模拟研究,以及李福清和王小铭[6]提出的基于生物学机理与环境控制的建模方法等.后一类工作的途径比较多,可以利用树木形态的静态特征,建立相应的描述模型,通过算法造型的方法完成树木的自动或半自动绘制.如常杰[7]利用植物结构的分形特征实现树木的形态模拟;董莹莹等[8]提出的从拓扑和几何结构2个角度建立植物形态结构模型的方法,以及王小铭和林拉[9]提出的基于骨架定制与粒子系统模型的树木模拟方法等.然而,针对不同手绘风格,特别是具有国画风格的非真实感作品的生成,研究较少.

针对以虚拟景物或艺术作品生成为目的的非真实感图形绘制,本文提出一个基于笔划与多重绘制的树木生成模型,该模型能使绘制者在多重绘制中选择合适的树叶笔刷模型以及它的参数,反复优化笔刷的粘贴位置直到获得满意的树木形态,从而绘制出具有明显手绘国画风格的作品.方法对运用笔划绘制技术实现非真实感艺术作品创作也是一种很好的尝试.

1 基于笔划与多重绘制的树木生成模型

基于笔划与多重绘制的生成模型源自Hertzmann提出的Stroke-Based NPR的多重绘制方法,每层绘制由一组固定大小的画笔完成,随着绘制层数的提高,画笔大小不断减小,从而模拟画家不断描绘细节的过程[10].本文将“一组固定大小的画笔”定义为某叶种的笔刷组,而“不断描绘细节的过程”就是枝干描绘(或生成)以及叶子的多重绘制,模型描述如下:

Step1 开始;

Step2 在绘制窗口交互式绘制或生成树干与枝条;

Step3 确定第1层树叶的绘制位置;

Step4 根据不同树种确定初始笔刷及其灰度;

Step5 在树叶绘制位置生成树叶;

Step6 决定是否结束多重绘制?若结束多重绘制,跳至Step9;

Step7 确定新一层树叶的绘制位置;

Step8 确定下一层树叶的笔刷及其灰度,跳至Step5;

Step9 保存绘制结果;

Step10 结束.

从模型看出,基于笔划与多重绘制的树木生成的关键是笔划与笔刷模型集的构成,树干与枝条的绘制,以及树叶绘制位置的确定与树叶生成.

2 笔划、笔刷与笔刷模型

笔划(stroke)用于树干和枝条的绘制,也是构成笔刷的基本要素.笔划的宽度和灰度由绘制者根据需要选择而定.

笔刷(paintbrush)用于树叶的生成,其模型集由事先绘制的对应不同叶种的笔刷组构成,每组笔刷由各种形态和大小不同的笔刷组成.而每一个笔刷都由它的编号、笔刷形状和笔刷灰度等参数决定:

其中,编号n是不同叶种、不同形状笔刷的编号;笔刷形状f是事先设计好的树叶笔划图形,是一幅小面积的(例如20×20像素)、以透明方形区域为背景的图案,体现不同叶种在形态和大小上的差异;笔刷灰度g是笔刷的灰度参数取值.绘画者可以根据实际需要通过编号选择不同叶种的各种形态笔刷,以及决定已选择笔刷的灰度等级.需要说明的是,由于笔刷通常比较小,其大小和旋转的变化对形态影响很大(笔刷往往会因为大小和旋转的变化产生严重变形),因此不将大小和旋转角作为笔刷的参数,而直接通过绘制大小和形态角度的不同笔刷形状提供使用.图1是某叶种笔刷组的各种笔刷模型.

图1 某叶种笔刷组的各种笔刷模型Figure 1 Various paintbrush models of paintbrush set for a leaf type

3 树干与枝条的绘制

树干与枝条的绘制可以有交互式实时绘制和生成式绘制两种.

交互式实时绘制指的是绘制者凭借个人的绘画能力,随时调整笔划的宽度和灰度,采用不同的笔法,在绘制窗口上自由、实时地进行.树干与枝条的形态结构完全由绘制者根据所要表达的树种的生物特征来决定.绘制过程可以反复进行,直到绘制满意为止,其中过程可以多步回撤.

生成式绘制指的是按照某种事先设计的算法,采用程序生成树干和枝条的方法.算法是多种多样的,图2所示的是一种基于骨架定制与粒子系统模型的枝干生成方法[9].

图2 一种基于骨架定制与粒子系统模型的枝干生成Figure 2 A kind of trunk-and-branches creating method based on skeleton customization and particle system model

4 树叶绘制位置的确定与树叶生成

每一层树叶的绘制位置(包括数量和分布形态)都由绘制者通过交互方式定点进行,点的位置参数按先后顺序存入记录该层树叶位置的数组,点的位置就是树叶笔刷粘贴的中心位置,同一层树叶可以重叠,不同层的树叶也可以叠加.树叶在层次与叠加绘制中,一般要掌握以下原则:

(1)先远后近;

(2)远的小,近的大;远的灰度小(颜色浅),近的灰度大(颜色深);

(3)远的密度大,近的密度小.

笔刷摆放的位置,决定树叶的分布形态和树木的整体造型,位置的优化成为绘制者艺术创作的关键,应该根据不同树种的生理形态特征和绘制者的创作思维来实施控制.

树叶生成算法很简单,就是将选定的笔刷按记录该层树叶位置的数组中取出树叶的位置参数逐一粘贴上去.粘贴的算法是:

其中,G为绘制窗口上某位置像素在粘贴后所取的灰度值;Gp为笔刷上对应位置像素的灰度值;Gw为绘制窗口上对应位置像素的原灰度值.

图3是由树干和枝条确定树叶绘制位置,进而用笔刷粘贴树叶的实现过程.其中,枝干采用程序生成法生成,图右下角是所用笔刷的放大图.

图3 树叶定位与生成过程Figure 3 Leaf positioning and creating process

因为每一层绘制的树叶一般都有多个位置的点,所以后面绘制的树叶总是叠加在前面绘制的树叶之上,而后面一层绘制的树叶也总是叠加在前面一层绘制的树叶之上,最后形成多层叠加、枝繁叶茂的效果.

什么时候结束多重绘制,由绘制者根据实时绘制的效果决定.这里没有真实图像作为指代的标准,也没有能量函数作为目标函数去评价绘制方案的好坏,判断绘制效果的唯一标准是作品所具有的非真实感艺术风格和艺术效果.

5 实验结果

这里给出2幅效果图,表明从枝干开始,经过3层绘制得到的非真实感树木(图4,图中右下角是每层绘制所用笔刷的缩小或放大图).所有枝干和树叶的多重绘制均在Windows xp和VC++6.0环境下实现.

从实验结果来看,模型能很好地模拟艺术作品的创作和绘制过程,具有灵活运用笔刷和多重绘制手法,支持交互式自由创作和半自动生成的特点.和其他方法的效果相比,作品有着鲜明的(中国)国画手绘风格.

图4 基于笔划和多重绘制的非真实感树木效果图Figure 4 Non-photorealistic renderings of tree based on stroke and multi-pass rendering

6 结语

不同手绘风格作品在绘制方法上有各自的特点和技巧,但从作品绘制过程的角度上说,选择不同的笔型笔法和构建合适的过程模型是关键.而过程模型通常符合多重绘制的规律,不管是采用优化算法还是贪婪算法,原则只有2个:一是限制笔划的数量(包括多重绘制的层数),使结果看上去像是一幅图画而不是照片;二是使生成的画面看上去与希望达到的手绘风格相吻合.本文的工作或许能给运用笔划绘制技术实现各种手绘风格作品的创作提供一个很好的启示.

[1]郭焱.作物生长与模拟的可视化研究——以玉米为例[D].北京:中国农业大学,1997.

[2]李保国,郭焱.作物生长的模拟研究[J].科技导报,1997,7:11-12.

[3]郭焱,李保国.虚拟植物的研究进展[J].科学通报,2001,46(4):273-280.

[4]高亮之,金之庆,郑国清,等.小麦栽培模拟优化决策系统(WCSODS)[J].江苏农业学报,2000,16(2):65-72.

[5]严力姣,全为民.水稻生长动态模拟研究进展[J].生态学报,2002,22(7):1143-1152.

[6]李福清,王小铭.植物模拟建模的新策略[J].华南师范大学学报:自然科学版,2003(4):54-59.

[7]常杰.植物结构的分形特征及模拟[M].杭州:杭州大学出版社,1995.

[8]董莹莹,赵星,康孟珍.一种新的植物形态结构表达模型[J].计算机工程与应用,2010,46(13):191-193.

[9]王小铭,林拉.树木模拟的粒子系统模型及其实现[J].华南师范大学学报:自然科学版,2003(3):49-53.

[10]HERTZMANN Aaron.Painterly rendering with curved brush strokes of multiple sizes[C]∥Proc SIGGRAPH’98.New York,1998:453-460.

猜你喜欢

笔划绘制枝条
冬天的枝条是破折号
闪光的枝条
超萌小鹿课程表
放学后
绝句
加笔划成新字
KD357:模拟汉字笔划的汉字键盘输入法
在转变中绘制新蓝图
冬的消息
一种融合区域笔划和梯度笔划的油画生成方法