CN105574903A - 一种基于gpu加速的几何纹理合成方法及系统 - Google Patents
一种基于gpu加速的几何纹理合成方法及系统 Download PDFInfo
- Publication number
- CN105574903A CN105574903A CN201510920054.4A CN201510920054A CN105574903A CN 105574903 A CN105574903 A CN 105574903A CN 201510920054 A CN201510920054 A CN 201510920054A CN 105574903 A CN105574903 A CN 105574903A
- Authority
- CN
- China
- Prior art keywords
- geometric error
- error modeling
- geometry
- sample
- geometric
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/16—Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种基于GPU加速的几何纹理合成方法,该方法包括:对样本几何纹理Min和输出几何纹理Mout进行网格化处理;确定几何纹理的待合成区域;采用GPU并行处理方法在所述样本几何纹理Min中查找最佳匹配几何子块mout;采用GPU并行处理方法对所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何对齐;采用GPU并行处理方法对所述匹配区域Pout与重叠区域Pin∈mout进行几何变形;对经过所述几何变形后的所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何合并。本发明通过对样本几何纹理进行几何子块细分,以几何子块作为合成的基本单元,使合成结果质量更高,通过采用GPU并行处理方法降低最佳匹配几何子块查找和几何子块拼接的计算复杂度,提升了几何纹理合成速度。
Description
技术领域
本发明涉及纹理合成领域,尤其涉及一种基于GPU加速的几何纹理合成方法及系统。
背景技术
纹理合成和纹理映射是计算机虚拟现实的主要技术,它能够在不增加场景绘制复杂度、不显著增加计算量的前提下模拟物体表面的颜色细节或几何细节,从而大幅度提高场景的真实感。二维纹理合成是采用图像纹理来表示物体的表面细节,这类方法能够取得较快的合成速度,并且内存占用较小。但是,二维纹理合成不支持遮挡、阴影、轮廓等重要的效果。因此,近几年研究者们提出了采用几何纹理代替图像纹理来表示物体的表面细节,从而进一步提高绘制的精度。
几何纹理相较于二维纹理,具有更丰富、细致的表现能力,随着显卡硬件的提升,几何纹理在虚拟现实技术中得到了大量应用。然而,几何纹理比图像纹理具有复杂的几何结构信息,其是由不规则拓扑连接的网格构成的。因此,几何纹理合成过程是高计算量、高存储占用和高耗时的,这使得需要考虑如何突破几何纹理合成过程中的计算瓶颈,减小内存占用等的问题。
现有的几何纹理合成方法中首先在用户指定大小的合成输出空间中找到种子区域(待合成区域);然后,通过元素匹配在种子区域中确定样本几何纹理的最佳放置位置;其次,通过元素对应使得放置在种子区域的样本几何纹理能够和该区域周围已合成区域建立对应关系;再次,通过元素变形将建立对应关系的区域在保持局部几何细节的同时进行几何对齐;最后,通过元素合并将元素对齐区域进行无缝拼接,从而使得几何纹理合成结果是平滑自然的。该方法在进行几何纹理合成时,该算法以输入的整个样本几何纹理作为每次拼接基本单位。因此,对于元素匹配及对应,块与块之间则需要在较大区域范围内进行几何结构对齐。而当几何结构无法对齐时,这些区域都将被删除,这将造成大量原始几何数据的丢失,使得样本几何纹理无法在合成过程中得到充分的利用。此外,由于样本几何纹理具有复杂的三维网格结构,因而在进展样本块最佳位置放置,以及样本块之间的对应、变形和拼接处理的计算量大,这使得几何纹理合成过程是非常耗时的。
现有的另外一种几何纹理合成方法包括两个主要过程:并行纹理块匹配过程和多通道优化过程。该方法使用方便,仅需要提供一幅小尺寸的皮肤纹理作为输入,即可在人体模型表面上快速地生成足任意够大尺寸的新的皮肤纹理,且能够获得高质量的纹理合成结果。该方法适用于合成人体模型表面的皮肤纹理,因而该方法的局限性较大;另一方面,由于映射到三维模型表面上的样本仍是二维纹理图像,因此,合成的三维表面纹理结果不支持遮挡、阴影、轮廓等重要的效果,因而无法真实地模拟物体表面的几何细节。
近年来,随着计算机硬件技术的飞速发展,图形处理单元(GraphicsProcessingUnit,GPU)的计算能力呈几何级数增长,这促使通用工程计算软件由CPU中央处理向CPU/GPU协同处理的方向发展。GPU具有出色图元运算能力、浮点计算能力、低能耗高带宽、可靠的并行架构以及灵活的可编程性,这为解决几何纹理合成中的计算瓶颈提供了可靠的现实基础。
发明内容
本发明所要解决的技术问题是:现有的几何纹理合成技术中纹理合成效率低及纹理合成质量差的问题。
为解决上述技术问题,本发明一方面提出了一种基于GPU加速的几何纹理合成方法,该方法包括:
对样本几何纹理Min和输出几何纹理Mout进行网格化处理;
确定待合成的几何纹理区域;
采用GPU并行处理方法在所述样本几何纹理Min中查找最佳匹配几何子块mout;
采用GPU并行处理方法对所述待匹配区域Pout与重叠区域Pin∈mout进行几何对齐;
采用GPU并行处理方法对所述匹配区域Pout与重叠区域Pin∈mout进行几何变形;
对经过所述几何变形后的所述待合成区域与所述匹配区域Pout与重叠区域Pin∈mout进行几何合并;
其中,Pin(t)∈mout为最佳匹配子块mout中的重叠区域Pin(t)。
可选地,所述对样本几何纹理Min和输出几何纹理Mout进行网格化处理,包括:
按样本几何纹理Min的长度lin和宽度win将样本几何纹理Min等分为网格Gridin={Xin,Yin,Cell};
按输出几何纹理Mout的长度lout和宽度wout将输出几何纹理Mout等分为网格Gridout={Xout,Yout,Cell};
其中Xin和Yin为Cell在Gridin的位置;Cell={V,F}为网格元内顶点数据和面片的集合,即为样本几何子块;样本几何纹理Min={Vin,Fin},其中Vin是顶点集合;Fin是面片集合;lin,win和hin表示分别表示Min的长度、宽度和高度;Xout和Yout为Cell在Gridout的位置;输出几何纹理Mout={Vout,Fout},其中Vout是顶点集合;Fout是面片集合;lout,wout和hout表示分别表示Mout的长度、宽度和高度。
可选地,所述确定待合成的几何纹理区域包括:
所述待合成的几何纹理区域为输出几何纹理Mout中所有未占用的样本几何子块Cell且周围相邻已占用的样本几何子块Cell数最多的样本几何子块Cell。
可选地,所述采用GPU并行处理方法在所述样本几何纹理Min中查找最佳匹配几何子块mout包括:
确定所述输出几何纹理Mout中的匹配区域Pout;
将匹配区域Pout沿水平方向或垂直方向以匹配区域Pout的宽度为单位在样本几何纹理Min进行平移,匹配区域Pout每次平移后与样本几何纹理Min重叠的区域标记为重叠区域Pin(t);
采用GPU并行处理方法确定匹配区域Pout与重叠区域Pin(t)的相似度误差E(t)最小的样本几何子块为最佳匹配几何子块mout;
mout是Pin(t)和与其相邻且与Cell同大小的样本几何子块组成。
可选地,所述采用GPU并行处理方法确定匹配区域Pout与重叠区域Pin(t)的相似度误差E(t)最小的样本几何子块为最佳匹配几何子块mout包括:
分别构建匹配区域Pout的顶点矩阵和面片矩阵
采用GPU并行处理方法获取顶点矩阵MV和面片矩阵MF乘积后得到相似度误差矩阵ME,
对相似度误差矩阵ME每行中具有最小值的元素进行累加求和,确定匹配区域Pout与重叠区域Pin(t)的相似度误差E(t)最小的样本几何子块为最佳匹配几何子块mout;
其中,m表示为匹配区域Pout中顶点的个数;n表示为重叠区域Pin(t)中面片的个数,ME中的第i行第j列元素即为匹配区域Pout的顶点到重叠区域Pin(t)中面片的相似度误差。
可选地,所述采用GPU并行处理方法对所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何对齐包括:
建立Pin(t)∈mout与所述匹配区域Pout的几何结构对齐关系集S;
根据所述相似度误差矩阵ME构建几何结构对齐矩阵MS;
采用CPU并行处理方法根据几何结构对齐矩阵MS对所述几何结构对齐关系集S进行优化;
根据优化后的几何结构对齐关系集对所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何对齐。
可选地,所述采用GPU并行处理方法对所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何变形包括:
计算匹配区域Pout和Pin(t)∈mout各个顶点的形变坐标,采用GPU并行处理方法对匹配区域Pout与重叠区域Pin(t)∈mout内各顶点进行变形处理。
可选地,所述对经过所述几何变形后的所述待匹配区域Pout与重叠区域Pin(t)∈mout进行几何合并包括:
采用基于GPU的二维GraphCut算法获取匹配区域Pout和重叠区域Pin(t)∈mout之间的最优拼接路径,将匹配区域Pout和重叠区域Pin(t)∈mout进行无缝平滑的合并。
本发明另一方法提出了一种基于GPU加速的几何纹理合成系统,该系统包括:
网格化处理单元,用于对样本几何纹理Min和输出几何纹理Mout进行网格化处理;
待合成区域确定单元,用于确定待合成的几何纹理区域;
最佳匹配几何子块查找单元,用于采用GPU并行处理方法在所述样本几何纹理Min中查找最佳匹配几何子块mout;
几何子块对齐单元,用于采用GPU并行处理方法对所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何对齐;
几何子块变形单元,用于采用GPU并行处理方法对所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何变形;
几何子块合并单元,用于对经过所述几何变形后的所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何合并。
可选地,所述网格化处理单元包括样本几何纹理网格化模块和输出几何纹理网格化模块;
所述样本几何纹理网格化模块,用于按样本几何纹理Min的长度lin和宽度win将样本几何纹理Min等分为网格Gridin={Xin,Yin,Cell};
所述输出几何纹理网格化模块,用于按输出几何纹理Mout的长度lout和宽度wout将输出几何纹理Mout等分为网格Gridout={Xout,Yout,Cell};
其中Xin和Yin为Cell在Gridin的位置;Cell={V,F}为网格元内顶点数据和面片的集合,即为样本几何子块;样本几何纹理Min={Vin,Fin},其中Vin是顶点集合;Fin是面片集合;lin,win和hin表示分别表示Min的长度、宽度和高度;Xout和Yout为Cell在Gridout的位置;输出几何纹理Mout={Vout,Fout},其中Vout是顶点集合;Fout是面片集合;lout,wout和hout表示分别表示Mout的长度、宽度和高度。
本发明提出的基于GPU加速的几何纹理合成方法及系统,通过对样本几何纹理进行几何子块细分,并以几何子块作为合成的基本单元,在进行元素匹配及对应时可以缩小几何结构对齐的区域,能够更好地控制内部元素离散分布样本在拼接处几何结构之间的距离,使得合成结果更加紧凑排列更自然。同时,由于缩小了几何结构对齐的区域,从而降低了拼接处局部变形程度,使得合成结果更平滑自然。通过采用GPU多线程并发技术处理最佳匹配几何子块查找过程和几何子块拼接(包括几何子块之间的对齐、变形和合并)中的海量运算,大大降低了最佳匹配几何子块查找和几何子块拼接的计算复杂度,大大提升了几何纹理合成速度。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明一个实施例基于GPU加速的几何纹理合成方法的流程示意图;
图2示出了本发明一个实施例的基于GPU加速的几何纹理合成方法的原理框架图;
图3示出了本发明一个实施例中给定的样本几何纹理的示意图;
图4示出了本发明一个实施例的样本几何纹理网格化的结果的示意图;
图5示出了本发明一个实施例的几何子块拼接结果的示意图;
图6示出了本发明一个实施例的基于GPU加速的几何纹理合成结果的示意图;
图7示出了本发明一个实施例的基于GPU加速的几何纹理合成系统的结构示意图。
具体实施方式
下面将结合附图对本发明的实施例进行详细描述。
图1示出了本发明一个实施例基于GPU加速的几何纹理合成方法的流程示意图。如图1-2所示,本实施例的基于GPU加速的几何纹理合成方法,包括:
S1:对样本几何纹理Min和输出几何纹理Mout进行网格化处理;
S2:确定待合成的几何纹理区域;
S3:采用GPU并行处理方法在所述样本几何纹理Min中查找最佳匹配几何子块mout;
S4:采用GPU并行处理方法对所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何对齐;
S5:采用GPU并行处理方法对所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何变形;
S6:对经过所述几何变形后的所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何合并。
本实施例的基于GPU加速的几何纹理合成方法,通过对样本几何纹理进行几何子块细分,并以几何子块作为合成的基本单元,在进行元素匹配及对应时可以缩小几何结构对齐的区域,能够更好地控制内部元素离散分布样本在拼接处几何结构之间的距离,使得合成结果更加紧凑排列更自然。同时,由于缩小了几何结构对齐的区域,从而降低了拼接处局部变形程度,使得合成结果更平滑自然。通过采用GPU多线程并发技术处理最佳匹配几何子块查找过程和几何子块拼接(包括几何子块之间的对齐、变形和合并)中的海量运算,大大降低了最佳匹配几何子块查找和几何子块拼接的计算复杂度,大大提升了几何纹理合成速度。
在一种可选的实施方式中,所述对样本几何纹理Min和输出几何纹理Mout进行网格化处理,包括:
按样本几何纹理Min的长度lin和宽度win将样本几何纹理Min等分为网格Gridin={Xin,Yin,Cell};
按输出几何纹理Mout的长度lout和宽度wout将输出几何纹理Mout等分为网格Gridout={Xout,Yout,Cell};
其中Xin和Yin为Cell在Gridin的位置;Cell={V,F}为网格元内顶点数据和面片的集合,即为样本几何子块;样本几何纹理Min={Vin,Fin},其中Vin是顶点集合;Fin是面片集合;lin,win和hin表示分别表示Min的长度、宽度和高度;Xout和Yout为Cell在Gridout的位置;输出几何纹理Mout={Vout,Fout},其中Vout是顶点集合;Fout是面片集合;lout,wout和hout表示分别表示Mout的长度、宽度和高度。
本发明的目的就是提供一种基于GPU加速的几何纹理合成方法。通过首先将样本几何纹理数据进行子块划分,以及根据子块在样本中的位置关系设计可重用样本顶点数据的数据结构,优化存储后达成降低内存占用率的目的。
图3示出了本发明一个实施例中给定的样本几何纹理的示意图。在实际应用中,给定一个包围盒大小为lin×win×hin的样本几何纹理Min={Vin,Fin},其中Vin是顶点集合;Fin是面片集合。需要指出的是输出几何纹理Mout的尺寸要求事先指定。样本几何纹理网格化的结果如图4所示。
由于样本几何纹理进行了网格化处理,因此只需要通过访问Cell的位置即可快速地读取样本几何纹理中任一的几何子块数据,这使得能够加快数据存取的速度。另外,根据选取的最佳匹配几何子块Cell在Gridin的位置和种子区域在Gridout中的位置之间的相对空间关系,这些几何子块可以共享顶点、面片和材质等数据。也就是说,通过建立输入与输出几何纹理之间的顶点、面片和材质等数据的共享机制,几何纹理合成过程中不再需要分配保存顶点、面片和材质等数据的内存空间,这使得能够设计体积更小的数据结构表示子块划分后的几何纹理的数据。小体积的数据结构可以有效地减少CPU与GPU之间的数据交互量,从而降低了内存占用率。
进一步地,所述确定待合成的几何纹理区域包括:
所述待合成的几何纹理区域为输出几何纹理Mout中所有未占用的样本几何子块Cell且周围相邻已占用的样本几何子块Cell数最多的样本几何子块Cell。
在进行最佳匹配几何子块查找之前,需要先确定最佳匹配几何子块在合成结果空间中的放置位置(待合成区域),即种子区域Seed。几何纹理合成初始阶段,Mout中的Cell全部标识为未占用。在合成中,本实施将Mout中未填充合成结果的Cell标识为未占用,已填充的Cell标识为已占用,这样能够方便地确定待合成区域。本实施例的几何纹理合成方法中,种子区域Seed确定为Mout中所有未占用的Cell其周围相邻已占用Cell数最多的Cell。
进一步地,所述采用GPU并行处理方法在所述样本几何纹理Min中查找最佳匹配几何子块mout包括:
确定所述输出几何纹理Mout中的匹配区域Pout;
将匹配区域Pout沿水平方向或垂直方向以匹配区域Pout的宽度为单位在样本几何纹理Min进行平移,匹配区域Pout每次平移后与样本几何纹理Min重叠的区域标记为重叠区域Pin(t);
采用GPU并行处理方法确定匹配区域Pout与重叠区域Pin(t)的相似度误差E(t)最小的样本几何子块为最佳匹配几何子块mout;
mout是Pin(t)和与其相邻且与Cell同大小的样本几何子块组成。
采用GPU多线程并发技术设计并行加速算法,将串行的几何理纹理合成过程并行化,以使得能够快速地生成任意尺寸的新的几何纹理。
进一步地,所述采用GPU并行处理方法确定匹配区域Pout与重叠区域Pin(t)的相似度误差E(t)最小的样本几何子块为最佳匹配几何子块mout包括:
分别构建匹配区域Pout的顶点矩阵和面片矩阵
采用GPU并行处理方法获取顶点矩阵MV和面片矩阵MF乘积后得到相似度误差矩阵ME,
对相似度误差矩阵ME每行中具有最小值的元素进行累加求和,确定匹配区域Pout与重叠区域Pin(t)的相似度误差E(t)最小的样本几何子块为最佳匹配几何子块mout;
其中,m表示为匹配区域Pout中顶点的个数;n表示为重叠区域Pin(t)中面片的个数,ME中的第i行第j列元素即为匹配区域Pout的顶点到重叠区域Pin(t)中面片的相似度误差。
具体地,在确定种子区域Seed之后,以待合成几何纹理中已合成的Cell与种子区域Seed共边的边界区域作为后续几何结构相似性度量的匹配区域Pout,Pout的宽度根据所选样本几何纹理的不同而进行不同的设置。而在样本几何纹理中进行最佳匹配几何子块查找时,将Pout沿水平方向或垂直方向以Pout的宽度为单位在Min进行平移,Pout每次平移后与Min重叠的区域标记为Pin(t)。此时,Pin(t)是与Pout具有相同大小的区域。另外,由于本实施例仅将Pout的移动范围限定在Min内,因此需要在Min中找到具有最优相似度匹配的平移量t,以在样本几何纹理中找到最佳匹配的几何子块。当Pout与Pin(t)之间的相似度误差E(t)为最小时,我们认为该重叠区域中的几何结构是最相似的。
由于Pout中各顶点到Pin(t)中所有面片的距离的计算是互不依赖的,因而,本实施例能够采用GPU并行处理技术将对最佳匹配几何子块查找的过程进行并行化的计算。分别构建Pout的顶点矩阵 和面片矩阵 m表示为Pout中顶点的个数;n表示为Pin(t)中面片的个数,将已构建的顶点矩阵和面片矩阵乘积后得到相似度误差矩阵ME,其中,ME中的第i行第j列元素即为Pout的顶点到Pin(t)中面片的相似度误差。经过并行计算之后,对ME每行中具有最小值的元素进行累加求和,即可得到一次几何结构相似度匹配的结果E(t)。
实际上,每次平移后几何结构相似性度量的计算都是互不依赖的,因此,能够对几何纹理合成过程中穷尽的最佳匹配几何子块查找同样进行并行化处理,设计的并行矩阵描述为M,其中,M的第i行第j列元素表示为Pout与Min中第i行第j列的Pin(ti,j)的相似度误差。经过并行计算之后,M中具有最小值的元素即为最小相似误差,其下标为Min中对应Pin(ti,j)的下标,以此Pin(ti,j)为起始边界的样本几何子块即为从Min中找到的最佳匹配几何子块mout。需要指出的是,mout是Pin(ti,j)和与其相邻且与Cell同大小的样本几何子块组成。
进一步地,所述采用GPU并行处理方法对所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何对齐包括:
建立Pin(t)∈mout与所述匹配区域Pout的几何结构对齐关系集S;
根据所述相似度误差矩阵ME构建几何结构对齐矩阵MS;
采用CPU并行处理方法根据几何结构对齐矩阵MS对所述几何结构对齐关系集S进行优化;
根据优化后的几何结构对齐关系集对所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何结构对齐。
在实际应用中,最佳匹配子块mout和它周围已合成区域的几何误差为最小。然而,重叠区域中仍然存在因几何结构无法对齐导致的错位问题(如图5(a)和5(b)所示),这需要对处于重叠区域中的Pout和Pin(t)∈mout进行几何结构对齐。如果能够在Pin(t)中找到与Pout中的各顶点具有最小相似误差的面片则能够以此顶点和对应的面片建立几何子块之间的几何结构对齐关系;否则,重叠区域中无法对齐的几何结构部分则需要去除。
通过几何结构对齐之后,在Pout和Pin(t)∈mout之间建立几何结构对齐关系集S。然而在实际的纹理空间中,由于Pout和Pin(t)∈mout的一部分区域相互重叠而其他区域可能是分离的,S中的几何对齐关系不一定都是合理的,因此,还需要进一步对几何结构对齐关系集S进行优化。需要指出的是,对几何结构对齐关系集S的优化过程同样能够采用GPU技术进行并行化处理。在相似度误差矩阵ME的基础上可构建几何结构对齐矩阵MS。在采用GPU多线程并发处理几何结构对齐关系集S的优化过程后,此时的MS即为最终优化后的几何结构对齐关系集S。
进一步地,所述采用GPU并行处理方法对所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何变形包括:
计算匹配区域Pout和Pin(t)∈mout各个顶点的形变坐标,采用GPU并行处理方法对匹配区域Pout与重叠区域Pin(t)∈mout内各个顶点进行变形处理。
具体地,在进行几何结构对齐之后,需要采用拉普拉斯网格编辑技术对几何结构对齐的Pout和Pin(t)∈mout进行变形处理,这使得Pout和Pin(t)∈mout在保持局部几何细节不变的同时,能够解决mout与其周围已合成区域之存在的几何结构错位问题,从而产生准确的放置位置(如图5(b)所示)。
在进行变形处理之前,需要1)分别将Pout和Pin(t)∈mout中所有顶点的空间坐标转换为拉普拉斯坐标;2)并计算Pout中各顶点到与其建立几何对齐关系的面片上距离最近的点并将它们的中点作为形变的基准点。计算Pout和Pin(t)∈mout的顶点vi形变坐标的主要目是确定顶点在vi和之间所有可能位置上的形变误差,使得能够产生最佳形变。
将变形过程同样采用GPU技术将进行并行化处理,从而能够快速地计算Pout和Pin(t)∈mout各个顶点的形变坐标。此时,并行化的变形矩阵描述为Mw。其中,Mw是m×(2l+1)的矩阵;m表示Pout和Pin(t)∈mout上的顶点的个数;2l表示Pout和Pin(t)∈mout上顶点中vi到距离的最大值;Mw中的第i行第j列元素Mw(i,j)=Es(ci+j-l),其中(ci+j-l)为拟变形的位置(0≤i≤m,0≤j≤2l),表示将vi拟变形至(ci+j-l)处的形变误差。经过并行计算之后,将(ci+j-l)中j的替换为Mw每行中具有最小值元素的列索引值,即所求顶点的最佳形变位置。需要指出的是,由于Pout和Pin(t)∈mout上的每个顶点vi到与之对应的的距离是不一样的,Mw每行的维数将会不统一(l的值不唯一),这使得Mw将无法构建。因此,本实施例需要求得Pout和Pin(t)∈mout的顶点vi到与之对应的的距离的最大值,并将Pout和Pin(t)∈mout所有顶点的变形区间都统一为这个最大值,以此保证Mw的顺利构建。
可选地,所述对经过所述几何变形后的所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何合并包括:
采用基于GPU的二维GraphCut算法获取匹配区域Pout和重叠区域Pin(t)∈mout之间的最优拼接路径,将匹配区域Pout和重叠区域Pin(t)∈mout进行无缝平滑的合并。
具体地,为了将Pin(t)∈mout进行准确的放置并与Pout拼接成一个整体,以此保持几何纹理合成结果几何结构的完整性和连续性,本文将基于GPU的二维GraphCut算法拓展应用到几何纹理合成中,实现了在Pout和mout之间找到一条最优的拼接路径,从而将Pout和mout进行无缝平滑的合并,如图5(c)所示。最后,沿着最优路径融合Pout和Pin(t)∈mout,以获得最终的几何纹理合成结果,如图5(d)所示。图6示出了本发明一个实施例的基于GPU加速的几何纹理合成结果的示意图。
本实施例采用GPU多线程并发处理技术对最佳匹配几何子块查找和几何子块拼接两个主要过程进行了并行算法设计,这能够解决现有串行的几何纹理合成方法中海量的计算量。本发明不仅存储占用更小,而且能够在保证合成质量的同时,极大的降低几何纹理合成耗时。
图7示出了本发明一个实施例的基于GPU加速的几何纹理合成系统的结构示意图。如图7所示,该基于GPU加速的几何纹理合成系统包括:
网格化处理单元71,用于对样本几何纹理Min和输出几何纹理Mout进行网格化处理;
待合成区域确定单元72,用于确定待合成的几何纹理区域;
最佳匹配几何子块查找单元73,用于采用GPU并行处理方法在所述样本几何纹理Min中查找最佳匹配几何子块mout;
几何子块对齐单元74,用于采用GPU并行处理方法对所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何对齐;
几何子块变形单元75,用于采用GPU并行处理方法对所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何变形;
几何子块合并单元76,用于对经过所述几何变形后的所述匹配区域Pout和重叠区域Pin(t)∈mout进行几何合并。
在一种可选的实施方式中,网格化处理单元71包括样本几何纹理网格化模块和输出几何纹理网格化模块;
所述样本几何纹理网格化模块,用于按样本几何纹理Min的长度lin和宽度win将样本几何纹理Min等分为网格Gridin={Xin,Yin,Cell};
所述输出几何纹理网格化模块,用于按输出几何纹理Mout的长度lout和宽度wout将输出几何纹理Mout等分为网格Gridout={Xout,Yout,Cell};
其中Xin和Yin为Cell在Gridin的位置;Cell={V,F}为网格元内顶点数据和面片的集合,即为样本几何子块;样本几何纹理Min={Vin,Fin},其中Vin是顶点集合;Fin是面片集合;lin,win和hin表示分别表示Min的长度、宽度和高度;Xout和Yout为Cell在Gridout的位置;输出几何纹理Mout={Vout,Fout},其中Vout是顶点集合;Fout是面片集合;lout,wout和hout表示分别表示Mout的长度、宽度和高度。
本实施例的基于GPU加速的几何纹理合成系统需要对样本几何纹理合成进行预处理,即对样本几何纹理和输出的几何纹理进行了网格化处理,这使得能够加快数据存取的速度。通过快速的数据读取机制,本实施算法可以有效避免因数据的读取速度远小于GPU的处理速度而造成GPU的运算吞吐量急剧下降的问题。本实施例的基于GPU加速的几何纹理合成系统需要建立输入与输出几何纹理之间的顶点、面片和材质等数据的共享机制,因而,合成过程中不需要增加用来保存顶点数据的额外内存开销,这不仅降低了内存占用,且降低了CPU和GPU的数据交互量。
本实施例所述的基于GPU加速的几何纹理合成系统可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
本发明提出的基于GPU加速的几何纹理合成方法及系统,通过对样本几何纹理进行几何子块细分,并以几何子块作为合成的基本单元,在进行元素匹配及对应时可以缩小几何结构对齐的区域,能够更好地控制内部元素离散分布样本在拼接处几何结构之间的距离,使得合成结果更加紧凑排列更自然。同时,由于缩小了几何结构对齐的区域,从而降低了拼接处局部变形程度,使得合成结果更平滑自然。通过采用GPU多线程并发技术处理最佳匹配几何子块查找过程和几何子块拼接(包括几何子块之间的对齐、变形和合并)中的海量运算,大大降低了最佳匹配几何子块查找和几何子块拼接的计算复杂度,大大提升了几何纹理合成速度。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种基于GPU加速的几何纹理合成方法,其特征在于,包括:
对样本几何纹理Min和输出几何纹理Mout进行网格化处理;
确定待合成的几何纹理区域;
采用GPU并行处理方法在所述样本几何纹理Min中查找最佳匹配几何子块mout;
采用GPU并行处理方法对匹配区域Pout与重叠区域Pin(t)∈mout进行几何对齐;
采用GPU并行处理方法对所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何变形;
对经过所述几何变形后的所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何合并;
其中,Pin(t)∈mout为最佳匹配子块mout中的重叠区域Pin(t)。
2.根据权利要求1所述的基于GPU加速的几何纹理合成方法,其特征在于,所述对样本几何纹理Min和输出几何纹理Mout进行网格化处理,包括:
按样本几何纹理Min的长度lin和宽度win将样本几何纹理Min等分为网格Gridin={Xin,Yin,Cell};
按输出几何纹理Mout的长度lout和宽度wout将输出几何纹理Mout等分为网格Gridout={Xout,Yout,Cell};
其中Xin和Yin为Cell在Gridin的位置;Cell={V,F}为网格元内顶点数据和面片的集合,即为样本几何子块;样本几何纹理Min={Vin,Fin},其中Vin是顶点集合;Fin是面片集合;lin,win和hin表示分别表示Min的长度、宽度和高度;Xout和Yout为Cell在Gridout的位置;输出几何纹理Mout={Vout,Fout},其中Vout是顶点集合;Fout是面片集合;lout,wout和hout表示分别表示Mout的长度、宽度和高度。
3.根据权利要求1所述的基于GPU加速的几何纹理合成方法,其特征在于,所述确定待合成的几何纹理区域包括:
所述待合成的几何纹理区域为输出几何纹理Mout中所有未占用的样本几何子块Cell且周围相邻已占用的样本几何子块Cell数最多的样本几何子块Cell。
4.根据权利要求1所述的基于GPU加速的几何纹理合成方法,其特征在于,所述采用GPU并行处理方法在所述样本几何纹理Min中查找最佳匹配几何子块mout包括:
确定所述输出几何纹理Mout中的匹配区域Pout;
将匹配区域Pout沿水平方向或垂直方向以匹配区域Pout的宽度为单位在样本几何纹理Min进行平移,匹配区域Pout每次平移后与样本几何纹理Min重叠的区域标记为重叠区域Pin(t);
采用GPU并行处理方法确定匹配区域Pout与重叠区域Pin(t)的相似度误差E(t)最小的样本几何子块为最佳匹配几何子块mout;
mout是Pin(t)和与其相邻且与Cell同大小的样本几何子块组成。
5.根据权利要求4所述的基于GPU加速的几何纹理合成方法,其特征在于,所述采用GPU并行处理方法确定匹配区域Pout与重叠区域Pin(t)的相似度误差E(t)最小的样本几何子块为最佳匹配几何子块mout包括:
分别构建匹配区域Pout的顶点矩阵 和面片矩阵
采用GPU并行处理方法获取顶点矩阵MV和面片矩阵MF乘积后得到相似度误差矩阵ME,
对相似度误差矩阵ME每行中具有最小值的元素进行累加求和,确定匹配区域Pout与重叠区域Pin(t)的相似度误差E(t)最小的样本几何子块为最佳匹配几何子块mout;
其中,m表示为匹配区域Pout中顶点的个数;n表示为重叠区域Pin(t)中面片的个数,ME中的第i行第j列元素即为匹配区域Pout的顶点到重叠区域Pin(t)中面片的相似度误差。
6.根据权利要求5所述的基于GPU加速的几何纹理合成方法,其特征在于,所述采用GPU并行处理方法对所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何对齐包括:
建立Pin(t)∈mout与所述匹配区域Pout的几何结构对齐关系集S;
根据所述相似度误差矩阵ME构建几何结构对齐矩阵MS;
采用CPU并行处理方法根据几何结构对齐矩阵MS对所述几何结构对齐关系集S进行优化;
根据优化后的几何结构对齐关系集对所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何结构对齐。
7.根据权利要求6所述的基于GPU加速的几何纹理合成方法,其特征在于,所述采用GPU并行处理方法对所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何变形包括:
计算匹配区域Pout和Pin(t)∈mout各个顶点的形变坐标,采用GPU并行处理方法对匹配区域Pout与重叠区域Pin(t)∈mout内各个顶点进行变形处理。
8.根据权利要求6所述的基于GPU加速的几何纹理合成方法,其特征在于,所述对经过所述几何变形后的所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何合并包括:
采用基于GPU的二维GraphCut算法获取匹配区域Pout和重叠区域Pin(t)∈mout之间的最优拼接路径,将匹配区域Pout和重叠区域Pin(t)∈mout进行无缝平滑的合并。
9.一种基于GPU加速的几何纹理合成系统,其特征在于,包括:
网格化处理单元,用于对样本几何纹理Min和输出几何纹理Mout进行网格化处理;
待合成区域确定单元,用于确定待合成的几何纹理区域;
最佳匹配几何子块查找单元,用于采用GPU并行处理方法在所述样本几何纹理Min中查找最佳匹配几何子块mout;
几何子块对齐单元,用于采用GPU并行处理方法对所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何对齐;
几何子块变形单元,用于采用GPU并行处理方法对所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何变形;
几何子块合并单元,用于对经过所述几何变形后的所述匹配区域Pout与重叠区域Pin(t)∈mout进行几何合并。
10.根据权利要求9所述的基于GPU加速的几何纹理合成系统,其特征在于,所述网格化处理单元包括样本几何纹理网格化模块和输出几何纹理网格化模块;
所述样本几何纹理网格化模块,用于按样本几何纹理Min的长度lin和宽度win将样本几何纹理Min等分为网格Gridin={Xin,Yin,Cell};
所述输出几何纹理网格化模块,用于按输出几何纹理Mout的长度lout和宽度wout将输出几何纹理Mout等分为网格Gridout={Xout,Yout,Cell};
其中Xin和Yin为Cell在Gridin的位置;Cell={V,F}为网格元内顶点数据和面片的集合,即为样本几何子块;样本几何纹理Min={Vin,Fin},其中Vin是顶点集合;Fin是面片集合;lin,win和hin表示分别表示Min的长度、宽度和高度;Xout和Yout为Cell在Gridout的位置;输出几何纹理Mout={Vout,Fout},其中Vout是顶点集合;Fout是面片集合;lout,wout和hout表示分别表示Mout的长度、宽度和高度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510920054.4A CN105574903B (zh) | 2015-12-11 | 2015-12-11 | 一种基于gpu加速的几何纹理合成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510920054.4A CN105574903B (zh) | 2015-12-11 | 2015-12-11 | 一种基于gpu加速的几何纹理合成方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105574903A true CN105574903A (zh) | 2016-05-11 |
CN105574903B CN105574903B (zh) | 2018-06-12 |
Family
ID=55884990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510920054.4A Active CN105574903B (zh) | 2015-12-11 | 2015-12-11 | 一种基于gpu加速的几何纹理合成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105574903B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885592A (zh) * | 2016-09-29 | 2018-04-06 | 上海华测导航技术股份有限公司 | 一种加速android系统运行流畅度的方法 |
CN108280861A (zh) * | 2018-01-22 | 2018-07-13 | 厦门启尚科技有限公司 | 一种图片进行智能查找循环处理的方法 |
CN108510569A (zh) * | 2018-01-26 | 2018-09-07 | 北京大学 | 一种基于多通道的艺术字生成方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201268B (zh) * | 2016-07-11 | 2019-06-07 | 合肥速显微电子科技有限公司 | 一种基于变换矩阵的人机交互界面图形渲染方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102637304A (zh) * | 2012-03-15 | 2012-08-15 | 中国科学院软件研究所 | 基于gpu的几何表面上各向同性/异性纹理合成方法 |
US20150262392A1 (en) * | 2014-03-17 | 2015-09-17 | Electronics And Telecommunications Research Institute | Method and apparatus for quickly generating natural terrain |
CN105046735A (zh) * | 2015-07-13 | 2015-11-11 | 长沙理工大学 | 一种基于基元分布的三维表面纹理合成方法 |
-
2015
- 2015-12-11 CN CN201510920054.4A patent/CN105574903B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102637304A (zh) * | 2012-03-15 | 2012-08-15 | 中国科学院软件研究所 | 基于gpu的几何表面上各向同性/异性纹理合成方法 |
US20150262392A1 (en) * | 2014-03-17 | 2015-09-17 | Electronics And Telecommunications Research Institute | Method and apparatus for quickly generating natural terrain |
CN105046735A (zh) * | 2015-07-13 | 2015-11-11 | 长沙理工大学 | 一种基于基元分布的三维表面纹理合成方法 |
Non-Patent Citations (5)
Title |
---|
KUN ZHOU 等: "Mesh Quilting For Geometric Texture Synthesis", 《ACM TRANSACTIONS ON GRAPHICS》 * |
ZAINAB ALMERAJ 等: "Patch-Based Geometric Texture Synthesis", 《PROCEEDINGS OF THE SYMPOSIUM ON COMPUTIONAL AESTHETICS》 * |
沈哲 等: "GPU适用的并行纹理合成算法", 《计算机辅助设计与图形学学报》 * |
陈国栋 等: "CUDA加速的肝脏体纹理合成与映射方法研究", 《系统仿真学报》 * |
陈益 等: "基于几何网格的交互式纹理合成方法", 《计算机辅助设计与图形学学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885592A (zh) * | 2016-09-29 | 2018-04-06 | 上海华测导航技术股份有限公司 | 一种加速android系统运行流畅度的方法 |
CN108280861A (zh) * | 2018-01-22 | 2018-07-13 | 厦门启尚科技有限公司 | 一种图片进行智能查找循环处理的方法 |
CN108280861B (zh) * | 2018-01-22 | 2021-08-27 | 厦门启尚科技有限公司 | 一种图片进行智能查找循环处理的方法 |
CN108510569A (zh) * | 2018-01-26 | 2018-09-07 | 北京大学 | 一种基于多通道的艺术字生成方法及系统 |
CN108510569B (zh) * | 2018-01-26 | 2020-11-03 | 北京大学 | 一种基于多通道的艺术字生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105574903B (zh) | 2018-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11257279B2 (en) | Systems and methods for providing non-parametric texture synthesis of arbitrary shape and/or material data in a unified framework | |
CN110543716B (zh) | 三维架空电缆层级电网优化方法、装置和计算机设备 | |
CN102306396B (zh) | 一种三维实体模型表面有限元网格自动生成方法 | |
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
CN104966317B (zh) | 一种基于矿体轮廓线的三维自动建模方法 | |
CN102663800A (zh) | 一种顾及城市意象的城市建筑综合与渲染的方法 | |
JP7194685B2 (ja) | 八分木に基づく畳み込みニューラルネットワーク | |
CN105574903A (zh) | 一种基于gpu加速的几何纹理合成方法及系统 | |
US20190035138A1 (en) | Methods, Computer Program and Apparatus for an Ordered Traversal of a Subset of Nodes of a Tree Structure and for Determining an Occlusion of a Point along a Ray in a Raytracing Scene | |
CN101599181B (zh) | 一种代数b样条曲面的实时绘制方法 | |
Günther et al. | A flexible level-set approach for tracking multiple interacting interfaces in embedded boundary methods | |
CN105336003A (zh) | 结合gpu技术实时流畅绘制出三维地形模型的方法 | |
CN102930594B (zh) | 基于保持边界的计算机三维地形网格的绘制方法 | |
Poston et al. | Multiresolution isosurface extraction with adaptive skeleton climbing | |
CN110663064A (zh) | 用于矢量图形和图像处理的并行化流水线 | |
Schouten et al. | Fast exact Euclidean distance (FEED): A new class of adaptable distance transforms | |
CN107064930A (zh) | 基于gpu的雷达前视成像方法 | |
Sharma et al. | Point cloud upsampling and normal estimation using deep learning for robust surface reconstruction | |
CN106484532B (zh) | 面向sph流体模拟的gpgpu并行计算方法 | |
CN105741335B (zh) | 一种基于分块组织的多层次兵棋地图快速绘制方法 | |
CN112150614B (zh) | 基于微观结构图像的水泥三维仿真模型建立方法及系统 | |
US8022949B2 (en) | System and method for generating curvature adapted isosurface based on delaunay triangulation | |
WO2023169002A1 (zh) | 软光栅化的方法、装置、设备、介质及程序产品 | |
CN108986212B (zh) | 一种基于裂缝消除的三维虚拟地形lod模型的生成方法 | |
Chen et al. | Half-space power diagrams and discrete surface offsets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |