专利名称:基于单元结构的体纹理合成方法
技术领域:
本发明涉及数字图像处理技术领域,特别涉及一种基于单元结构的体纹理合成方法。
背景技术:
在计算机图形学领域中,为了更好地展现三维模型的视觉效果,纹理映射被广泛应用于将二维纹理图像映射到三维模型表面,自然界中的真实物体不仅具有丰富的表面纹理特征,同时还具有内部的三维结构,例如大理石内部的结构、树木的花纹等等。使用三维体纹理可以很好地描述物体的内部结构,同时三维纹理映射不需要进行参数化的步骤,因而就避免了传统的二维纹理映射中由于使用曲面参数化而导致的纹理扭曲问题。和二维纹理相比,直接获取三维纹理非常复杂而且很难获取丰富的颜色信息,因此从二维图像纹理合成三维体纹理是当前获得三维纹理的常用方法。已有一些传统方法从二维纹理图像合成三维体纹理,其中比较经典的是2005年Johannes Kopf等提出的方法, 但这类方法没有考虑三维纹理中的单元结构,不能保证体纹理的几何结构的合理性。对于由单元结构构成的体纹理,这种现象就尤为明显,例如由许多小块堆成的几何体,传统方法很难合成内部的小块的几何结构。体纹理的内部结构是体纹理的一种自然属性,高质量的体纹理应具有合理的、接近于真实情况的内部几何结构,因此当从二维纹理合成三维体纹理时,应当充分利用纹理中的几何信息,从二维几何信息重构三维结构,进而能够获得更高质量的合成结果。
发明内容
(一)要解决的技术问题本发明所要解决的技术问题是如何提供一种能够保证合成的体纹理中单元结构的合理性,并且很好的保留单元结构排布的规律和相邻关系的体纹理合成方法。( 二 )技术方案为解决上述技术问题,本发明提供了一种基于单元结构的体纹理合成方法,包括以下步骤Si、分析二维纹理图像,得到三维单元结构的二维截面,使用空间中三个垂直方向的二维截面来构造多个三维单元结构;S2、分析所述二维纹理图像,计算所述多个三维单元结构在空间中的相邻关系,所述相邻关系由所述多个三维单元结构的三个垂直方向的二维截面在所述二维纹理图像上的相邻关系推导得到;S3、根据所述多个三维单元结构在空间中的相邻关系,在空间中依次放置所述多个三维单元结构,当所有三维单元结构放置完毕后,对所有三维单元结构的位置进行调整并对其形状进行放缩;S4、合成各三维单元结构之间的介质,得到最终的体纹理。
优选地,步骤Sl具体为分析二维纹理图像,提取出二维纹理图像中的一个单元结构,此单元结构被视为所要构造的一个三维单元结构的二维截面,将空间中三个垂直方向的二维截面之一视为基础面,另两个二维截面同时围绕此基础面的垂线进行旋转,在空间中扫过的区域被视为三维单元结构的内部,从而构造出一个三维单元结构。
优选地,步骤S2具体为对于其中一个三维单元结构A,根据二维纹理图像,计算构成该三维单元结构A的三个二维截面之间的相邻关系,包含这些相邻的二维截面的三维单元结构作为该三维单元结构A的一个邻居,该三维单元结构A与作为其邻居的三维单元结构之间的位移关系由所对应的二维截面之间的位移所决定,由此计算所构造的所有三维单元结构在空间中的相邻关系。优选地,步骤S3中,使用贪心的方法在空间中依次放置所述多个三维单元结构。优选地,步骤S3中,首先在空间中的任意位置放置任意一个三维单元结构,然后从该三维单元结构的相邻关系中选取一个和该三维单元结构在空间中不重叠的结构放置在空间中,重复此贪心的步骤,直到空间中无法再放置更多的三维单元结构为止,放置完毕后,对所有三维单元结构的位置进行调整,最后在保证所有三维单元结构不重叠的情况下, 对一些三维单元结构进行形状放大,以填补空间中剩余的空隙。优选地,步骤S4中,使用并行的方法合成各三维单元结构之间的介质,合成时只考虑所述二维纹理图像中的非单元结构截面部分。(三)有益效果按照本发明的步骤实现体纹理合成,能够保证合成的体纹理中单元结构的合理性,并且能够很好地保留单元结构排布的规律和相邻关系,提高体纹理合成的质量。
图1为本发明的方法流程图;图2为根据输入的二维纹理图像构造三维单元结构的示例图;图3为所构造的维单元结构的示例图;图4为本发明中放置三维单元结构步骤的详细流程图;图5为本发明所合成的体纹理示意。
具体实施例方式下面对于本发明所提出的一种基于单元结构的体纹理合成方法,结合附图和实施例详细说明。参照附图1,为本发明的方法流程图。输入数据为由二维单元结构构成的二维纹理图像,输出为保证内部结合结构的三维体纹理。图中所表示的步骤为Si.构造三维单元结构通过分析输入的二维纹理图像,提取出二维纹理图像中的单元结构,此单元结构被视为三维单元结构的二维截面,根据空间中三个垂直方向的二维截面,来构造三维单元结构的几何形状和内部特征(即构造出了三维单元结构),具体方法如图2所示将一个二维截面视为基础面,另两个二维截面围绕此基础面的垂线进行旋转,其在空间中扫过的区域被视为三维单元结构的内部。构造的三维单元结构的示例图如图3所示,是根据两个不同的二维纹理图像(第一列的两个图像)分别构造的两个三维单元结 构。S2.计算三维单元结构在空间中的相邻关系二维纹理图像中的单元结构具有二维的相邻关系,对于一个构造好的三维单元结构,本步骤计算该三维单元结构的相邻关系, 即可能与其相邻的其他三维单元结构。具体方法为对于其中一个三维单元结构A,根据二维纹理图像,计算构成该三维单元结构A的三个二维截面之间的相邻关系,包含这些相邻的二维截面的三维单元结构作为该三维单元结构A的一个邻居,该三维单元结构A与作为其邻居的三维单元结构之间的位移关系由所对应的二维截面之间的位移所决定,由此计算所构造的所有三维单元结构在空间中的相邻关系。S3.在空间中放置三维单元结构并进行位置形状调整本步骤根据构造的三维单元结构和其相邻关系合成体纹理,具体步骤如图4所示首先在空间中的任意位置放置任意一个三维单元结构,然后从该三维单元结构的相邻关系中选取一个和现有三维单元结构在空间中不重叠的结构放置在空间中,重复此贪心的步骤,直到空间中无法再放置更多的三维单元结构为止。放置完毕后,对所有三维单元结构的位置进行调整(调整方法为假定在所有三维单元结构之间存在与距离的平方成反比的斥力关系,使用迭代的方法根据斥力的大小和方向,移动三维单元结构以减小每个三维单元结构所受斥力的大小,达到近似平衡,理想的平衡是每个三维单元结构所受的斥力的和为零,也就是所受周围相邻的单元结构的斥力正好相抵消。在这里只迭代几步,每个单元结构向其所受到的斥力方向移动,减小所受斥力,达到近似平衡状态),最后在保证不重叠的基础下,对三维单元结构进行形状放大,以填补空间(此空间指的是三维的体纹理块,默认是单位长度为1的立方体)中剩余的空隙,从而可提高体纹理合成质量。S4.合成三维单元结构之间的介质本步骤合成三维单元结构之间的空隙的纹理,具体方法为对二维纹理图像中的单元结构之间的空隙的纹理进行分析,使用与Lazy Solid Texture Synthesis (2008),Yue Dong etc.中所公开的方法相似的并行的办法计算三维单元结构之间空隙的纹理,和 Lazy Solid Texture Synthesis (2008),Yue Dong etc. 的方法不同的是本发明在合成时只考虑二维纹理图像中的非单元结构截面部分(在输入的二维纹理图像中,有些像素(即单元结构)作为三维单元结构的二维截面,该二维纹理图像中非单元结构(即不作为三维单元结构的二维截面的部分)就是所述非单元结构截面部分。例如输入一张墙壁的图像,三维单元结构的二维截面就是图像中砖块的截面,而砖块之间的空隙则被视为图像中的非单元结构截面部分),也只合成三维单元结构之间空隙的体纹理。图5给出了三个使用本方法所合成的体纹理的结果示意,其中左边一列的图片是输入的二维纹理图像,右边一列的体纹理是对应的输出结果。由图5可以看出,输出结构能够保证合成的体纹理中单元结构的合理性,并且很好地保留单元结构排布的规律和相邻关系。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种基于单元结构的体纹理合成方法,其特征在于,包括以下步骤51、分析二维纹理图像,得到三维单元结构的二维截面,使用空间中三个垂直方向的二维截面来构造多个三维单元结构;52、分析所述二维纹理图像,计算所述多个三维单元结构在空间中的相邻关系,所述相邻关系由所述多个三维单元结构的三个垂直方向的二维截面在所述二维纹理图像上的相邻关系推导得到;53、根据所述多个三维单元结构在空间中的相邻关系,在空间中依次放置所述多个三维单元结构,当所有三维单元结构放置完毕后,对所有三维单元结构的位置进行调整并对其形状进行放缩;54、合成各三维单元结构之间的介质,得到最终的体纹理。
2.根据权利要求1所述的方法,其特征在于,步骤Sl具体为分析二维纹理图像,提取出二维纹理图像中的一个单元结构,此单元结构被视为所要构造的一个三维单元结构的二维截面,将空间中三个垂直方向的二维截面之一视为基础面,另两个二维截面同时围绕此基础面的垂线进行旋转,在空间中扫过的区域被视为三维单元结构的内部,从而构造出一个三维单元结构。
3.根据权利要求1所述的方法,其特征在于,步骤S2具体为对于其中一个三维单元结构A,根据二维纹理图像,计算构成该三维单元结构A的三个二维截面之间的相邻关系, 包含这些相邻的二维截面的三维单元结构作为该三维单元结构A的一个邻居,该三维单元结构A与作为其邻居的三维单元结构之间的位移关系由所对应的二维截面之间的位移所决定,由此计算所构造的所有三维单元结构在空间中的相邻关系。
4.根据权利要求1所述的方法,其特征在于,步骤S3中,使用贪心的方法在空间中依次放置所述多个三维单元结构。
5.根据权利要求4所述的方法,其特征在于,步骤S3中,首先在空间中的任意位置放置任意一个三维单元结构,然后从该三维单元结构的相邻关系中选取一个和该三维单元结构在空间中不重叠的结构放置在空间中,重复此贪心的步骤,直到空间中无法再放置更多的三维单元结构为止,放置完毕后,对所有三维单元结构的位置进行调整,最后在保证所有三维单元结构不重叠的情况下,对一些三维单元结构进行形状放大,以填补空间中剩余的空隙。
6.根据权利要求1 5中任一项所述的方法,其特征在于,步骤S4中,使用并行的方法合成各三维单元结构之间的介质,合成时只考虑所述二维纹理图像中的非单元结构截面部分。
全文摘要
本发明涉及数字图像处理技术领域。公开了一种基于单元结构的体纹理合成方法,包括以下步骤S1、分析二维纹理图像,得到三维单元结构的二维截面,使用空间中三个垂直方向的二维截面来构造多个三维单元结构;S2、分析所述二维纹理图像,计算所述多个三维单元结构在空间中的相邻关系,所述相邻关系由所述多个三维单元结构的三个垂直方向的二维截面在所述二维纹理图像上的相邻关系推导得到;S3、根据所述多个三维单元结构在空间中的相邻关系,在空间中依次放置所述多个三维单元结构,当所有三维单元结构放置完毕后,对所有三维单元结构的位置进行调整并对其形状进行放缩;S4、合成各三维单元结构之间的介质,得到最终的体纹理。
文档编号G06T15/04GK102298790SQ20111026436
公开日2011年12月28日 申请日期2011年9月7日 优先权日2011年9月7日
发明者杜松沛, 胡事民 申请人:清华大学