首页> 中国专利> 基于GPU的几何表面上各向同性/异性纹理合成方法

基于GPU的几何表面上各向同性/异性纹理合成方法

摘要

本发明公开了一种基于GPU的几何表面上各向同性/异性纹理合成方法,属于计算机图形学领域。本方法为:1)选取一纹理图像样本E并对图像E进行Gabor滤波,得到E的特征空间;2)生成E的网格顶点结构S;根据S建立多分辨率金字塔结构,得到层次化的网格模型序列,进行各项同性的表面纹理合成;即对金字塔结构每一层进行:将顶点i的纹理坐标按照它在网格模型序列中父顶点的纹理坐标来分配;对几何顶点的纹理坐标进行扰动;根据特征空间对纹理坐标迭代校正;对于每个网格顶点,获取其M个最近的邻接顶点;3)对顶点纹理坐标进行不等距的偏移变换,进行各项异性的表面纹理合成。本方法具有合成效率高,且保持形状特性和形变一致性。

著录项

  • 公开/公告号CN102637304A

    专利类型发明专利

  • 公开/公告日2012-08-15

    原文格式PDF

  • 申请/专利号CN201210069461.5

  • 发明设计人 盛斌;孙汉秋;王文成;吴玉宝;

    申请日2012-03-15

  • 分类号G06T15/04(20110101);

  • 代理机构北京君尚知识产权代理事务所(普通合伙);

  • 代理人余长江

  • 地址 100190 北京市海淀区中关村南四街4号

  • 入库时间 2023-12-18 06:16:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-08

    未缴年费专利权终止 IPC(主分类):G06T15/04 授权公告日:20140625 终止日期:20180315 申请日:20120315

    专利权的终止

  • 2014-06-25

    授权

    授权

  • 2012-10-03

    实质审查的生效 IPC(主分类):G06T15/04 申请日:20120315

    实质审查的生效

  • 2012-08-15

    公开

    公开

说明书

技术领域

本发明涉及一种通过GPU加速的几何表面各向同性/异性纹理合成方法,更具体地说, 本发明涉及一种利用GPU的可编程功能及其高效处理性能三维几何表面纹理合成速度的方 法,属于计算机图形学领域。纹理合成结果可以用于电影动画、虚拟现实、电子游戏等领域。

背景技术

1.1基于样本图像的纹理合成

在最近几年,纹理合成已经显著增加了映射图像细节到网格表面的容易性。较早的算法 随机的将小块图像粘贴在三维表面,然后使用alpha混合技术隐藏块间缝隙[E.Praun,A. Finkelstein,and H.Hoppe.Lapped textures.Proceedings of SIGGRAPH 2000,pp.465-470]。最近, 裁缝方法[A.Efros and W.Freeman.Image quilting for texture synthesis and transfer.Proceedings  of SIGGRAPH 2001,pp.341-346;L.Liang,C.Liu,Y.Xu,B.Guo,and H.Shum.Real-time texture  synthesis by patch-based sampling.ACM Transactions on Graphics,vol.20,no.3,pp.127-150, 2001;V. Kwatra,A.Schodl,I.Essa,G. Turk,and A.Bobick.Graphcut textures:Image and video  synthesis using graph cuts.ACM Transactions on Graphics,vol.22,no.3,pp.277-286,2003;K. Zhou,P.Du,L.Wang,Y.Matsushita,J.Shi,B.Guo,and H.Shum.Decorating surfaces with  bidirectional texture functions.IEEE Transactions on Visualization and Computer Graphics,vol.11, no.5,pp.519-528,2005.]能够产生更好的合成结果,它通过仔细的放置小块纹理来减小小块边 界的不连续性。放置这些纹理块之后,[L. Liang,C.Liu,Y.Xu,B.Guo,and H.Shum.Real-time texture synthesis by patch-based sampling.ACM Transactions on Graphics,vol.20,no.3,pp. 127-150,2001;S.Magda and D.Kriegman,Fast texture synthesis on arbitrary meshes.ACM  SIGGRAPH 2003 Sketches & Applications,2003,p.1.]简单的使用alopha混合技术来隐藏纹理 缝隙,而[A.Efros and W.Freeman.Image quilting for texture synthesis and transfer.Proceedings of  SIGGRAPH 2001,pp.341-346;K.Zhou,P.Du,L.Wang,Y.Matsushita,J.Shi,B.Guo,and H. Shum.Decorating surfaces with bidirectional texture functions.IEEE Transactions on Visualization and Computer Graphics,vol.11,no.5,pp.519-528,2005.]通过搜索最小剪切缝隙进一步增强 缝隙间过渡的平滑性。因为人类的视觉对纹理中的边缘,角点和其它高水平特征非常敏感, [Q.Wu and Y.Yu.Feature matching and deformation for texture synthesis.ACM Transactions on  Graphics,vol.23,no.3,pp.364-367,2004.]从样本纹理中提取出特征图,然后使用特征匹配和 图像形变的方法来最优的保持特征连续性。其它的相关纹理合成方法包括基于像素的和基于 块策略的混合方法[A.Nealen and M.Alexa.Hybrid texture synthesis.Proceedings of the 14th  Eurographics workshop on rendering.Eurographics Association,2003,p.105.],对图片中物体重 新进行纹理合成[H.Fang and J.Hart,Textureshop:texture synthesis as a photograph editing tool. ACM Transaction on Graphics,vol.23,no.3,pp.354-359,2004.],GPU上的并行可控纹理合成[S. Lefebvre and H.Hoppe.Parallel controllable texture synthesis.ACM Transactions on Graphics,vol. 24,no.3,pp.777-786,2005.],[S.Lefebvre and H. Hoppe.Appearance-space texture synthesis. ACM SIGGRAPH 2006,p.548.]和使用期望最小化优化算法的纹理合成方法[V. Kwatra,I.Essa, A.Bobick,and N.Kwatra.Texture optimization for example-based synthesis.ACM SIGGR APH 2005,p.802.].Huang et al.[H.Huang,X.Tong,and W.Wang.Accelerated parallel texture  optimization.Journal of Computer Science and Technology,vol.22,no.5,pp.761-769,2007.]在 GPU上实现了K-类似搜索和主成分分析(PCA),并进一步加速了后面的纹理优化。Gabor滤 波器对于纹理分析具有理想最优特性;它们的方向和径向频率带宽是可调的,允许空间和空 间频率中进行联合分辨率优化。Bovid和Clark[A.Bovik,M.Clark,and W.Geisler.Multichannel  texture analysis using localized spatial filters.IEEE Transactions on Pattern Analysis and Machine  Intelligence,pp.55-73,1990.]提出了使用2D Gabor滤波器进行视觉纹理分析的计算方法。他们 发现这种方法对于人工和自然纹理的分割都很适用,如预料中一样。最近Gilet和Dischler[G. Gilet,J.Dischler,et al.An Image-Based Approach for Stochastic Volumetric and Procedural Details. Computer Graphics Forum,vol.29,no.4,Wiley Online Library,2010,pp.1411-1419.]使用Gabor 滤波器来计算纹理相似度以便进行基于图像的渲染。

1.2表面纹理合成

三维表面的纹理合成方法,在过去的十几年的发展中,已经显著的使任意曲面的复杂图 像细节设计变得更加容易。第一类方法[G.Turk.Texture synthesis on surfaces.Proceedings of the 28th annual conference on Computer graphics and interactive techniques.ACM New York,NY, USA,2001,pp.347-354.;L.Wei and M.Levoy.Texture synthesis over arbitrary manifold surfaces. Proceedings of the 28th annual conference on Computer graphics and interactive techniques.ACM  New York,NY,USA,2001,pp.355-360.;X.Tong,J.Zhang,L.Liu,X.Wang,B.Guo,and H. Shum.Synthesis of bidirectional texture functions on arbitrary surfaces.ACM Transactions on  Graphics,vol.21,no.3,pp.665-672,2002.;S.Zelinka and M.Garland.Interactive texture  synthesis on surfaces using jump maps.Proceedings of the 14th Eurographics workshop on  Rendering.Eurographics Association Aire-la-Ville,Switzerland,Switzerland,2003,pp.90-96.]实 现了基于各像素非参数化采样[A.Efros and T.Leung.Texture synthesis by non-parametric  sampling.International Conference on Computer Vision,vol.2,no.9,1999,pp.1033-1038.;L.Wei, and M.Levoy.Fast texture synthesis using tree-structured vector quantization.Proceedings of the 27th annual conference on Computer graphics and interactive techniques.ACM  Press/Addison-Wesley Publishing Co.New York,NY,USA,2000,pp.479-488.]的纹理合成,并且 需要额外的映射或重采样以便进行渲染。相对而言,有些方法在渲染的过程中使用原始纹理 图像,并且使用纹理映射硬件执行此图像的索引。其中的一种较早的方法是Soler等人的[C. Soler,M.Cani,and A.Angelidis.Hierarchical pattern mapping.Proceedings of the 29th annual  conference on Computer graphics and interactive techniques.ACM New York,NY,USA,2002,pp. 673-680.],他们通过三角面片的聚类实现小块的创建。Zelnika和Garland[S.Zelinka and M. Garland.Jump map-based interactive texture synthesis.ACM Transactions on Graphics,vol.23,no. 4,pp.930-962,2004.]也扩展了他们的跳跃映射,以便每个顶点在原始图像索引的坐标中使用。 Lefebvre和Hoppe[S.Lefebvre and H.Hoppe.Appearance-space texture synthesis.ACM  SIGGR APH 2006,p.548.]使用硬件实现了用于纹理查找表的额外内存存储,并且他们的方法 利用了GPU来提供交互纹理合成的速度。他们的合成结果中的高质量有部分原因是因为使用 了纹元掩模和对像素邻域的PCA分析。Han等人[J.Han,K.Zhou,L.Wei,M.Gong,H.Bao,X. Zhang,and B.Guo.Fast example-based surface texture synthesis via discrete optimization.The  Visual Computer,vol.22,no.9,pp.918-925,2006.]提出了使用期望最大化算法来计算表面纹 理,他们在GPU上实现了该算法。大多数之前的方法[E.Praun,A.Finkelstein,and H.Hoppe. Lapped textures.Proceedings of SIGGRAPH 2000,pp.465-470;G.Turk.Texture synthesis on  surfaces.Proceedings of the 28th annual conference on Computer graphics and interactive  techniques.ACM New York,NY,USA,2001,pp.347-354.;L.Wei and M.Levoy.Texture synthesis  over arbitrary manifold surfaces.Proceedings of the 28th annual conference on Computer graphics  and interactive techniques.ACM New York,NY,USA,2001,pp.355-360.;X.Tong,J.Zhang,L. Liu,X.Wang,B.Guo,and H.Shum.Synthesis of bidirectional texture functions on arbitrary  surfaces.ACM Transactions on Graphics,vol.21,no.3,pp.665-672,2002.;J.Zhang,K.Zhou,L. Velho,B.Guo,and H.Shum.Synthesis of progressively-variant textures on arbitrary surfaces. ACM SIGGRAPH 2003,pp.295-302.]都提取局部邻域栅格通过局部压平和表面重采样技术。

1.3纹理映射

与将一个曲面压平成一个平面的问题紧密相关的纹理映射技术经常在游戏引擎或3D渲 染的简化的角色模型中被使用。自从Catmull[E.Catmull.A subdivision algorithm for computer display of curved surfaces.1974.]提出纹理映射以来,在文献中出现了大量的方法[E.Bier and K. Sloan.Two-part texture mappings.IEEE Computer Graphics and applications,vol.6,no.9,pp. 40-53,1986;P.Heckbert.Survey of texture mapping.IEEE Computer Graphics and Application, vol.6,no.11,pp.56-67,1986;S.Haker,S.Angenent,A.Tannenbaum,R.Kikinis,G. Sapiro,and M. Halle.Conformal surface parameterization for texture mapping.IEEE Transactions on Visualization  and Computer Graphics,vol.6,no.2,pp.181-189,2000;L. Wang,X. Gu,K.Mueller,and S.Yau. Uniform texture synthesis and texture mapping using global parameterization.The Visual Computer, vol.21,no.8,pp.801-810,2005.].因为大多数3D表面是不能够展开的,在最后的合成图像中 存在纹理失真。而且,尽管3D表面是可以展开的,许多方法也会引起失真。基于表面参数 化以便把一个3D表面变平的纹理合成方法需要将一个表面分解成离散的平面图像块,并使 用分段映射的方法建立3D网格和它们的2D平面中的同构等价物中的对应关系,而且要通过 线性和非线性的解法来最小化这种引入的失真。在文献[A.Sheffer,E.Praun,and K.Rose.Mesh  parameterization methods and their applications.Foundations and Trends in Computer Graphics  and Vision,vol.2,no.2,p.171,2006.]中给出了最近在表面参数化方法中的很好的总结。

1.4上述方法中存在的问题

表面纹理增加了几何模型的真实性和丰富性。尽管对任意表面进行纹理合成的问题已经 被广泛的研究了,但是实时性和并行性仍然是交互应用化的主要瓶颈。

上面介绍的表面纹理合成方法可以主要分成两类:纹理映射和直接在表面上进行的纹理 合成。前者,例如UV映射和UVW映射,不可避免具有显著的纹理失真和繁重的人工操作 的缺点。因此,已经有很多研究工作是关于直接在三维表面进行纹理合成的。表面纹理是连 续的并且直接定义在表面上,尽管它们在实际中以离散的单个顶点的形式表现。当前的表面 纹理合成方法针对于静态的表面经常使用全局参数化,这将会引发纹理缝隙或失真。众所周 知,实现表面参数化域的映射具有很高的复杂性,最典型的,产生一个低失真的表面参数化 需要相当多的用户干预。

另外,如果说纹理要反映表面的形状信息,那么与显著的几何结构或者形变相一致是很 重要的。尽管可控性,精心设计的矢量场可以让三维表面的纹理合成产生很多变化的效果。 但是目前所提出的这些纹理合成方法并没有太多关注物体形状或者几何形变情况中的纹理渐 变的问题。很多真实的物体的表面纹理都是具有尺度变化性质的。所以当我们合成这样的物 体表面纹理的时候,我们应该产生这种尺度渐变的纹理以产生更真实的纹理合成效果。例如 斑马模型,在斑马的身体和背部通常都是大尺度的条纹,然而在腿部区域这种条纹的尺度是 很小的。为了能够在虚拟现实中产生这种真实的合成效果,这种纹理渐变必须在纹理合成的 过程进行仔细的考虑和设计。不仅仅是在静态模型中,对于形变的模型,我们也很想在形变 的过程中保持纹理的一致性。现有方法还没有很好的解决上述描述的需求,不能产生真实的 纹理渐变特性。

在经典的并行纹理合成算法[L. Wei and M.Levoy.Order-independent texture synthesis. Computer Science Department,Stanford University,2002;S.Lefebvre and H.Hoppe.Parallel  controllable texture synthesis.ACM Transactions on Graphics(TOG),vol.24,no.3,pp.777-786, 2005.]中,它们并没有考虑尺度场的变化。

发明内容

本发明的目的在于解决三维纹理表面直接进行各向同性、异性纹理合成的问题。本发明 方法利用GPU的可编程功能及其高效处理能力来加速纹理合成。

假设网格表面S=(V,C)和m×m纹理样本图像E(m×m为文理样本图像的大小,即 像素个数),其中V表示网格顶点集合,C表示顶点之间的连通信息。表面纹理合成可以认 为是计算每个顶点的映射函数S:V→E(即将二维网格S中的每个网格顶点映射到二维图 像E中的坐标),对于每个顶点i∈V,其中S[i]表示E中的坐标u,所以顶点i的颜色为 E(u)=E[S[i]]。受到并行纹理合成策略[S.Lefebvre and H.Hoppe.Appearance-space texture  synthesis.ACM SIGGRAPH 2006 Papers.ACM,2006,p.548;L. Wei and M.Levoy. Order-independent texture synthesis.Computer Science Department,Stanford University,2002;S. Lefebvre and H.Hoppe.Parallel controllable texture synthesis.ACM Transactions on Graphics (TOG),vol.24,no.3,pp.777-786,2005.]思想的启发,我们将上采样-抖动-校正的合成流程 (即并行纹理合成策略)应用于任意表面,以达到保持几何特征的目的。同时,我们采用了 Gabor特征来提高K-Coherence搜索的准确度。

本发明的技术方案为:

一种基于GPU的几何表面上各向同性/异性纹理合成方法,其步骤为:

1)选取一纹理图像样本E并对图像E进行Gabor滤波,得到图像E的Gabor特征空间;

2)生成图像E的网格顶点结构S;根据网格顶点结构S建立多分辨率金字塔结构,得到 层次化的网格模型序列,进行各项同性的表面纹理合成;即对金字塔结构每一层进行:

a)表面纹理上采样,将顶点i的纹理坐标按照它在网格模型序列中父顶点的纹理坐 标来分配;

b)表面纹理坐标扰动,对上采样以后的几何顶点的纹理坐标进行扰动;

c)根据Gabor特征空间对纹理坐标迭代校正;

d)对于每个网格顶点,获取其M个最近的邻接顶点,记为Vp(p=1...M);

3)对于顶点纹理坐标进行不等距的偏移变换,进行各项异性的表面纹理合成。

进一步的,采用K-Coherence搜索方法计算所述Gabor特征空间的距离;其中, K-Coherence方法为每个样本像素构建一个坐标集合,坐标集合中包含了K个与当前像素具 有相似邻域的像素的坐标。

进一步的,对网格表面S进行重采样,使网格表面的顶点分布均匀。

进一步的,采用正则采样方法对网格表面S进行重采样。

进一步的,用亮度空间(Y,Cb,Cr)描述图像E的彩色纹理,然后对图像E的亮度Y通道 滤波,从而将所述Gabor特征空间T投影到一L维的子空间(Fi)i=1..L;最后将所述L维子空间 与图像E的颜色空间(R,G,B)合并为一H维特征空间(R,G,B,Fi),i=1...L。

进一步的,根据Gabor特征空间进行纹理坐标迭代校正的方法为:首先将网格顶点的邻 域三角形集合通过投影转换成(2N+1)×(2N+1)的网格;然后每个采样点由插值关系得到 一个H维Gabor特征空间,使每个网格顶点i的邻域Ni上形成一个H×(2N+1)×(2N+1) 维的Gabor特征向量;N为大于1小于5的整数。

进一步的,所述步骤2)中,进行各项同性的表面纹理合成方法为:合成像素p时,根 据Gabor特征空间中的像素相似性匹配计算得到当前点p的候选像素集;然后,对于候选像 素集中的每个像素,把样本纹理中与其邻域最为相似的k-1个像素也加入到候选像素集中, 最后从候选像素集中找出与p邻域最为匹配的像素作为最终的合成结果。

进一步的,采用针对网格顶点的切平面投影办法,将网格顶点的邻域三角形集合通过投 影转换成(2N+1)×(2N+1)的网格。

进一步的,采用k-coherence纹理匹配方法进行几何表面顶点的邻域搜索。

进一步的,所述金字塔网格结构相邻两层的顶点个数为4∶1。

进一步的,所述步骤3)中,首先根据图像样本E表面的曲率得到其纹理坐标的不等距 偏移尺度场,然后对于纹理坐标进行偏移,得到随几何表面变化的表面纹理特征,进行各项 异性的表面纹理合成。

进一步的,所述步骤b)中,通过一个二维哈希随机函数H:Z→[0,1]2以及一个由用户 控制的随机参数来控制表面纹理坐标扰动。

2.1Gabor空间

类似于2D基于样本图像的纹理合成,合成的像素的邻域和样本图像像素的邻域的相似度 通常通过特征距离的计算量进行衡量。找到与合成表面像素相似的样本图像的像素是提高表 面合成纹理视觉质量的关键。之前的方法通过空间邻域特征或者降维德空间邻域特征(也称为 表现空间[S.Lefebvre and H.Hoppe.Appearance-space texture synthesis.ACM SIGGRAPH 2006 Papers.ACM,2006,p.548;])的距离来进行邻域的匹配。然而,样本像素的多尺度特征是很难 通过纹理空间邻域的SSD(Sum-of-Squared-Difference,平方差距离)距离进行捕捉的。

本发明通过对待处理图像E进行Gabor滤波,得到E的Gabor特征空间。因为Gabor滤 波统一了纹理特征的频率和多尺度空间分析。

针对2D样本图像E(x,y),它的Gabor小波变换为:

Em,n(x,y)=∑x1y1E(x1,y1)gm,n(x-x1,y-y1).                (1)

其中,gm,n表示文献[B.S.Manjunath and W.-Y.Ma.Texture features for browsing and  retrieval of image data.IEEE Trans.Pattern Anal.Mach.Intell.,vol.18,no.8,pp.837-842,1996.] 中的自相似滤波器组,m,n分别表示的是文献中Gabor滤波器的尺度和方向(m=1...C,n=1...K) (x1,y1)表示几何表面的任一顶点,N的含义为Gabor滤波器采样窗口的大小。滤波图像幅值均 值和方差用来构造特征空间,分别定义如下:

滤波图像幅值均值:um,n=1NΣxΣy|Em,n(x,y)|,---(2)

滤波图像幅值方差:σm,n=1NΣxΣy(|Em,n(x,y)|-μm,n)2,---(3)

很多纹理分类技术,采用文献[B.S.Manjunath and W.-Y.Ma.Texture features for browsing and  retrieval o fimage data.IEEE Trans.Pattern Anal.Mach.Intell.,vol.18,no.8,pp.837-842,1996.] 使用4个尺度(C=4)和6个方向(K=6)。Gabor特征空间如下:

T=[μ00σ0,1μ0,1…μ3,5σ3,5」                (4)

彩色纹理可以使用不同的颜色空间描述,(R,G,B)或者亮度/色度颜色空间(Y,Cb,Cr)。在 本发明的纹理合成算法中,Gabor滤波器组用来对样本纹理图像的亮度Y通道滤波。将48维 的特征矢量使用PCA(Principle-Component-Analysis)方法投影到6维的子空间(Fi)i=1..6,也可以 投影到L维(一般维数小于20),对应的合并后的空间可以是H维(H=L+3)。因此,用于合 成的Gabor特征空间可以表示为9维空间(R,G,B,Fi),i=1...6。低维的Gabor特征空间依据原始 样本图像通过预计算的方法产生。

为了加速纹理合成速度,在Gabor特征空间的距离使用了K-Coherence搜索方法。 K-Coherence方法为每个样本像素构建一个坐标集合,这个坐标集合中包含了K个与当前像 素具有相似邻域的像素的坐标。实验表明,样本像素的相似集可以被准确的找到,因为Gabor 滤波器具有比SSD指标更好的区分特征和纹理结构的特性。在图1显示了我们方法的主要结 构及各子模块调用关系。与其它的纹理合成方法相比,在K-Coherence构建的过程中,我们 使用了Gabor特征空间,更好更准确的保持了纹理结构特征,如图2所示。图3同样也证明 了使用Gabor特征能够得到较理想的纹理合成结果。

2.2GPU预处理

在进行实时表面纹理合成之前,我们利用ReMesh[M.Attene and B.Falcidieno.ReMESH: An interactive environment to edit and repair triangle meshes.in IEEE International Conference on  Shape Modeling and Applications,2006.SMI 2006,2006,pp.41-41.]方法对网格表面S进行重采 样,使网格表面的顶点分布尽量均匀。层级结构的网格同样通过控制相邻两层的顶点个数为 4∶1的方法实现。算法中金子塔网格结构的相邻两层的父子关系可以用公式表示为Pl+1(j)=k, 其中j∈Sl+1,k∈Sl,并且

k=argminkSl||j-k||---(5)

其中,函数p()表示的是对于子网格上的顶点,求解其在父网格上对应的父亲顶点的过程; j是表示子网格Sl+1的任意一顶点,k表示父网格的顶点(顶点k是顶点j的父亲),Sl是子几 何网格Sl+1的父网格。网格结构S与样本图像E是一一对应的关系,S是由粗到细的一系列 网格序列,E也是由粗到细的一系列纹理样本(即金字塔结构)父子关系通过预处理得到并 保存以便在实时合成中加速上采样步骤。

我们应用高斯滤波器来构建纹理样本图像的高斯堆栈。在第i堆栈层,滤波器的半径为 2i-1+1。通过对纹理样本做的处理,得到纹理样本的高斯金字塔表达,这样的高斯金字塔结 构的纹理样本为后面纹理合成是与几何网格的金字塔结构一一对应。

2.3各项同性的表面纹理合成

由于我们将表面纹理看成是顶点颜色直接合成到网格表面,实际合成的基本单元为曲面 顶点。在以往的工作中,一个由粗到细的纹理金字塔可以捕获多分辨率的纹理结构与小社区。 我们基于曲面的顶点网格结构(顶点的网格结构即为S),建立了一个由粗及细的2D纹理样 本的多分辨率金字塔结构(参考文献:L. Wei and M.Levoy.Texture synthesis over arbitrary  manifold surfaces.Proceedings of the 28th annual conference on Computer graphics and interactive techniques.ACM New York,NY,USA,2001,pp.355-360.),以获取2D纹理样本中的多分辨率 结构信息,同时我们基于几何表面的顶点网格S也建立了多分辨率金字塔结构,建立了层次 化的网格模型序列,并结合纹理样本的多分辨率金字塔结构来进行由上自下,由粗到细的多 分辨率合成。我们运用层次化纹理合成创造从低到更高的分辨率。在初始的粗分辨率网格中, 我们通过随机指定纹理坐标,这相当于在金字塔顶部输入随机的白化噪声纹理。对于每一个 金字塔的水平,我们执行3个合成算法步骤:上采样,扰动和校正。对每个网格顶点进行与 次序无关的合成步骤,具体说明如下:

(1)表面纹理上采样

在表面纹理的上采样中,顶点i的纹理坐标被直接按照它在网格层次模型中的父顶点(处 于较粗的网格分辨率中)的纹理坐标来分配。这里的网格顶点算法,不像二维纹理的上采样 算法。因为这里新算法不关心父子顶点间的纹理坐标在方向和距离上的相似性。其原因在于 计算几何网格表面的父子顶点层次关系间纹理坐标的偏移坐标繁琐,且直接继承最后的综合 协调礼物等效的视觉质量。所以新算法中几何网格表面的Mesh提升采样可以被数学表达为:

Sl=(Sl-1[Pl(i)])modm

即顶点i的纹理坐标被直接按照它在网格层次模型中的父顶点(处于较粗的网格分辨率 中)的纹理坐标来分配。

(2)表面纹理坐标扰动

为了避免纹理合成的效果出现不自然的分布规律,我们应用坐标的扰动函数对于上采样 以后的几何顶点的纹理坐标进行必要的扰动。这样的一个扰动函数J1(i)可以通过一个二维哈 希随机函数H:Z→[0,1]2(Z就是一个随机二维坐标数,H:Z→[0,1]2表示的是随机生成一个 2维坐标,坐标的两个维度范围都在[0,1]内。)以及一个由用户控制的随机参数来控制。在 几何表面纹理坐标的上采样中,由于父子顶点间坐标的直接继承,其不规则几何表面的顶点 拓扑关系已经产生了一定的纹理随机性,所以在通常情况下,扰动过程是一种交互的处理步 骤,可由用户选择并控制的表面纹理的随机性扰动。

(3)纹理坐标迭代校正

在整个表面纹理合成的过程中,表面纹理的核心是并行化的纹理坐标迭代校正过程。新 算法的纹理校正过程包括三个步骤:(1)每个表面顶点i,我们对每个网格顶点在其切平面上 得到5×5采样点网格,(2)每个采样点可以由插值关系得到一个九维的Gabor特征向量,这 样每个网格顶点i的邻域Ni(5×5采样点网格,)上可以形成一个9×5×5维的Gabor特征向量。 (3)我们对于每个网格顶点,获取其M个(此处M为6)个最近的邻接顶点,记为Vp(p=1...6)。 (4)在实际合成中,我们将k-coherence纹理匹配方法来进行几何表面顶点的邻域搜索。在合成 像素p时,先根据Gabor特征空间中的像素相似性匹配计算得到当前点p的候选像素集,然 后,对于候选像素集中的每个像素,把样本纹理中与其邻域最为相似的k-1个像素也加入到 候选像素集中(k的含义是每个像素的邻居像素个数),最后从候选像素集中找出与p邻域最 为匹配的像素作为最终的合成结果,这种表面纹理的合成技术考虑了纹理合成的并行性和生 成质量,可以方便地在GPU得到快速实现。

2.4各向异性的表面纹理合成

在新算法中,我们可以通过采用不同方向上的不等距偏移来合成几何表面纹理,从而达 到各项异性的纹理表观,显示几何表面纹理中的不同纹元的比例效果。值得注意的是虽然传 统的雅可比场J可直接地评价规则的平面参数化效果,其对全局的曲面定义却很难进行精确 合适的参数化计算,特别是其局部表面的矢量场旋转变换也具有很大的歧义性(E.Praun,A. Finkelstein,and H.Hoppe.Lapped textures[C]//Proceedings of SIGGRAPH‘2000,Computer  Graphics,Annual Conference Series,2000:465-470)。虽然也可以采用测地距离来定义集合表面 的雅可比场,其几何局部表面的旋转变换计算仍然具有高度的主观性。为此,新算法在各向 异性的纹理合成中并没有采用定义雅可比场的方法来合成几何表面纹理,而是寻求将几何表 面解析成纹理单元中邻居纹理坐标的各向异性的偏移:为此,我们通过对于顶点与其邻域纹 理坐标的偏移Ni(Δ)来实现与雅可比变换等效的纹理合成效果。具体来说我们定义了不等距放 缩场Ds=DuDv,这样其雅可比变换偏移坐标可以表示表示为:

Ni(Δ)=Jacobiani-1Ni(Δ)=Du(i)Ni(Δ)uDv(i)Ni(Δ)v

其中,Du(i)表示顶点i在纹理坐标空间(uv空间)中的u方向偏移值;Dv(i)表示顶点i 在纹理坐标空间(uv空间)中的v方向偏移值;Ni表示顶点i所在的局部几何邻域,是一个 一个微小平面构成;Ni(Δ)表示在顶点i的局部小邻域上,顶点i的直接相邻的采样点位置; Ni’(Δ)则表示,经过雅可比偏移后,在顶点i的局部的直接相邻的采样点位置;特别地,如果 Du=Dv,这表明每个顶点i的缩放为等距偏移,这样的设置可以让用户生成随几何表面位置变 化而发生形态变化的纹理外观。同时在不等距的纹理合成中,我们也可以设置Du≠Dv,这种 表面放缩场的变化可以导致纹理单元,即纹元的形态发生挤压变形效果。

与现有技术相比,本发明的积极效果为:

我们的方法采用完全可并行计算的模式,通过构建几何模型表面和纹理样本的双金字塔 结构,利用上采样,扰动,以及校正三个层次的操作,实现了几何表面纹理的快速逼真的合 成效果,在合成的过程中与模型中每个顶点的合成顺序是无关的,所以很适合于GPU实现。 为了合成能够表现形状特性和几何形变的表面纹理,沿着表面变化的尺度场是有很大的作用 的。本发明的算法通过构建反映表面几何特征或人工交互设计的尺度场,能够产生与几何表 面保持一致性的纹理,同时可以利用雅可比变换可以调节表面纹理生成的不同尺度效果。具 有该效果的纹理具有符合自然物体的纹理特性,或者达到设计的形状特性。本发明提出的算 法具有以下的优点:

1)算法直接在3D表面合成纹理,而不需要繁重的人工操作和全局表面参数化。并且我 们尝试使用了Gabor特征来提取图像的K-Coherence匹配。

2)因为算法能够进行各向同性/异性的纹理合成,所以我们能够在合成纹理的时候保持形 状特性和形变一致性。

3)因为算法流程是与顶点顺序无关的,所以它可以完全并行化,并在GPU上实现。

附图说明

图1并行表面纹理合成主要结构模块及相互关系示意图

图2.并行处理网格顶点i的邻域重采样网格示意图;

图3.各向同性的纹理合成效果,测试模型具有400,000(左)个顶点以及100,000(右)个顶点, 存储量431.5MB以及109.9MB显存.邻域重采样分辨率为7×7;

图4.各向异性表面纹理合成效果;

图4(a).基于表面曲率的非均匀表面放缩场示意图;

图4(b).生成各向异性的表面纹理。在测试的骆驼模型表面上,其身体部位的纹元要 大于其脚部和颈部的纹元大小;

图5.本发明可以用在可变形物体的表面纹理合成的效果示意图。

具体实施方式

下面结合实施例对本发明方法作进一步说明。

本实施例的微机配置为Intel Core Duo 2.6G CPU,1G内存,GeForce8800显卡以及Window  XP操作系统。按照下述步骤生成几何表面的纹理合成过程:

预处理阶段:

(1)按照如图1所示,对待处理图像E生成基于Gabor滤波器的特征空间作为样本纹理 的匹配基准。

类似于基于样本的二维纹理合成算想法,本发明中的纹理合成技术的一个重要基石就是 对空间中像素相似性的衡量,这种衡量往往以像素间的特征距离度量为基础。要在图像E中 查找与合成的表面纹理的合适样本,根据相似性找到最恰当的纹理块匹配,对于改善视觉质 量是至关重要的。以往的算法中,对于相匹配的邻里通过在颜色空间中测量距离(即所谓的 外观空间参考:S.Lefebvre and H.Hoppe.Appearance-space texture synthesis.ACM SIGGRAPH 2006,p.548)。这些技术往往很难得到多分辨率的纹理特点,特别是对于不规则或者半规则的 纹理样本难以捕捉其特有的纹理距离邻里空间。

(2)生成E对应网格表面S中表面网格顶点的邻域网格并进行纹理合成。

在纹理的合成过程中,首先采用针对网格顶点的切平面投影办法,将网格顶点的邻域三 角形集合通过投影转换成5×5或者7×7邻域(一般是在(2N+1)×(2N+1)的网格,N一 般为大于1小于5的整数)重采样网格(如图2所示)。由此从而进一步地对于各个顶点的邻 域网格进行并行化纹理处理,一般而言,对于几何表面先建立由粗到细的三层网格层次模型, 然后通过在每层网格模型上采用上采样,扰动以及迭代校正的过程生成模型表面的纹理坐标。 这样的合成技术可以方便快捷地进行各向同性的纹理合成,并通过图形硬件可以实现并行加 速,图3给出了有关各向同性的表面纹理合成结果示意图。

(3)各向异性的纹理合成算法与变形表面纹理生成。

在纹理合成的过程中,如果对于顶点纹理坐标进行不等距的偏移变换,通过迭代优化就 可以得到各向异性的纹理合成效果。如图4所示,首先根据骆驼模型表面的曲率得到其纹理 坐标的不等距偏移尺度场,然后对于纹理坐标进行偏移,就会得到随几何表面变化的表面纹 理特征。同样这种各向异性的纹理合成算法可以应用到动画和变形几何表面,得到逼真的纹 理合成效果(如图5所示)。

GPU-CUDA加速阶段:

新算法在表面纹理合成的算法可以完全地运行在并行化的图形硬件平台CUDA框架中。 我们把网格数据以指针索引矩阵的结构,组成1D/2D数组,作为CUDA的全局内存数据进行 管理,由指针索引。我们还需要存储在GPU内存中运行时重新计算数据合成的数据,包括网 格相关和样本相关两组数据,分别描述如下:

1.几何网格数据-网格顶点,表面顶点邻域顶点集合,顶点局部顶点坐标系,(正 常,切向量),k个最近邻居顶点集,每个顶点的雅可比参数。该局部坐标系由顶点法向量, 主切线方向和次切线方向作为z,x,y轴,所谓正常是指顶点法向量和切向量均进行了单位化。

2.样本数据-高斯堆栈纹理集,k-coherence顶点集合,合成纹理坐标的索引数组。

在CUDA程序中的数据组织中,我们对于表面任意一个顶点,在其局部范围生成几何邻 近区域(邻域),然后我们针对该邻域块进行快速纹理合成。从算法的实验中,以独立的综合 工程以及网格上的表面。由于运行时内核合成,多遍的纹理校正的过程在5×5或7×7的顶点 邻域中,进行并行合成,即对网格表面S中任意一个顶点,在5×5或7×7的顶点邻域中进行 校正,然后采用步骤1-5的方法进行并行合成,执行步骤描述如下:

1)收集当前顶点的邻里特征向量顶点;邻里特征向量顶点由欧氏距离最近的若干顶点 确定。

2)计算的2环相邻的顶点坐标在局部坐标平面上;即计算每个候选点在特征空间中距离 当前顶点的特征空间距离。

3)收集处理顶点的所有候选样本点集;

4)计算每个候选点在特征空间中的特征空间距离;

5)计算上述距离的最小距离集,并得到新的映射索引。

原则上,这些合成步骤中每个并行处理过程应具备相同的CUDA运行内核,但这种限制 往往降低了GPU内存使用的灵活性。根据实际需要,我们将整个过程分割成多个CUDA处 理内核,每个内核只处理表面纹理合成的一部分功能。具体来说,每个内核按1维Gabor特 征空间数据,或者一维K-coherence矢量数据,同时在全局显卡内存中来存储临时数据。然后, 我们反复调用新的内核函数对特征向量和k-coherence算法得到最后的纹理坐标。使我们在 CUDA开发实现的并行纹理合成程序可以处理较大的几何网格,已经较大顶点邻域范围。

按照上述过程,本实例中选用三个模型进行了表面纹理的合成实验。表1中对三个模型 的表面纹理合成时间进行了统计,并将GPU实现与CPU实现效率做了比较。

表1表面纹理合成算法的时间效率统计(CPU,GPU)

表1说明了新的表面纹理合成算法分别在GPU和CPU环境中,针对各种几何模型纹理合 成效果,每个模型具有三个分辨率下的网格层次。由表1可知,采用GPU的并行处理加速倍 数大约在20-30倍之间。

在本发明中,我们提出了一种基于GPU的并行化同性/异性表面纹理合成的技术,创造 了与几何特征一致的纹理合成效果,同时免去了网格的全局参数化计算过程。新技术引进 Gabor特征空间来捕获纹理的外观特征,从而实现对于纹理结构特征的较好保持。我们提出 了同性/异性的纹理尺度场,可以产生多种不同的表面纹理形态效果,整个纹理合成过程简单 可控。纹理形状与表面几何结构具有很好的一致性,并可以用于各种几何变形下纹理效果。 而异性的表面纹理合成技术可以用于多种静态和动画物体表面。本发明利用GPU加速表面纹 理的合成方法可以直接推广应用到相关的动画和几何设计等图形处理过程中,具有较强的实 用意义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号