蜡染数字化中Perlin噪声的应用

2020-12-16 09:23喻扬涛
关键词:蜡染布料插值

喻扬涛,段 鹏

(1.云南民族大学 人民武装学院,云南 昆明 650118;2.云南民族大学 数学与计算机科学学院,云南 昆明 650500)

蜡染是国家级非物质文化遗产,主要分布于我国西南少数民族地区.由于工艺的原因,手工蜡染作品会形成无法重现的“冰纹”,成为蜡染的灵魂.由于染制环境的复杂性,蜡染冰纹及其色彩随机性较强,各次染制中,虽然风格基本相同,但从细节上来看,却存在一定差异, “一图多样,各图不同”成为蜡染作品生命力的重要体现.随着社会的发展,传统蜡染快速消亡.作为蜡染技艺保护的重要手段,蜡染数字化研究引起了研究者们的积极关注,也取得了一些有效的成果.图案、冰纹的计算机生成,染色的数字化模拟是蜡染数字化的主要工作.本文以云南蜡染画为研究对象,主要讨论Perlin噪声在冰纹生成和染色模拟中的应用.

Wyvill等[1]较早开始对印尼蜡染冰纹生成进行初步研究,提出了基于距离变换的冰纹生成和染色方法.Tang等[2]提出了基于Voronoi图的蜡染冰纹生成方法,并使用双曲模型模拟了冰纹的交点加粗效果.Liu等[3]基于断裂力学,提出使用改进的有限元分析方法生成冰纹,在时间复杂度上有较大提升.Lv等[4]在生成分叉状裂纹时使用了基于分形的方法.Huang等[5]将可变卷积和混合扩散卷积应用到冰纹生成中.Tian等[6]提出一种基于分形几何的图案生成方法,用于自动生成花朵.Yuan等[7]也提出基于分形几何的蝴蝶图案生成方法.Morimoto等[8]基于几何折叠和扩散,以日本扎染织纹为研究对象,建立几何折叠模型和扩散渗透模型.刘世光等[9]模拟了布料上污渍的扩散.我们以云南蜡染画为研究对象,在冰纹生成和染色方面也做了一些工作[10-14]

Ken Perlin[15-16]于1983年提出Perlin噪声,后面又做了大量改进.由于Perlin噪声符合自然特性,常用于生成各种自然特效,在影视、游戏、艺术绘制领域都有广泛的应用.不同应用中噪声生成方法,表面、烟雾、火焰、云层、水面、地形和石材纹理等场景的模拟,都取得了一系列的成果.Hart等[17]开发了一个通用的多通道像素着色器产生的柏林噪声函数.Bridson等[18]基于Perlin噪声生成湍流速度场,模拟湍流和围绕任意刚性物体的流动.Acosta等[19]使用Perlin 噪声来模拟氧化物纹理.Qi等[20]使用Perlin噪声在3D虚拟环境中渲染云,可以根据用户的视点来更改云的位置和方向.Li等[21]将Perlin噪声应用于水面可视化.芮小平[22]提出Perlin 噪声的三维地形可视化方法.金磊[23]基于Perlin噪声生成大理石纹理.Inoue等[24]研究了Perlin噪声生成具有光学反射特性的纸张表面形貌.Abdolhoseini[25]等使用高斯混合模型和Perlin噪声函数模拟了神经元核微环境.特有少数民族风情风格方面,Perlin噪声鲜有应用.

1 Perlin 噪声及其生成

Perlin噪声兼具连续性和随机性,不同的应用场景,通常使用不同的算法生成.一维Perlin噪声常用于卷轴地形、模拟手绘线条等;二维、三维Perlin噪声常用于二维、三维自然现象的模拟;四维Perlin噪声常用于动画制作.频率、持续度是Perlin噪声的基本参数.在实际应用中,通常把振幅的值归一化到[-1,1]或[0,1],频率有时用波长表示.Perlin噪声由分别拥有不同频率和振幅的平滑函数叠加而成.其生成过程主要有随机数生成、插值、平滑、叠加.

图1示意了生成随机数,以及之后的插值过程.首先,在关键点上生成[0,1]间的随机数,如图1(a);插值在随机数间进行,结果为连续噪声函数,如图1(b).立方插值、余弦插值、线性插值是常用的方法.立方插值效果好,但计算麻烦,较为耗时;线性插值简单快速,但效果稍差.具体使用的插值方法,通常根据实际应用的要求选择.余弦插值兼具结果的平滑性和较低的复杂度,使用较多.插值后的噪声为连续噪声,但其平滑度较差,通常需要平滑,方法与具体应用相关.各个不同频率、不同振幅的平滑函数最终进行叠加,Perlin噪声最终可得,如图2.

图1 随机数插值

图2 二维Perlin噪声生成过程

实际应用中,频率通常按二倍减少,振幅按比减少,称持续度(Persistence).Persistence大,主要体现高频噪声特征;Persistence小,主要体现低频噪声特征.

使用Persistence参数,对第i个平滑函数,有:

frequencyi=2i,amplitudei=Persistencei.

(1)

2 Perlin噪声在蜡染数字化模拟中的应用

蜡染数字化关键技术里,Perlin噪声的主要应用是染色模拟和冰纹生成.一维Perlin噪声应用于冰纹生成,在冰纹的宽度和浓度上添加.二维Perlin噪声应用于染色中晕染和斑驳现象的形成.本文设计了一维和二维Perlin噪声的生成算法(PND算法).为方便计算,使用波长代替频率.

Perlin噪声生成(Perlin noise generating,PND)算法

step 1 设置波长及振幅.

step 2 根据波长,在关键点生成随机数,在关键点间,对各点插值.

step 3 对插值结果平滑,获得平滑函数,将平滑函数振幅进行变换,叠加.

step 4 若达到噪声要求则停止,否则修改波长及振幅,重复Step 2.

波长初始值常为2n,波长n倍处为关键点,这些点处生成随机数.关键点外,逐一进行插值.一维插值基础上,可进行二维插值.插值后的关键技术为平滑,一维和二维函数分别使用用均值平滑和高斯平滑.波长按减半迭代,若波长低于阈值,或迭代次数满足条件,停止叠加.振幅按持续度以乘积形式递减.

2.1 一维Perlin噪声生成

设PL(x)为x点处一维噪声值,TL(x)为x点处每次叠加的平滑噪声函数值,TL长度为CrackLength,波长为WeaveLength,通常,CrackLength为WeaveLength的整数倍.随机数在波长n倍处生成.Tl(0),Tl(WeaveLength),Tl(2×WeaveLength),…Tl(n×WeaveLength),Tl(CrackLength)处生成0到1的随机数.

a,b和x为插值函数的3个参数,两端点为a和b,插值点为x.对位于Tstart至Tend间的插值点i,各插值参数取值如下:

(2)

均值平滑使用在一维噪声函数中.设Noise(x)为当前点噪声,Noise(x-1)为前一点噪声,Noise(x+1)为后一点噪声,计算当前点为:

(3)

2.2 一维Perlin噪声在冰纹生成中的应用

由指定参数生成一维Perlin噪声后,可根据所需的噪声强度,将其加入到生成的冰纹中.

原冰纹宽度没有变化,均为d;待混合Perlin噪声为p(x),则x处混合Perlin噪声后,宽度dp(x)为:

dp(x)=(1-α)d+αp(x)d.

(4)

上式中,α为噪声因子,在[0,1]间取值.α值大,噪声影响宽度更为显著;α值小,冰纹较多保持原来宽度.Perlin噪声对浓度的影响,原理与宽度类似.

以平行状单条冰纹为对象,我们加入Perlin噪声,影响其宽度、浓度.通过实验研究了波长值、持续度、α值发生变化对冰纹形态的影响.

图3为单条冰纹加入Perlin噪声效果.图3(a)为不同波长Perlin噪声对应的实验结果, 单条冰纹中,宽度变化的频率由Perlin噪声的波长决定.较大波长对应宽度的低频变化,此时以平缓为基调;较小波长对应宽度的高频变化,此时以变化剧烈为特点.

图3(b)示意了持续度改变对冰纹视觉效果的影响.持续度越小,噪声越多显现低频部分,其形态更为光滑;持续度越大,噪声越多显现高频部分,其形态显得粗糙.图3(b)可看出,就整体宽度而言,其变化不大,但由于持续发生了变化,粗糙程度变化却较为明显.图3(c)为改变α值时的实验结果.可看出,由上至下,噪声影响逐渐增大,宽度变化愈趋剧烈.

图3 Perlin噪声各参数分析

2.3 二维Perlin噪声生成

设PMat(x,y)为二维噪声,TMat(x,y)为当前平滑噪声函数,Prows为行数,PCols为列数,波长为WeaveLength.TMat(Rand X, Rand Y)处先行生成随机数,服从平均分布,取值为[0,1],其中

(6)

其中,m和n是整数.

二维插值以一维插值为基础.设插值点TMat (j,i)四周顶点为V0(Left,Top),V1(Right,Top),V2(Left,Bottom),V3(Right,Bottom).由于V0(Left,Top),V1(Right,Top)同处于Top行,首先对其进行一维插值.参数取值为:a=TMat(Left,Top),b=TMat(Right,Top),x=(j-Left)/(Right-Left).该插值返回结果为TopValue.接下来,V2(Left,Bottom),V3(Right,Bottom)同处于Bottom行,对其插值,参数取值为:a=TMat(Left,Bottom),b=TMat(Right,Bottom),x=(j-Left)/(Right-Left),该插值返回结果为BottomValue.同理,垂直方向也应对TopValue,BottomValue插值,参数为:a=TopValue,x=(i-top)/(Bottom-Top),x=(i-top)/(Bottom-Top).

二维噪声函数TMat可使用图像进行表示,故其平滑可用图像平滑方法完成,本文使用高斯平滑.

2.4 二维Perlin噪声在蜡染染色中的应用

我们使用文献[13]的算法进行蜡染染色.二维Perlin噪声在染色中的应用主要是实现染料浓度在连续性基础上的随机变化,模拟蜡染作品中的斑驳、晕染现象,提高作品的表现力.

设原图像为I(x),则加入噪声的图像Ip(x)为:

Ip(x)=(1-α)I(x)+αf(p(x)).

(7)

式(7)中,α为噪声因子.f为变换函数,该函数由染色区域、浓度等因素确定.本文中变换函数f使用映射图表示.

二维Perlin噪声的波长、持续度、α值同样对结果具有决定性的影响.图4为使用不同波长、不同持续度生成的二维Perlin噪声.图4(a)到图4(d)是不同波长的结果.图4(a)到图4(d)波长逐步减小,噪声逐步丰富,图4(a)最为平滑,图4(d)最为丰富.可见,波长决定了噪声的丰富程度.图4(e)到图4(h)是相同波长,不同持续度的结果.图4(e)到图4(h)高频噪声越来越明显,4(e)噪声较为平滑,高频成分并不突出;图4(h)中低频部分并不明显,高频部分则较为突出.值得注意的是,图4(e)到图4(h)中虽然持续度不同,但波长相同.结果中,虽然高频信息和低频信息各不相同,但整体形态却基本一致.说明噪声的基本形态是由波长决定的,而持续度主要影响的是其细节形态.

图4 波长和持续度对Perlin噪声的影响

3 实验与分析

在采用文献[11]的蜡染冰纹生成算法和文献[13]的蜡染染色算法基础上,我们使用本文方法生成了适于蜡染冰纹和染色的一维和二维Perlin噪声,基于Visual Studio +OpenCv环境进了模拟实验.模拟主要考虑两种情景,一是布料较为细腻,布料特征不明显,仅模拟冰纹生成和染色;二是布料较为粗糙,具有明显的纺织视觉特征.

图5为加入了Perlin噪声的冰纹生成结果,没有布料织物特征.图5(a)为分支型冰纹,Perlin噪声主要影响冰纹的宽度和亮度,使得同一冰纹的不同位置宽度和亮度产生变化,该变化在连续的基础上,又具有一定的随机性.图5(a)为体现“碗”的光照变化,还对合成的图像进行了光照处理,光照加入了二维Perlin噪声.加入噪声后,图像高光区域和低光区域界限显得较不规则,但又保持了高光和低光的基本视觉效果,增加了作品的灵动之气.图5(b)为多色染制中的龟裂状冰纹,Perlin噪声主要影响冰纹宽度和染料浓度.图5(c)为纯网格状冰纹生成,Perlin噪声主要影响冰纹宽度、染料浓度.从冰纹生成的结果来看,对于蜡染作品中常见的冰纹形态,Perlin噪声都可以在保持连续性的基础上增加变化,从而提高作品的生命力和表现力.

图5 蜡染冰纹模拟结果

图6为加入了Perlin噪声的布料染色结果,具有明显的布料特征.图6(a)与图6(b)中,Perlin噪声持续度值相同,通过波长变化观察染色结果的变化.若波长较大,噪声较为平滑,晕染区块数量较少,单个区块面积较大,适合模拟较为均匀的晕染,斑驳现象并不突出;当波长较小时,晕染区块数量较多,单个区块面积较小,适合模拟较为细碎的晕染,点块状斑驳现象更为突出.

图6(c)和图6(d)Perlin噪声使用了相同的波长,持续度发生了变化.2图晕染区块数量及单个区块面积相当,但其视觉效果确有较大区别.由于图6(c)采用了较大的持续度,其染色结果高频成分较多,晕染更为细碎,斑驳更为明显.可见,通过调节波长和持续度参数,可以有效控制染色的视觉效果.

图6 具有明显布料特征的蜡染染色模拟

在图6中,我们也生成了冰纹,由于冰纹主要生成于图案中面积较小区域,主要呈断裂形态.冰纹生成中,Perlin噪声也影响了冰纹宽度、染料浓度,使得冰纹形态既能随机变化,又能保持其本质的特征,能够较好体现手工蜡染冰纹的基本特点.

4 结语

本文以云南蜡染为对象,研究Perlin噪声在其数字化模拟中的应用,主要工作是一维Perlin噪声和二维Perlin噪声在蜡染冰纹生成、染色、布料模拟中的使用.全文讨论了蜡染模拟中生成适合蜡染特点的一维Perlin噪声和二维Perlin噪声;根据蜡染要求,建立噪声混合函数,将Perlin噪声加入到蜡染作品中;选取适合蜡染模拟的Perlin噪声参数,实验分析噪声参数对染色结果的影响.

实验表明,算法在蜡染模拟中可以有效表达冰纹形态;能够体现常见的单色染制、多色染制,布料结构基本特征;对染色中常出现的晕染、斑驳现象能够有效实现.

手工蜡染作品受环境、作者、原料等各种因素影响较大,染制中还有其它本文未涉及的视觉特征.采用合适的方法模拟蜡染作品的这些特征,以及探索Perlin噪声在云南少数民族风情绘画中其它应用,将会成为后续的工作方向.

猜你喜欢
蜡染布料插值
滑动式Lagrange与Chebyshev插值方法对BDS精密星历内插及其精度分析
蜡染的纹饰探讨
用布料拼图形
贵州蜡染的审美特征及其创新应用
基于pade逼近的重心有理混合插值新方法
混合重叠网格插值方法的改进及应用
马丽蜡染作品
蜡染手绢寄深情
按约定付账
按约定付账