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