CN101477693B - 一种基于gpu的实时大理石纹理仿真系统 - Google Patents

一种基于gpu的实时大理石纹理仿真系统 Download PDF

Info

Publication number
CN101477693B
CN101477693B CN2008101627819A CN200810162781A CN101477693B CN 101477693 B CN101477693 B CN 101477693B CN 2008101627819 A CN2008101627819 A CN 2008101627819A CN 200810162781 A CN200810162781 A CN 200810162781A CN 101477693 B CN101477693 B CN 101477693B
Authority
CN
China
Prior art keywords
marble
substrate liquid
pattern
pigment
analogue system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008101627819A
Other languages
English (en)
Other versions
CN101477693A (zh
Inventor
许佳奕
金小刚
茅晓阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN2008101627819A priority Critical patent/CN101477693B/zh
Publication of CN101477693A publication Critical patent/CN101477693A/zh
Application granted granted Critical
Publication of CN101477693B publication Critical patent/CN101477693B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于GPU的实时大理石纹理仿真系统,包括以下步骤:1)用户设定仿真系统中用于大理石纹理制作的二维运算域和基底液的属性;2)在仿真系统中设计大理石纹理图案包括步骤:a在仿真系统的窗口内输入一幅已经创作好的图像作为基本图样或在基底液中添加各种颜色的颜料生成基本图样;b在仿真系统的二维运算域内进行一系列操作来设计大理石纹理;c通过图像锐化方法使大理石纹理图案更加清晰鲜明,得到用户自己设计大理石纹理图案;3)采用无缝拼接纹理技术对大理石纹理进行拼接得到大张的无缝循环大理石纹理。本发明对传统工艺过程的进行实时物理仿真,使得用户能以与真实工序一致的方式交互地创作各种大理石纹理作品。

Description

一种基于GPU的实时大理石纹理仿真系统
技术领域
本发明涉及二维流体仿真,无缝纹理拼接设计和图形处理单元GPU数值计算应用领域,特别是一种基于GPU的实时大理石纹理仿真系统。
背景技术
大理石纹理工艺是一种在纸或织物上制作彩色的流体状图案的传统艺术。其最初的应用是起到装饰性的目的,同时用于官方公文的背景图案以防止删改和伪造。随着人类历史的发展,大理石纹理工艺在书籍制作领域的功能已经逐渐被其他先进的装订和批量印刷技术所取代,但它的装饰作用仍然保留了下来,并且在我们的日常生活中随处可见,比如像框,便签本,拼贴画,墙纸,灯罩,以及礼品外包装等等。
作为一项深受喜爱的手工艺技术,其制作流程的基本特征是,对悬浮在基底液表层的颜料的流动方式进行操纵,基底液体的流动带动飘浮在其表面的各种颜色液滴,形成各式各样的图案,然后将得到的图案转移到纸或其他具有吸纳性质的材料上进行保存。事实上,只有一小部分用最自然的色彩制作出的简单图案比较具有大理石花纹的风格,其余的绝大多数作品则没有这种特征。艺术家们为他们独特的设计赋予了千奇百怪的名字,如孔雀,喷泉,龟甲,箭尾,贝壳等等,形象地描述了他们所希望表达的艺术思想。
对传统的工艺手段来说,设计过程和最终结果的质量都在很大程度上受到各种物理条件的限制。虽然制作的基本步骤简洁易懂,一幅完美的作品并不是一朝一夕能够练就的。在传统的大理石纹釉工艺中,人为形成的各种物理条件,比如颜料的浮动性,基底液的粘性,甚至于周遭环境的湿度,都在很大程度上限制了设计的过程以及成品的质量。如果在制作过程中发生了误操作,就必须重新开始整个设计过程,这对于初学者来说应该是时常经历的。而另一方面,用于承载基底液和颜料的平底碟的大小,决定了所完成的设计作品的大小,从而直接限制了成品的应用范围。
计算机仿真将艺术工作者从物理的局限性中释放了出来。人们能够以改变粘滞系数的方式来控制基底液的属性,随意搭配色彩方案,设计他们自己的绘制工具,甚至还可以撤销或重复设计过程中的每一步,通过反复的试验发掘出最完美的设计方案。如Acar R and Boulanger P.“Digitalmarbling:a multiscale fluid model.”IEEE transactions on visualization andcomputer graphics,12(4):600-614,2006中所描述的,将大理石纹理图案制作的过程被看作一个二维流体动力学问题,并用数值方法进行解算,能够低成本的模拟该艺术效果。但是现有研究技术往往只能仿真一小部分特定的大理石纹理图案,并且计算复杂不能满足用户实时观察效果的要求。
发明内容
本发明是基于二维流体的动力学对大理石纹理制作工艺进行物理仿真。通过计算基底液在用户操作下获得的速度场,使滴入或倾倒入的颜料的运动范围只局限于基底液的表面,在基底液流场中的水平对流,生成图案精美,样式繁多的大理石纹理图案。
在流体动力学研究领域,稳态流体算法能很好的适用于解决这类仿真。通过采用计算机数值计算的方法,求解Navier-Stokes方程得到一个二维流场,色彩在该流场中的水平对流形成的复杂纹样就是我们创作的大理石纹釉图案。利用近年来计算机图像硬件在并行计算性能上的显著优势,我们在新的图形处理单元GPU上编写和运行多栅求解器求解Navier-Stokes方程,使得模拟过程更加逼真和快捷。能够对用户的各种操作给出实时响应,就如同真实的大理石纹釉形成过程一样。
一种基于GPU的实时大理石纹理仿真系统,用户通过仿真系统窗口执行各种操作,仿真系统执行相应的算法来进行大理石纹理的仿真制作;
方法包括以下步骤:
1)用户通过仿真系统窗口设定仿真系统中用于大理石纹理制作的二维运算域和基底液的属性;
大理石纹理的制作是在一个浅的方形平底碟中进行的,在计算机上制作仿真大理石纹理时在仿真系统中定义一个二维运算域作为平底碟的内部底平面,二维运算域是一个长为M个单位长度,宽为N个单位宽度的方形栅格上,栅格内部由M×N个正方形单元格构成,每个单元格的大小由用户在初始的时候设定;
二维运算域上设有基底液,基底液的属性包括颜色,即纹理的底色,以及基底液流体的粘稠度。颜料在不同粘稠度的基底液表面的扩散速度不同,大理石纹理工艺所用的基底液一般具有非常高的粘性。传统的大理石纹理工艺的基底液和普通的水不同,里面添加了一些溶剂,例如牛胆汁,是大理石纹理制作工艺所专用的。
2)用户通过仿真系统窗口在仿真系统中设计大理石纹理图案,包括以下步骤:
a.用户通过仿真系统窗口输入一幅已经创作好的图像作为基本图样或通过仿真系统窗口往基底液中添加各种颜色的颜料生成基本图样;
添加颜料包括将各种颜色的颜料滴入或者倾倒入基底液,仿真系统提供各种用户操作的工具,用户可以在仿真系统窗口界面进行颜料添加、搅拌、图像锐化、撤销等一系列操作;
通过仿真系统窗口往基底液中滴入各种颜色的颜料是指将利用系统提供的颜料添加工具设定半径的圆形液滴滴入到基底液中;
通过仿真系统窗口往基底液中倾倒入各种颜色的颜料是指利用系统提供的颜料添加工具连续倾倒涂抹颜料到基底液中。
系统还支持将已添加在基底液中的任一颜色的颜料单独清空或者替换。
b.用户通过仿真系统窗口在仿真系统的二维运算域内进行一系列操作使仿真系统执行相应的算法来设计大理石纹理图案;
仿真系统窗口是一个二维窗口,其大小可以由用户自己设定,用户可以通过仿真系统窗口执行各种操作。
仿真系统中有一个二维运算域,在仿真系统的二维运算域中用户能进行相关运算操作,包括用户添加颜料,拖拽鼠标来搅动基底液等,仿真系统执行相应的算法来实现用户的各种操作功能。仿真系统通过二维流体动力学进行仿真,得到二维运算域中的基底液的无发散速度场u(x,t),用户在仿真系统的二维运算域内添加颜料或拖曳鼠标以搅动基底液使基底液的无发散速度场u(x,t)产生变化更新,变化更新后的基底液的无发散速度场u(x,t)带动颜料的多图层的密度场流动,制作用户想表达的大理石纹理。制作过程中用户能结合各种操作来设计丰富多彩的大理石纹理图案。
在仿真系统的二维运算域内进行添加颜料或在基底液上滴入或倾倒入颜料后形成的静止图案上,拖动鼠标施加外力带动颜料流动,制作用户想表达的大理石纹理。用户可以拖动鼠标创作抽象图案或者传统的土耳其花卉、蝴蝶图案,设计任意形状的梳子工具制作经典的孔雀、莲花等图案,以及经多次漩涡方式的搅动创作迷人的漩涡效果。
c.仿真系统通过图像锐化方法得到图案更加清晰鲜明的大理石纹理图案;
随着颜料在基底液中的流动,颜料的扩散会使得图案越来越模糊。为了保证大理石纹釉作品清晰鲜明的品质,仿真系统选择MacCormack算法,用非物理的方法来高效的维护图案的清晰属性。
3)仿真系统采用无缝拼接纹理技术对大理石纹理图案进行处理,最终能够得到大张的无缝循环大理石纹理。
无缝拼接纹理技术是指在水平和垂直方向上,重叠部分左右或者上下方向的图案,通过纹理剪裁技术,制作无缝循环大理石纹理,拼接生成的大张无缝循环大理石纹理可以应用于装饰。
由于制作得到的大理石纹理图案在左右上下边界不一定是对称的,那么,我们重叠左右或者上下方向得一部分边界,通过找到相似的图案,进行拼接,再裁剪掉不相似的部分,得到最终的无缝循环纹理,无缝循环纹理也就是将任意多张这种纹理拼接在一起,得到的大张纹理的图案接缝处图案也是连续的一种装饰用纹理。
本发明提供了一种基于GPU的实时大理石纹理仿真方法,用于交互式地创作各种大理石纹理作品。对传统工艺过程的实时物理仿真是本系统的最大特色,这使得用户能够依据与真实工序完全一致的方式完成富有想象力的设计。在这仿真系统中,任何误操作都能够被简单地操作或修改,大大减少了艺术家的重复劳动。
附图说明
图1为本发明的技术方案流程图。
具体实施方式
下面结合附图对本发明的一种基于GPU的实时大理石纹理仿真系统的实施例进行详细说明
一种基于GPU的实时大理石纹理仿真系统,包括以下步骤:
1)在仿真系统的窗口中用户设定用于大理石纹理制作的二维运算域和基底液的属性;
大理石纹理的制作是在一个浅的方形平底碟中进行的,在计算机上制作仿真大理石纹理时定义一个二维运算域作为平底碟的内部底平面;定义基底液属性,基底液的属性包括颜色,即纹理的底色,以及基底液流体的粘稠度。颜料在不同粘稠度的基底液表面的扩散速度不同,大理石纹理工艺所用的基底液一般具有非常高的粘性。
二维运算域是一个长为M宽为N的正方形栅格,栅格内部由M×N个正方形单元格构成,其空间坐标为x=(x,y)。二维运算域上的基底液流体的速度随着空间和时间的不同而变化,因而将其表示为一个二维矢量场,即速度场u(x,t),其中t为时间变量,x是二维运算域上的空间位置;每个正方形栅格因为基底液流动的作用会产生一个压力p(x,t),基底液流体内部的压力可以表示为一个标量场,即压力场p(x,t)。
2)在仿真系统中设计大理石纹理图案,包括以下步骤:
I.在仿真系统的窗口内输入一幅已经创作好的图像作为基本图样或在仿真窗口内添加各种颜色的颜料生成基本图样;
添加颜料包括将各种颜色的颜料滴入或者倾倒入基底液;
在仿真系统的窗口中将各种颜色的颜料滴入基底液中是指滴入利用系统提供的颜料添加工具设定半径的圆形液滴到基底液中;
在仿真系统的窗口中将各种颜色的颜料倾倒入基底液是指利用系统提供的颜料添加工具连续倾倒涂抹颜料到基底液中;
系统还支持将已添加在基底液中的任一颜色的颜料单独清空或者替换。
II.用户在仿真系统的二维运算域内进行一系列操作来设计大理石纹理图案;
仿真系统的窗口是一个二维窗口,其大小可以由用户自己设定,仿真系统提供各种用户操作的工具,用户可以在仿真系统窗口界面进行颜料添加、搅拌、图像锐化、撤销等一系列操作;
仿真系统中有一个二维运算域,在仿真系统的二维运算域中用户能进行相关运算操作,包括用户添加颜料,拖拽鼠标来搅动基底液等,用户通过结合各种操作,来设计丰富多彩的大理石纹理图案。
在仿真系统的二维运算域内进行添加颜料或在基底液上滴入或倾倒入颜料后形成的静止图案上,拖动鼠标施加外力带动颜料流动,制作用户想表达的大理石纹理。用户可以拖动鼠标创作抽象图案或者传统的土耳其花卉、蝴蝶图案,设计任意形状的梳子工具制作经典的孔雀、莲花等图案,以及经多次漩涡方式的搅动创作迷人的漩涡效果。
具体的实施过程如下,整个创作过程在计算机上仿真进行,使用图像硬件GPU进行计算,在空间上将速度场u(x,t)和压力场p(x,t)这两个场离散化,保存数据在二维纹理中。
GPU的纹理数据的存储格式包含(x,y,z,w)四个数据通道,也就是一张数据可以存放4个不相关的单精度浮点数字。在图形硬件的浮点运算单元中,这四个通道里存放的数据是同时并行计算的。也就是说,单独计算x,y,z,w其中任何一个通道的值,和同时对四个通道进行计算,在时间上没有任何区别。利用这一点,我们将二维的运算域平均划分为四个象限,分别将它们对应到一张纹理的四个通道中。而这张纹理在两个维度上,也就是x方向和y方向上,都只有原本运算域大小的一半。运用了这样的压缩方法之后,既从一定程度上节约了图形硬件的内存空间,更为重要的是,计算时间减为原来的四分之一,从而极大地提高了算法效率。
系统假设基底液二维流体不可压缩且密度均匀,也就是说,流体的密度不随时间和空间的变化而变化。当研究的对象为水或者其他液体时,增加此限制并不影响仿真的物理适用性。
定义流体的速度场u(x,t)和压力场p(x,t),如果已知在初始时间t=0时的速度和压力,那么二维不可压缩流体在后继时刻的运动状态可以由Navier-Stokes方程来表示:
∂ u ∂ t = - ( u · ▿ ) u - 1 ρ ▿ p + v ▿ 2 u + F - - - ( 1 )
▿ · u = 0 - - - ( 2 )
其中
Figure G2008101627819D00063
表示速度u对时间t的变化率,
Figure G2008101627819D00064
表示梯度算子,ρ表示流体的密度,v为粘度,而F指的是作用于流体的外力。公式(1)等号右侧的四项都是加速度,物理意义从左至右对应如下:
Figure G2008101627819D00071
表示水平对流,水平对流的物理意义在于流体的速度使其将置于其中的各种物质(如颜料等)搬运到其他位置;
Figure G2008101627819D00072
表示压力,压力的产生是由于流体分子的相互挤压,对流体施加的外力并非瞬间传播到所有区间,而是由靠近外力的分子推挤远离外力的分子形成加速度,从而将作用力传播出去;
Figure G2008101627819D00073
表示扩散,不同的流体具有不同的粘稠度,粘度高的流体,流动时受到的阻力也比较大;F表示外部作用力,大理石纹理仿真中的外部作用力主要来自于添加颜料或搅动液体等动作。公式(1)等号左侧表示是速度随时间的变化,即速度场。
Navier-Stokes方程的第二个等式,即公式(2)称为连续性方程。其中
Figure G2008101627819D00074
表示速度场的散度,即速度u在x和y方向的偏导数之和。 ▿ · u = 0 的物理含义是,在流体内部任意一块子区域的边界上速度变化的总和为零。也就是说,公式(2)满足了之前关于流体不可压缩的假设。
给定初始和边界条件,Navier-Stokes方程能解析地计算,通过解Navier-Stokes方程得到二维运算域的速度场。
解Navier-Stokes方程实际上是二维运算域的速度场的求解或更新,随着时间的增长,逐步更新和累加速度场。速度场更新和累加的时间间隔即为步长δt,大小用户能够进行调整,一般实验中取0.025~0.1秒。)
每一次对速度场的求解或更新需要经过四步操作,对应Navier-Stokes方程的第一个等式右边的四项。仿真系统中的二维运算域的速度场的求解或更新方法步骤如下,为了求得在t时刻位置x的速度场u(x,t)。采用的是分步计算Navier-Stokes方程的第一个等式的方法。以下每一步都求解得到一个中间过程的速度场u(x,t),上一个步骤中求得的u(x,t)或者说u就作为下一个步骤的输入u。到第四个步骤,才得到最终的速度场u(x,t)。
1.速度场的水平对流是流体速度场传送其自身的过程。为了度量这一过程,我们将每个栅格单元看作一个粒子,分别对每个粒子的运动速度进行更新。显式计算方法在速度u(t)或步长δt较大的情况下容易不稳定,我们采用隐式运算式来求解 ∂ u ∂ t = - ( u · ▿ ) u : u ( x , t + δt ) = u ( x - u ( x , t ) δt , t ) . 具体来说,为了得到点x位置在t+δt时刻的速度值u(x,+δt),沿着它的运动轨迹回溯到在δt时间之前即t时刻的位置点x′,并将点x′处的速度拷贝到x,就是u(x,t+δt)。x′位置所在栅格位置的准确速度通过对最接近它的四个单元格进行线性插值得到,最后求解所有栅格在t时刻的速度,得到速度场u(x,t)。
2.式(1) ∂ u ∂ t = - ( u · ▿ ) u - 1 ρ ▿ p + v ▿ 2 u + F 中的粘性扩散项
Figure G2008101627819D00082
可以单独表示成为一个偏微分方程 ∂ u ∂ t = v ▿ 2 u . 类似于水平对流,隐式解法为: ( I - vδt ▿ 2 ) u ( x , t + δt ) = u ( x , t ) , 其中I是单位矩阵。这类方程被归类于泊松方程。泊松方程指的是具有Ax=b形式的矩阵方程,其中x为未知数矢量,b为常数矢量。这里, A = ( I - v δt ▿ 2 ) , b=u(x,t+δt),x=u(x,t),其中
Figure G2008101627819D00086
为拉普拉斯算子,其定义为: ▿ 2 u = ∂ 2 u ∂ x 2 + ∂ 2 u ∂ y 2 . 本发明模型采用的正方格栅格单元在两个维度上是等长的。那么当指定该长度为1时,拉普拉斯算子可离散化为下面的表达形式:
▿ 2 u i , j = u i + 1 , j - 2 u i , j + u i - 1 , j ( δx ) 2 + u i , j + 1 - 2 u i , j + u i , j - 1 ( δy ) 2
= u i + 1 , j + u i - 1 , j + u i , j + 1 + u i , j - 1 - 4 u i , j
其中下标i和j分别表示栅格的行、列坐标,经过重新组合,得到下面的式子: u i , j ( k + 1 ) = b i , j - β ( u i - 1 , j ( k ) + u i + 1 , j ( k ) + u i , j - 1 ( k ) + u i , j + 1 ( k ) ) α , 其中 b i , j = u i , j ( k ) , α=1+4vδt,β=-vδt。这个式子的求解一般采用作雅各比迭代法,即从最初对解的猜测u(0)开始,在每一步k算出一个改良了的解u(k),逐渐地逼近正确的结果。
如前所述,泊松方程的标准解法一般是从一个近似解开始,以一系列的雅各比迭代逐步对其进行改进,用前一次迭代的结果作为下一次的输入,不断逼近精确的解。作为优化,本发明则采纳了另一种收敛更快的V-cycle多栅算法。用多栅算法解一个形如A(h)x=b(h)的泊松方程,上标k表求解的第k步。求解过程仍然是从对解的近似估计开始,依次分为如下几步:
a.在最精细的栅格,即原始栅格上进行数次预处理,获得一个初期解x(h)
b.求出各个栅格单元当前的余数值r(h)=b(h)-A(h)x(h)
c.将r(h)余数值投射到粗糙一级的栅格上,成为b(2h)。该栅格对应的泊松方程为A(2h)x=b(2h),其分辨率只有原始栅格的1/4大小;
d.重复1-3的过程,反复递归直到某个最粗糙的栅格上(假设其为第n级栅格)。此时,对当前栅格运用雅各比迭代法解方程A(nh)x=b(nh),得到近似解x(nh)
e.将x(nh)按与前面相反的顺序,即由最粗糙的栅格向最精细的栅格逐次向高分辨率级别插值,当到达最高级别,即我们定义的最精细的一层格子时就成为最后的解。
3.根据式子 ∂ u ∂ t = F , 施加外力只要直接把外力叠加到当前的速度上。添加外力的方向为搅动液体时经过路径的切线方向,而力的大小取决于用户在仿真窗口预先设定的定值。当在初始时刻向基底液中加入颜料的时候,虽然用户并没有“搅动”液体,但先滴入或倾倒的液滴会被后滴下或倾倒入的液滴挤到一边,也可能后者刚好滴在或者倾倒在前者的内部而迫使其向四周蔓延。为了真实地再现这些效果,在每次滴入或倾倒入液体时,赋给滴入或倾倒入的液体内部范围内的所有粒子一个从中心指向外的初始作用力,这个力的大小为一个常量,由用户在仿真窗口预先设定的定值,缺省设置为1。赋值给 ∂ u ∂ t = F 中的F的大小和用户设定的力成正比。同时要根据窗口的大小和用户鼠标移动的距离缩放。
4.经过上述的三个步骤得到了一个新的速度场记为w,这个速度场是不符合连续性方程的,也就是说,w是发散的。求解速度场的最后一步操作,就是将w转化成为一个无发散的速度场。Helmholtz-Hodge分解定理中指出,任何一个矢量场都可以被分解成为另外两个矢量场的和,其中一个为无发散的矢量场,另一个为标量场的梯度,即 w = u + ▿ p . 其中的p对应于Navier-Stokes方程中的压力场,只要求得压力场p,从w中减去压力梯度
Figure G2008101627819D00094
,就能得到我们需要的无发散速度场u。
应用梯度算子到等式 w = u + ▿ p , 得到 ▿ · w = ▿ · ( u + ▿ p ) = ▿ · u + ▿ 2 p . 因为Navier-Stokes方程2中规定 ▿ · u = 0 , 上式简化为 ▿ 2 p = ▿ · w .
Figure G2008101627819D00099
是拉普拉斯算子。该方程也是Ax=b形式的泊松方程,其求解方法类似粘性扩散项 ∂ u ∂ t = v ▿ 2 u 的求解。
在初始情况下,各个栅格的速度和压力都被置为零。为了制作用于无缝拼贴的大理石纹理,系统仿真时采用周期性的边界条件:运算域任一边界上的速度或压力运算域中与该边界对称的边界的速度或压力相等。形象的说,液体从碟子的右方或上方“流出”后,会对应地从左方或下方再度“流入”碟子,反之亦然。
通过二维流体动力学仿真,我们得到了流体的速度场,然后将仿真结果转化成为可视的大理石纹理图案。首先定义一个新的“场”,即密度场,用以表示置于流场中的彩色颜料。密度场是一个标量场(或数个标量场的集合),用符号d(x,t)来表示。密度场仅仅被流体带动,而并不影响流体本身的流动方式。密度场在计算机中的实际表示方法可以有很多种。这里,我们把一个M×N二维运算域的密度场的红绿蓝三个颜色分量的数据存放在一张分辨率为M×N的二维纹理中,也就是最终设计纹理的颜色。
对颜料运动的精确模拟必须包含色彩的水平对流,扩散,损耗等等性质。由于大理石纹釉工艺所用的基底液具有非常高的粘性,相对的颜料色彩的扩散率和损耗率就比较低,基本可以忽略不计。当只考虑水平对流时,控制颜料运动的公式为:
∂ d ∂ t = - ( u · ▿ ) d - - - ( 3 )
公式(3)里的u是前面经过四个步骤计算得到的速度场,这里要求出
Figure G2008101627819D00102
,也就是颜料浓度随着时间t的变化率。
解该方程的方法同速度场的水平对流是一样的,相比较速度场的水平对流方程 ∂ u ∂ t = - ( u · ▿ ) u , 将等式左边的u和等式右边第二个u用d替换即可,通过公式(3) ∂ d ∂ t = - ( u · ▿ ) d 的求解得到密度场d(x,t)。为了保证生成的纹理图案能够直接用于无缝拼贴,密度场的水平对流也必须满足周期性的边界条件,也就是说,运算域任一边界上的速度或压力运算域中与该边界对称的边界的速度或压力相等,即左右边界,上下边界的速度或压力值要相等。
用红绿蓝三个分量来表示密度场虽然能够表达出流体的色彩信息,其物理意义却不甚明显,因为不同的颜料实际上是不会混在一起的。为了将这些颜料区分开来,我们定义了一种多图层的密度场。该密度场由任意数量的图层组合而成(实际应用当中约8~16个图层就已足够),每个图层分别对应于用户指定的一种颜料色彩。图层的色彩信息仅仅需要储存一遍,而储存于纹理上的只是每种颜料的密度,因此一张纹理的四个通道可以表示四个图层。如果采用8个图层,那么需要2张纹理存放,2×4=8。每张纹理可以存放4个不同的分量,这里只利用其中的3个分量存放红绿蓝色,最后1个分量为空。最终的显示结果需要将所有图层的颜色和它们各自的密度值相乘然后求和 d red = Σ i = 0 n d i · l i red , d green = Σ i = 0 n d i · l i green , d blue = Σ i = 0 n d i · l i blue 其中,dred,dgreen,dblue表示最终颜料红绿蓝三种分量的值;di表示第i种颜料的密度;li red,li green,li blue分别表示第i种颜料红色,绿色,蓝色的分量。色彩的分别存储直接带来的益处就是,用户可以轻易改变任意图层上的显示颜色,甚至于当对一幅设计好的大理石纹理的配色方案不满意时,也可以随时对其进行调整。
III.仿真系统通过图像锐化方法得到图案更加清晰鲜明的大理石纹理图案;
随着颜料在基底液中的流动,颜料的扩散会使得图案越来越模糊。为了保证大理石纹釉作品清晰鲜明的品质,选择MacCormack算法,用非物理的方法来高效的维护图案的清晰属性。
在真实的大理石纹釉工艺中,牛胆汁常常被添加到颜料中以在其表面形成脂肪层,从而使各种色彩不至于混和到一起。这是保证大理石纹釉作品清晰鲜明的品质的一个重要因素。要对其进行精确的仿真,必须建立表面张力模型,并考虑不同材料之间的相互作用,这种纯仿真的方式非常耗时,并且利用计算机模拟结果不稳定。作为替代,我们选择了本文这种提高计算机数值计算精度,降低颜料扩散损失的非物理的大理石花纹纹理锐化技术来维护图案的清晰属性。
前面在求解流体速度场u(x,t)和密度场d(x,t)的水平对流方程时,我们采用隐式方法线性插值得到方程的解。而我们知道,线性插值只能达到一阶精度,本系统中导致模糊的最主要原因是由于纹理插值引起的平滑过渡。因此,我们采用MacCormack算法来求得更高精度的解。为了降低程序复杂性和时间复杂性,我们并不修改其隐式求解方法。以密度场水平对流方程d(x,t)求解为例,假设点x在t+δt密度值由t时刻的值dt推断出:dt+δt=L(u,dt),公式中的u就是前面求得的速度场。那么dt的另外一种计算方法为dt′=L(-u,dt+δt)=L(-u,L(u,dt))。在理想状态下自然有dt=dt′。在误差存在的情况下,由t时刻向前推算t+δt时刻,再向后推算(t+δt)-δt时刻的密度值,积累二倍误差2e。考虑误差e,修正点x在t+δt密度值 d t + δt = L ( u , d t ) + 1 2 ( d t - L ( - u , L ( u , d t ) ) ) . 通过修正的大理石花纹纹理得到了锐化,纹理图案显得更加清晰。
3)仿真系统采用无缝拼接纹理技术对大理石纹理图案进行处理,最终能够得到大张的无缝循环大理石纹理图案。
无缝拼接纹理技术是指在水平和垂直方向上,重叠部分左右或者上下方向的图案,通过比对颜色相似性和纹理裁剪技术,将两边接合在一起,制作无缝循环大理石纹理,拼接生成的大张无缝循环大理石纹理可以应用于装饰。

Claims (5)

1.一种基于GPU的实时大理石纹理仿真方法,包括设定仿真窗口,在仿真窗口中执行以下步骤:
1)设定仿真系统中用于大理石纹理制作的二维运算域和基底液的属性;
2)在仿真系统中设计大理石纹理图案
a.用户输入一幅已经创作好的图像作为基本图样或往基底液中添加各种颜色的颜料生成基本图样;
添加颜料包括将各种颜色的颜料滴入或者倾倒入基底液;
b.在仿真系统的二维运算域内进行一系列操作使仿真系统执行相应的算法来设计大理石纹理图案;
在仿真系统的二维运算域内进行一系列操作使仿真系统执行相应的算法来设计大理石纹理图案是指:仿真系统通过二维流体动力学进行仿真,得到二维运算域中的基底液的无发散速度场u(x,t),用户在仿真系统的二维运算域内添加颜料或拖曳鼠标以搅动基底液使基底液的无发散速度场u(x,t)产生变化更新,变化更新后的基底液的无发散速度场u(x,t)带动颜料的多图层的密度场流动,制作用户想表达的大理石纹理;
c.仿真系统通过图像锐化方法得到图案更加清晰鲜明的大理石纹理图案;
3)采用无缝拼接纹理技术对大理石纹理图案进行处理,最终能够得到大张的无缝循环大理石纹理。
2.根据权利要求1所述的基于GPU的实时大理石纹理仿真方法,其特征在于:所述的步骤1)中所述的二维运算域是一个长为M个单位长度,宽为N个单位宽度的方形栅格上,栅格内部由M×N个正方形单元格构成,每个单元格的大小由用户在初始的时候设定;
基底液的属性包括颜色以及基底液流体的粘稠度。
3.根据权利要求1所述的基于GPU的实时大理石纹理仿真方法,其特征在于:所述的步骤2)的a步骤中,
往基底液中滴入各种颜色的颜料是指将利用系统提供的颜料添加工具设定半径的圆形液滴滴入到基底液中;
往基底液中倾倒入各种颜色的颜料是指利用系统提供的颜料添加工具连续倾倒涂抹颜料到基底液中。
4.根据权利要求1所述的基于GPU的实时大理石纹理仿真方法,其特征在于:所述的步骤2)的c步骤中仿真系统通过图像锐化方法得到图案更加清晰鲜明的大理石纹理图案选择MacCormack隐式算法,用非物理的方法维护图案的清晰属性。
5.根据权利要求1所述的基于GPU的实时大理石纹理仿真方法,其特征在于:所述的步骤3)的无缝纹理拼接技术是指在水平和垂直方向上,重叠部分左右或者上下方向的图案,通过找到相似的图案,进行拼接,再裁剪掉不相似的部分,得到最终的无缝循环纹理。
CN2008101627819A 2008-12-10 2008-12-10 一种基于gpu的实时大理石纹理仿真系统 Expired - Fee Related CN101477693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101627819A CN101477693B (zh) 2008-12-10 2008-12-10 一种基于gpu的实时大理石纹理仿真系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101627819A CN101477693B (zh) 2008-12-10 2008-12-10 一种基于gpu的实时大理石纹理仿真系统

Publications (2)

Publication Number Publication Date
CN101477693A CN101477693A (zh) 2009-07-08
CN101477693B true CN101477693B (zh) 2011-09-07

Family

ID=40838401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101627819A Expired - Fee Related CN101477693B (zh) 2008-12-10 2008-12-10 一种基于gpu的实时大理石纹理仿真系统

Country Status (1)

Country Link
CN (1) CN101477693B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833777B (zh) * 2010-03-23 2012-08-22 浙江大学 基于数学函数的实时的大理石纹釉图案生成方法
CN103268627B (zh) * 2013-05-24 2016-01-20 浙江大学 一种智能手机平台上的大理石纹釉纹理的生成方法
CN108288287B (zh) * 2018-01-16 2021-08-06 合肥工业大学 一种基于Power图的瓷砖纹理生成方法
CN109767384B (zh) * 2018-11-29 2023-01-06 四川大学 一种制作无缝拼贴图案模拟荔枝纹皮革表面的方法
CN112417570A (zh) * 2020-12-03 2021-02-26 杭州群核信息技术有限公司 一种连纹砖铺贴设计方法、系统和计算机设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
D. Weiskopf.Dye AdvectionWithout the Blur: A Level-Set Approach for.《EUROGRAPHICS》.2004,第23卷(第3期),479-488. *
J. Chen,N. Lobo.Toward Interactive-Rate Simulation of.《Graphical Models and Image Processing》.1995,第57卷(第2期),107-116. *
Michael Kass,Gavin Miller.Rapid, Stable Fluid Dynamics for Computer Graphics.《Computer Graphics》.1990,第24卷(第4期),49-57. *
Ruyam Acar,Pierre Boulanger.Digital Marbling: A Multiscale Fluid Model.《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》.2006,第12卷(第4期),600-614. *

Also Published As

Publication number Publication date
CN101477693A (zh) 2009-07-08

Similar Documents

Publication Publication Date Title
McNamara et al. Fluid control using the adjoint method
CN101477693B (zh) 一种基于gpu的实时大理石纹理仿真系统
CN111127596B (zh) 一种基于增量Voronoi序列的分层油画笔刷绘制方法
Zboinska Influence of a hybrid digital toolset on the creative behaviors of designers in early-stage design
Zhang et al. Modeling Chinese calligraphy reliefs from one image
Kang et al. A unified scheme for adaptive stroke-based rendering
Hsu et al. Autocomplete element fields
CN105260987A (zh) 利用专用分形软件设计扎染图案的方法
Jin et al. Computer-generated marbling textures: a GPU-based design system
Igarashi et al. Computational design of iris folding patterns
Liu Application of 3D printing technology in the production of modern complex structure sculpture
Adzhiev et al. Augmented sculpture: Computer ghosts of physical artifacts
Zhao et al. Artistic Style Analysis of Root Carving Visual Image Based on Texture Synthesis
Herman et al. Printmaking, puzzles, and studio closets: Using artistic metaphors to reimagine the user interface for designing immersive visualizations
CN107679296A (zh) 墙面铺贴涂饰系统、涂饰方法、电子设备及计算机程序产品
Liu et al. A computational approach to digital hand-painted printing patterns on cloth
Akgun The digital art of marbled paper
Ticona et al. Phys-sketch: Sketching 3D dynamic objects in immersive virtual reality
Yuan et al. A case study analysis of clothing shopping mall for customer design participation service and development of customer editing user interface
Yin et al. HUA: an interactive calligraphy and ink-wash painting system
Lu et al. Solid mathematical marbling
Wang Analysis on the Practical Operation Mode and Innovative Application of 3DMAX in Interior Space Design
CN106023292B (zh) 一种基于数学函数的实时的大理石体纹理生成方法
CN103460252B (zh) 从2d草图重建3d表面的方法
CN101577008A (zh) 一种快速且精确的大理石纹釉生成方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110907

Termination date: 20151210

EXPY Termination of patent right or utility model