CN103473123B - 基于gpu的实时毛笔墨水扩散模型并行实现方法 - Google Patents

基于gpu的实时毛笔墨水扩散模型并行实现方法 Download PDF

Info

Publication number
CN103473123B
CN103473123B CN201310379037.5A CN201310379037A CN103473123B CN 103473123 B CN103473123 B CN 103473123B CN 201310379037 A CN201310379037 A CN 201310379037A CN 103473123 B CN103473123 B CN 103473123B
Authority
CN
China
Prior art keywords
ink
random number
gpu
receiving area
real
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
CN201310379037.5A
Other languages
English (en)
Other versions
CN103473123A (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.)
Xi'an Anmeng Intelligent Technology Co ltd
Original Assignee
Northwestern Polytechnical University
Xian University of Posts and Telecommunications
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 Northwestern Polytechnical University, Xian University of Posts and Telecommunications filed Critical Northwestern Polytechnical University
Priority to CN201310379037.5A priority Critical patent/CN103473123B/zh
Publication of CN103473123A publication Critical patent/CN103473123A/zh
Application granted granted Critical
Publication of CN103473123B publication Critical patent/CN103473123B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Pens And Brushes (AREA)

Abstract

本发明公开了一种基于GPU的实时毛笔墨水扩散模型并行实现方法,用于解决现有毛笔墨水扩散模型实时性差的技术问题。技术方案是通过网格化受墨区域含墨顶点集合,建立受墨区域墨水量数据CPU‑GPU数据映射关系;利用一对纹理内存组交替读写的模式完成受墨区域墨水量求和,实现GPU并行运算的求和纯并行规约运算;采用基于Box‑Muller变换的方法生成高斯随机数,避免分支与循环操作干扰随机数生成流的效率;利用混合线性同余数周期扩展算法对生成的伪随机数进行周期扩展,解决同余数伪随机数周期受制于余数的问题。由于利用GPU对虚拟纸张受墨区域墨水扩散过程进行并行处理,提高了毛笔墨水扩散模型的实时性。

Description

基于GPU的实时毛笔墨水扩散模型并行实现方法
技术领域
本发明涉及一种实时毛笔墨水扩散模型并行实现方法,特别是涉及一种基于GPU的实时毛笔墨水扩散模型并行实现方法。
背景技术
墨水渲染本质上属于流体可视化范畴,包括云、可变形表面体(如布)、水分子流动等可视化模拟。墨水渲染的关键在于模拟复杂无序的墨水分子在纸张上的扩散,这种扩散现象在整个纸张的受墨区域并发、随机的进行,并且随着毛笔笔划在已受墨区域的重复、交错而愈加复杂。基于物理的流体模拟方法可以产生逼真的可视化效果,单从效果上讲,采用基于物理的流体模拟方法应该是最佳选择。但是,绘画系统中的墨水扩散要求实时实现,如果不能够实时,对于绘画系统这样的交互创作平台就失去了意义。而常规的基于物理流体模拟手段由于计算复杂性高,其渲染实现大多都是非实时、离线的,因此并不适用于实时系统需要。采用分子系统模型可以实现基于物理的墨水实时渲染,但是分子系统通常需要分子速度分量数据,在基于GPU的渲染实现中,分子系统中的速度分量信息处理以基于几何点的标准光栅化GPU渲染流方式处理,本质上并不易于实现。
发明内容
为了克服现有毛笔墨水扩散模型实时性差的不足,本发明提供一种基于GPU的实时毛笔墨水扩散模型并行实现方法。该方法通过网格化受墨区域含墨顶点集合,使得GPU以类似于CPU访问数组的方法访问纹理内存,建立受墨区域墨水量数据CPU-GPU数据映射关系,解决CPU-GPU数据交换问题;利用一对纹理内存组交替读写的模式完成受墨区域墨水量求和,实现GPU并行运算的求和纯并行规约运算问题;采用基于Box-Muller变换的方法生成高斯随机数,避免分支与循环操作干扰随机数生成流的效率;利用混合线性同余数周期扩展算法对生成的伪随机数进行周期扩展,解决传统同余数伪随机数周期受制于余数的问题。由于利用GPU对虚拟纸张受墨区域墨水扩散过程进行并行处理,使得毛笔绘画系统中最耗时、计算量最复杂的模块得以加速,可以提高毛笔墨水扩散模型的实时性。
本发明解决其技术问题所采用的技术方案是:一种基于GPU的实时毛笔墨水扩 散模型并行实现方法,其特点是采用以下步骤:
步骤一、以纸张受墨区域点的集合作为GPU处理的输入。将虚拟纸张以纹理的方式加载至纹理内存,纹理上的每一个纹素对应虚拟纸张的一个像素。纹理内存的每个纹素具有三个分量,分别对应虚拟纸张点的坐标、当前墨水量、当前连通性,形成虚拟纸张与纹理的映射关系。然后进入第一个顶点处理程序核Vertex program,对虚拟纸张受墨区域进行墨水量求和。
步骤二、求和处理结束后进入生成受墨区域漫步所需的高斯随机数集合顶点处理程序核。随机数生成运算核采用基于传统均匀分布随机数到高斯随机数的Box-Muller变换方法。Box-Muller变换如下式所示
r 0 = sin ( 2 πu 0 ) - 2 log ( u 1 ) ,
式中,Box-Muller变换将两个均匀分布的随机数u0,u1变换为高斯分布的随机数r0,r1
运算核中的均匀分布随机数生成算法采用混合线性同余数随机数生成算法。
同余数伪随机数生成器的变换函数为
xn+1=(axn+c)modm
函数中的同余数m决定了生成器生成随机数最大周期。对于一个32位的整数,其周期为232。使用混合线性同余数伪随机数生成算法,将多个的线性同余数生成器合并,将伪随机数生成算法的生成周期扩大为单个线性伪随机数生成器周期之积。
步骤三、对于每一个网格依据随机选择的方向进行漫步并生成新的含墨区域含墨顶点集合。依据受墨区域墨水量是否饱和平衡决定是继续新的漫步还是输出至帧缓存显示。
步骤四、对新的含墨区域光栅化后输出至帧缓存并显示。
本发明的有益效果是:该方法通过网格化受墨区域含墨顶点集合,使得GPU以类似于CPU访问数组的方法访问纹理内存,建立受墨区域墨水量数据CPU-GPU数据映射关系,解决CPU-GPU数据交换问题;利用一对纹理内存组交替读写的模式完成受墨区域墨水量求和,实现GPU并行运算的求和纯并行规约运算问题;采用基于Box-Muller变换的方法生成高斯随机数,避免分支与循环操作干扰随机数生成流的效率;利用混合线性同余数周期扩展算法对生成的伪随机数进行周期扩展,解决传统同 余数伪随机数周期受制于余数的问题。由于利用GPU对虚拟纸张受墨区域墨水扩散过程进行并行处理,使得毛笔绘画系统中最耗时、计算量最复杂的模块得以加速,提高了毛笔墨水扩散模型的实时性。
下面结合附图和具体实施方式对本发明作详细说明。
附图说明
图1是本发明方法的流程图。
图2是本发明方法墨水量求和并行规约运算核双缓冲区交换并行处理流模式示意图。
图3是本发明方法单个墨水分子扩散方向选择示意图。其中图3a是单个墨水分子在Lattice空间的分布示意图;图3b是单个墨水分子的8个临近网格方向示意图。
具体实施方式
参照图1-3。本发明基于GPU的实时毛笔墨水扩散模型并行实现方法具体包括以下步骤:
1、以纸张受墨区域点的集合作为GPU处理的输入。将虚拟纸张网格化,并以纹理的方式加载至纹理内存,纹理内存的每一个单位称为纹素(Texel),纹理上的每一个纹素对应虚拟纸张的一个像素。纹理内存的每个纹素具有3个分量,分别对应虚拟纸张点的坐标、当前墨水量、当前连通性,形成虚拟纸张与纹理的映射关系。然后进入第一个顶点处理程序核(Vertex program),对虚拟纸张受墨区域进行墨水量求和。
GPU流处理模式下,墨水量求和规约运算通过一对纹理缓存交替读写操作实现。在每一次受墨区域求和规约运算中,运算核对受墨区域点集合施加一次四元素向量加运算,并将结果存入结果缓存。重复以上过程直至输出为一个单元素数值为止。在以上处理过程中,共需处理ο(log n)次即可完成整个受墨区域墨水量求和运算,其中n为受墨区域点集合中所有元素的个数。
2、求和处理结束后进入生成受墨区域漫步所需的高斯随机数集合顶点处理程序核。本发明随机数生成运算核采用基于传统均匀分布随机数到高斯随机数的Box-Muller变换方法。Box-Muller变换如下式所示
r 0 = sin ( 2 πu 0 ) - 2 log ( u 1 ) ,
式中,Box-Muller变换将两个均匀分布的随机数u0,u1变换为高斯分布的随机数r0,r1。 由变换公式可以明显看出,整个变换过程不存在分支和循环。由于GPU并行处理流对于分支和循环是高度敏感的,因此,Box-Muller变换非常适合于基于GPU实现的算法。
运算核中的均匀分布随机数生成算法采用混合线性同余数随机数(Hybrid Linear Congruential Generator)生成算法。线性同余数生成器是最古老也是最知名的伪随机数生成器,具有简单易实现的优点。其主要缺点是生成的随机数的周期受制于余数。
同余数伪随机数生成器的变换函数为
xn+1=(axn+c)modm
函数中的同余数m决定了生成器生成随机数最大周期。对于一个32位的整数,其周期仅为232。为了克服线性同余数生成器周期小的缺点,使用混合线性同余数伪随机数生成算法,将多个的线性同余数生成器合并,从而将伪随机数生成算法的生成周期扩大为单个线性伪随机数生成器周期之积。经过测试,该方法生成的随机数具有较好的统计质量。如下混合线性同余数伪随机数生成算法的代码片段,采用四个独立的32位线性同余数伪随机数进行混合,可以将随机数生成周期大约拓宽至2121
3、然后对于每一个网格依据随机选择的方向进行漫步并生成新的含墨区域含墨顶点集合。其具体算法描述如下:
(1)依据受墨区域墨水量求和结果确定受墨区域边界,并分配随机数给边界含墨网格;
(2)对每一个含墨边界网格的随机数取整至1,2,3,4,5,6,7,8之一,分别对应该含墨边界网格的八个临近网格。取整后的临近网格即该含墨边界网格的拟漫步目标。
(3)对所有的拟漫步临近网格,如果临近网格非含墨网格或含墨量未达饱和平衡,则向该网格分配墨水,实现一次漫步。
(4)重新新的受墨区域墨水量求和运算。
(5)重复步骤1至4,直至整个受墨区域墨水量饱和平衡。
4、对新的含墨区域光栅化后输出至帧缓存并显示。

Claims (1)

1.一种基于GPU的实时毛笔墨水扩散模型并行实现方法,其特征在于包括以下步骤:
步骤一、以纸张受墨区域点的集合作为GPU处理的输入;将虚拟纸张以纹理的方式加载至纹理内存,纹理上的每一个纹素对应虚拟纸张的一个像素;纹理内存的每个纹素具有三个分量,分别对应虚拟纸张点的坐标、当前墨水量、当前连通性,形成虚拟纸张与纹理的映射关系;然后进入第一个顶点处理程序核Vertex program,对虚拟纸张受墨区域进行墨水量求和;
步骤二、求和处理结束后进入生成受墨区域漫步所需的高斯随机数集合顶点处理程序核;随机数生成运算核采用基于传统均匀分布随机数到高斯随机数的Box-Muller变换方法;Box-Muller变换如下式所示
r 0 = s i n ( 2 πu 0 ) - 2 l o g ( u 1 ) ,
r 1 = c o s ( 2 πu 0 ) - 2 l o g ( u 1 )
式中,Box-Muller变换将两个均匀分布的随机数u0,u1变换为高斯分布的随机数r0,r1
运算核中的均匀分布随机数生成算法采用混合线性同余数随机数生成算法;
同余数伪随机数生成器的变换函数为
xn+1=(axn+c)modm
函数中的同余数m决定了生成器生成随机数最大周期;对于一个32位的整数,其周期为232;使用混合线性同余数伪随机数生成算法,将多个的线性同余数生成器合并,将伪随机数生成算法的生成周期扩大为单个线性伪随机数生成器周期之积;
步骤三、对于每一个网格依据随机选择的方向进行漫步并生成新的含墨区域含墨顶点集合;依据受墨区域墨水量是否饱和平衡决定是继续新的漫步还是输出至帧缓存显示;
步骤四、对新的含墨区域光栅化后输出至帧缓存并显示。
CN201310379037.5A 2013-08-27 2013-08-27 基于gpu的实时毛笔墨水扩散模型并行实现方法 Expired - Fee Related CN103473123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310379037.5A CN103473123B (zh) 2013-08-27 2013-08-27 基于gpu的实时毛笔墨水扩散模型并行实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310379037.5A CN103473123B (zh) 2013-08-27 2013-08-27 基于gpu的实时毛笔墨水扩散模型并行实现方法

Publications (2)

Publication Number Publication Date
CN103473123A CN103473123A (zh) 2013-12-25
CN103473123B true CN103473123B (zh) 2016-09-07

Family

ID=49797992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310379037.5A Expired - Fee Related CN103473123B (zh) 2013-08-27 2013-08-27 基于gpu的实时毛笔墨水扩散模型并行实现方法

Country Status (1)

Country Link
CN (1) CN103473123B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10331331B2 (en) * 2014-11-07 2019-06-25 Samsung Electronics Co., Ltd. Display device and method of controlling display device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1624643A (zh) * 2003-12-03 2005-06-08 微软公司 墨水的缩放文本替换
US7647214B2 (en) * 2004-12-27 2010-01-12 Seoul National University Industry Foundation Method for simulating stable but non-dissipative water
CN102254333A (zh) * 2011-07-25 2011-11-23 浙江大学 基于图像的水墨画画风图像生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050243117A1 (en) * 2004-04-28 2005-11-03 Jiun-Der Yu Divergence filters on quadrilateral grids for ink-jet simulations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1624643A (zh) * 2003-12-03 2005-06-08 微软公司 墨水的缩放文本替换
US7647214B2 (en) * 2004-12-27 2010-01-12 Seoul National University Industry Foundation Method for simulating stable but non-dissipative water
CN102254333A (zh) * 2011-07-25 2011-11-23 浙江大学 基于图像的水墨画画风图像生成方法

Also Published As

Publication number Publication date
CN103473123A (zh) 2013-12-25

Similar Documents

Publication Publication Date Title
Yan et al. A survey of blue-noise sampling and its applications
CN102157008B (zh) 一种大规模虚拟人群实时绘制方法
Diziol et al. Robust real-time deformation of incompressible surface meshes
Morrical et al. Accelerating unstructured mesh point location with RT cores
CN102831275B (zh) 一种3d流体的仿真方法及系统
CN103310484A (zh) 一种基于cuda架构加速ct图像重建的方法
CN104299259A (zh) 一种动态插值方法和海面场景生成方法
CN103279972A (zh) 一种基于kd树的并行多维自适应采样与重构方法
Zafar et al. GPU random numbers via the tiny encryption algorithm
CN106530208A (zh) 一种基于gpu的任意多边形相交面积计算方法
CN110298909B (zh) 一种基于三维元胞自动机的风化现象模拟方法
CN103473123B (zh) 基于gpu的实时毛笔墨水扩散模型并行实现方法
Xiang et al. Parallel and accurate Poisson disk sampling on arbitrary surfaces
CN103838569A (zh) 对并行确定性一致光传输模拟的分块式屏幕空间样本加扰
CN103839287A (zh) 一种用湍流方程丰富火焰模拟细节的方法
CN114373058A (zh) 一种基于虚幻引擎的海面网格动态划分及高度场生成方法
CN102214366A (zh) 三维点采样数据高性能渲染方法
CN113139216B (zh) 一种数字化拓印方法、装置及计算机设备
CN102819630B (zh) 八叉树粗糙网格投影的快速的烟模拟方法
Acuña et al. Real-time tsunami simulation on multi-node GPU cluster
CN104483670B (zh) 基于gpu的合成孔径雷达回波仿真方法
Museth et al. Blobtacular: surfacing particle system in" Pirates of the Caribbean 3".
Ojeda Contreras Efficient algorithms for the realistic simulation of fluids
Taylor et al. Prime gradient noise
Sakamoto et al. Sorting-free pre-integrated projected tetrahedra

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
TR01 Transfer of patent right

Effective date of registration: 20190225

Address after: 710075 Oak Constellation 1 Building 2 Unit 20301, North of Science and Technology Fifth Road, Xi'an High-tech Zone, Shaanxi Province

Patentee after: Xi'an Xu Yao Network Technology Co.,Ltd.

Address before: 710061 No. 563 South Changan Road, Shaanxi, Xi'an

Co-patentee before: Northwestern Polytechnical University

Patentee before: Xi'an University of Posts & Telecommunications

TR01 Transfer of patent right
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190424

Address after: 710000 Unit 2, Unit 3, Building 5, No. 2, Hongpu South Road, Yanta District, Xi'an City, Shaanxi Province

Patentee after: Zhao Feng

Address before: 710075 Oak Constellation 1 Building 2 Unit 20301, North of Science and Technology Fifth Road, Xi'an High-tech Zone, Shaanxi Province

Patentee before: Xi'an Xu Yao Network Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190917

Address after: 710075 Room 1005, Tongda International Building, 41 Tangyan Road, Xi'an High-tech Zone, Shaanxi Province

Patentee after: Xi'an Anmeng Intelligent Technology Co.,Ltd.

Address before: 710000 Unit 2, Unit 3, Building 5, No. 2, Hongpu South Road, Yanta District, Xi'an City, Shaanxi Province

Patentee before: Zhao Feng

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160907