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
territory
random number
covered area
gpu
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
EP3217360B1 (en) * 2014-11-07 2022-04-20 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
CN104050626B (zh) 用于将基元光栅化的方法、系统和存储介质
CN102402791B (zh) 一种基于gpu的三维流体模拟方法
CN108701235B (zh) 在计算系统中执行抗混叠操作
CN103279633B (zh) 基于扩散加权磁共振数据的脑纤维三维显示方法
CN102902847B (zh) 基于组合图元的输电网单线图自动设计方法
Zhang et al. Real-time volume rendering in dynamic lighting environments using precomputed photon mapping
CN103077547A (zh) 基于cuda架构的ct在线重建与实时可视化方法
Zafar et al. GPU random numbers via the tiny encryption algorithm
CN103871019B (zh) 用于处理路径图像以促进光栅化的方法和设备
DE102020108526A1 (de) Adaptive pixelabtastreihenfolge für zeitlich dichtes rendern
Marrs et al. Real-Time View Independent Rasterization for Multi-View Rendering.
CN103473123B (zh) 基于gpu的实时毛笔墨水扩散模型并行实现方法
Dokter et al. Hierarchical rasterization of curved primitives for vector graphics rendering on the GPU
Rossinelli et al. Vortex methods for incompressible flow simulations on the GPU
CN101894383A (zh) 射线追踪的数字重建影像技术的加速方法
Wang et al. An improving algorithm for generating real sense terrain and parameter analysis based on fractal
CN113139216B (zh) 一种数字化拓印方法、装置及计算机设备
CN109829232A (zh) 基于随机森林算法的分层布料模拟方法
JP2008299642A (ja) 図形描画装置
CN105224325B (zh) 渲染方法和装置
CN105138819B (zh) 空间计算域计算强度表面生成方法
CN103440684A (zh) 一种将球谐光照技术应用于面绘制的方法
Lu et al. Solid mathematical marbling
Karch et al. Dye-based flow visualization
Loop Hardware Subdivision and Tessellation of Catmull-Clark Surfaces

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
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

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

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

Granted publication date: 20160907

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