一种适用于三维游戏与虚拟现实应用的纹理图像优化方法

文档序号:33033639发布日期:2023-01-24 18:12阅读:27来源:国知局
一种适用于三维游戏与虚拟现实应用的纹理图像优化方法

1.本发明属于图像处理领域,具体涉及一种适用于三维游戏与虚拟现实应用的纹理图像优化方法。


背景技术:

2.在三维游戏与虚拟现实应用中,纹理图像是用于渲染富细节模型的重要工具。通过从三维模型到纹理图像的纹理映射,可以实现丰富的细节。随着产业发展,用户对渲染细节的要求逐步提高,这显著增加了纹理图像的大小,从而增大了存储、传输负担。目前已有的纹理压缩技术大多属于编码压缩技术,无法针对全局纹理信号特性进行优化。


技术实现要素:

3.针对现有技术的不足,本发明提出一种适用于三维游戏与虚拟现实应用的纹理图像优化方法,通过修改纹理图像上内容的分布实现纹理图像优化。
4.本发明所采用的具体技术方案如下:
5.一种适用于三维游戏与虚拟现实应用的纹理图像优化方法,包括:
6.s1、获取由空间三角形网格表示的三维模型、平面三角形网格表示的纹理映射、由二维点阵图像表示的纹理图像;
7.s2、对三维模型的每一个三角形,在保持渲染质量的要求下,将其对应的纹理映射三角形压缩,得到逐三角形的期望大小和方向分布;
8.s3、将表示纹理映射的平面三角形网格按照步骤s2得到的期望大小和方向分布进行优化,得到输出纹理映射平面三角形网格;
9.s4、将原纹理图像烘焙为与输出纹理映射平面三角形网格对应的新纹理映射,即得到优化后的纹理图像。
10.作为本发明的优选,所述步骤s1中,三维模型表示为空间三角形网格m=《v,t》,其中v={v
′i}表示三维模型的顶点集合,v
′i是三维模型中第i个顶点的三维坐标,t={ti}是构成三维模型的三角形集合,ti是构成三维模型的第i个三角形;
11.纹理映射表示为平面三角形网格p=《u,s》,其中u={ui′
}表示纹理映射网格中顶点集合,ui′
是纹理映射网格中第i个顶点的二维坐标,s={si′
}是构成平面三角形网格的三角形集合,其中si′
是构成输入纹理映射平面三角形网格的第i个三角形,即纹理映射三角形;
12.纹理图像在缩放后与纹理映射的大小相同,三维模型上三角形ti的细节由纹理图像上被si′
所覆盖的纹理图像的部分ii′
提供,ti、si′
、ii′
为一一对应关系。
13.作为本发明的优选,所述步骤s2的具体实现方法如下:
14.s21、针对三维模型中的每一个三角形ti,确定一个观察视角ci;
15.s22、初始化输出纹理映射三角形si=si′

16.s23、使用ii′
、ti、si′
、ci的信息渲染三维模型中的第i个三角形ti至屏幕,得到屏幕
图像ji′

17.s24、生成与输出纹理映射三角形si相匹配的局部纹理图像ii;
18.s25、使用步骤s24中生成的局部纹理图像ii、以及ti、si、ci的信息渲染三维模型中的第i个三角形ti至屏幕,得到屏幕图像ji;
19.s26、通过图像差异算法计算屏幕图像ji与ji′
的差异,得到差异指标qi;
20.s27、根据差异指标qi,更新输出纹理映射三角形si;
21.s28、如果满足终止条件,则终止,将步骤s27得到的si作为最终的输出纹理映射三角形,即得到了纹理映射三角形的期望大小和方向;否则跳转至s24。
22.作为本发明的优选,步骤s26所述图像差异算法采用mse算法。
23.作为本发明的优选,步骤s26所述图像差异算法采用gmsd算法。
24.作为本发明的优选,步骤s27所述更新输出纹理映射三角形si的方法采用贝叶斯优化求解如下优化问题实现:
[0025][0026]
其中,λ1,λ2∈(0,1],表示伸缩矩阵的伸缩系数;α表示旋转矩阵的旋转角度,β表示伸缩矩阵中第一个伸缩轴与横轴的夹角;l

(.)表示障碍函数,∈为用户期望的最差渲染质量,
[0027]
根据上述求解结果,更新输出纹理三角形si:
[0028]
si=r(α)s(β,λ1,λ2)si′
[0029]
其中,r(α)为逆时针旋转α度的旋转矩阵,s(β,λ1,λ2)为以β度方向为轴1,方向为轴2,分别在两轴上伸缩λ1,λ2的伸缩矩阵。
[0030]
作为本发明的优选,所述障碍函数表示为:
[0031][0032]
其中,q表示差异指标,在针对三维模型中的第i个三角形ti时,q=qi。
[0033]
作为本发明的优选,观察视角ci为位于三角形ti法向方向,且指向ti重心的平行投影摄像机。
[0034]
作为本发明的优选,所述步骤s3的具体实现方法如下:
[0035]
s31、对于三维模型中的每一个三角形ti,计算满足的映射的线性部分
[0036]
s32、对进行极分解其中,是旋转部分,是伸缩部分。
[0037]
s33、求解下述优化问题:
[0038][0039][0040]
其中,是ki倍的90度旋转矩阵,与分别是旋转部分和伸缩部分设计的参
数,表示f范数的平方,ki表示第i个三角形si对应的旋转系数;φ表示待优化的纹理映射,表示待优化的纹理映射针对第i个三角形si的线性部分,ri表示待优化的针对第i个三角形si的旋转矩阵,si表示待优化的针对第i个三角形si的伸缩矩阵,det(.)表示行列式,so(2)表示所有平面上旋转矩阵构成的集合。
[0041]
作为本发明的优选,所述步骤s33中,与的计算方法为分别均匀采样满足和的φi,其中,φi表示待优化的纹理映射φ针对第i个三角形si的部分;
[0042]
接着,根据计算得到的满足的φi,分别计算si=φi(si′
),再利用计算得到的si分别计算差异指标qi,取所有差异指标qi的方差作为
[0043]
同理,根据计算得到的满足的φi,分别计算si=φi(si′
),再利用计算得到的si分别计算差异指标qi,取所有差异指标qi的方差作为
[0044]
作为本发明的优选,所述步骤s4可通过工具blender的烘焙功能实现。
[0045]
本发明相对于现有技术而言,具有以下有益效果:
[0046]
基于本发明得到的纹理图像,由于其在满足渲染质量要求的前提下尽量减小了纹理映射三角形的面积,可以用更低的分辨率实现相同质量的渲染,从而节省存储、带宽和计算资源。
附图说明
[0047]
图1为适用于三维游戏与虚拟现实应用的纹理图像优化方法流程图。
[0048]
图2为本发明实施例中输入的三维模型空间三角形网格。
[0049]
图3为本发明实施例中输入的纹理映射平面三角形网格。
[0050]
图4为本发明实施例中输入的纹理图像。
[0051]
图5为本发明实施例中优化得到的纹理映射平面三角形网格。
[0052]
图6为本发明实施例中通过优化的纹理映射平面三角形网格得到的优化后的纹理图像。
具体实施方式
[0053]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制。本发明各个实施例中的技术特征在没有相互冲突的前提下,均可进行相应组合。
[0054]
如图1所示,在本发明的一个较佳实施例中,提供了一种适用于三维游戏与虚拟现实应用的纹理图像优化方法,通过修改纹理图像上内容的分布来实现,其主要包括:
[0055]
s1、获取由空间三角形网格表示的三维模型、平面三角形网格表示的纹理映射、由二维点阵图像表示的纹理图像;
[0056]
作为本发明实施例的一种较佳实现方式,所述步骤s1中,三维模型表示为空间三角形网格m=《v,t》,其中,v={v
′i}表示三维模型的顶点集合,v
′i是三维模型中第i个顶点
的三维坐标,t={ti}是构成三维模型的三角形集合,ti是构成三维模型的第i个三角形;
[0057]
纹理映射表示为平面三角形网格p=《u,s》,其中,u={ui′
}表示纹理映射网格中顶点集合,ui′
是纹理映射网格中第i个顶点的二维坐标,s={si′
}是构成纹理映射网格的三角形集合,si′
是构成纹理映射网格的第i个三角形,即纹理映射三角形;
[0058]
纹理图像在缩放后与纹理映射的大小相同,三维模型上三角形ti的细节即由纹理图像上被si′
所覆盖的纹理图像的部分ii′
提供,ui、si′
、ii′
为一一对应关系。
[0059]
s2、针对三维模型的每一个三角形ti,在保持渲染质量的要求下,尽可能地将其对应的纹理映射三角形压缩,得到每一个纹理映射三角形的期望大小和方向分布;
[0060]
作为本发明实施例的一种较佳实现方式,所述s2的具体实现方法如下:
[0061]
s21、针对三维模型中的每一个三角形ti,确定一个观察视角ci;本实施例中,观察视角ci优选为位于三角形ti法向方向,指向ti重心的平行投影摄像机(视角);
[0062]
s22、初始化输出纹理映射三角形si=si′

[0063]
s23、使用ii′
、ti、si′
、ci的信息渲染三维模型中的第i个三角形ti至屏幕,得到屏幕图像ji′

[0064]
s24、生成与输出纹理映射三角形si相匹配的局部纹理图像ii;
[0065]
s25、使用步骤s24中生成的局部纹理图像ii、以及ti、si、ci的信息渲染三维模型中的第i个三角形ti至屏幕,得到屏幕图像ji;
[0066]
s26、通过图像差异算法计算屏幕图像ji与ji′
的差异,得到差异指标qi;
[0067]
s27、根据差异指标qi,更新输出纹理映射三角形si;
[0068]
s28、如果满足终止条件,则终止,将步骤s27得到的si作为最终的输出纹理映射三角形,即得到了纹理映射三角形的期望大小和方向;否则跳转至s24。本实施例中,以迭代次数作为终止条件。
[0069]
其中,所采用的图像差异算法优选为mse算法或者gmsd算法;更新si的方法采用贝叶斯优化求解如下优化问题实现:
[0070][0071][0072]
其中,λ1,λ2∈(0,1],表示伸缩矩阵的伸缩系数;α表示旋转矩阵的旋转角度,β表示伸缩矩阵中第一个伸缩轴与横轴的夹角;l

(.)表示障碍函数,∈为用户期望的最差渲染质量,q表示差异指标,在针对三维模型中的第i个三角形ti时,q=qi;
[0073]
根据上述求解结果,更新输出纹理三角形si:
[0074]
si=r(α)s(β,λ1,λ2)si′
[0075]
其中,r(α)为逆时针旋转α度的旋转矩阵,s(β,λ1,λ2)为以β度方向为轴1,方向为轴2,分别在两轴上伸缩λ1,λ2的伸缩矩阵。
[0076]

[0077]
通过上述步骤,遍历三维模型中的每一个三角形ti,可得到全部三角形ti对应的纹理映射三角形的期望大小和方向分布信息。
[0078]
s3、将表示纹理映射的平面三角形网格按照步骤s2得到的期望大小和方向分布进行优化,得到输出纹理映射平面三角形网格;
[0079]
作为本发明实施例的一种较佳实现方式,所述步骤s3的具体实现方法如下:
[0080]
s31、对于三维模型中的每一个三角形ti,计算满足的映射的线性部分
[0081]
s32、对进行极分解其中是旋转部分,是伸缩部分。
[0082]
s33、求解下述优化问题:
[0083][0084][0085]
其中,是ki倍的90度旋转矩阵,与分别是旋转部分和伸缩部分设计的参数,表示f范数的平方,ki表示第i个三角形si对应的旋转系数,例如,ki=0,1,2,3时,分别表示旋转0度、90度、180度、270度;φ表示待优化的纹理映射,表示待优化的纹理映射针对第i个三角形si的线性部分,ri表示待优化的针对第i个三角形si的旋转矩阵,si表示待优化的针对第i个三角形si的伸缩矩阵,det(.)表示行列式,so(2)表示所有平面上旋转矩阵构成的集合。
[0086]
在本发明的一项具体实施中,所述步骤s33中,与的计算方法为分别均匀采样满足和的φi,接着分别计算si=φi(si′
)。将得到的si分别使用s23-s26描述的方式计算qi,取qi的方差作为与其中,φi表示待优化的纹理映射φ针对第i个三角形si的部分。
[0087]
s4、根据优化后的纹理映射重新生成纹理。
[0088]
作为本发明实施例的一种较佳实现方式,所述s4中,通过工具blender的烘焙功能实现。
[0089]
下面基于上述s1~s4所述的适用于三维游戏与虚拟现实应用的纹理图像优化方法,通过一个具体实例来展示其实现细节和技术效果。
[0090]
本实施例中,以花瓶作为待处理的三维模型,按照下述流程对其进行纹理优化。
[0091]
步骤一,获得输入三维模型、纹理映射及纹理图像:
[0092]
图2为输入的三维模型空间三角网格,图3为输入的纹理映射平面三角网格,图4为输入的纹理图像。如图4所示,输入的纹理图像中存在大面积的空白区域,这些空白区域显著降低了存储效率。
[0093]
步骤二,针对三维模型中的每个三角形ti,获得优化后的纹理三角形si。
[0094]
在本实施例中,按照如下优化方法:
[0095]
针对三维模型中的每一个三角形ti,确定一个观察视角cu,该观察视角位于三角形tu法向方向且指向tu重心的平行投影摄像机;
[0096]
初始化输出纹理映射三角形si=si′

[0097]
使用ii′
、ti、si′
、ci的信息渲染三维模型中的第i个三角形ti至屏幕,得到屏幕图像ji′

[0098]
生成与输出纹理映射三角形si相匹配的局部纹理图像ii;
[0099]
使用生成的局部纹理图像ii、以及ti、si、ci的信息渲染三维模型中的第i个三角形ti至屏幕,得到屏幕图像ji;
[0100]
通过gmsd算法计算ji与ji′
的差异,得到差异指标qi,
[0101]
根据差异指标qi,采用贝叶斯优化求解如下优化问题,根据求解结果更新si:
[0102][0103]
其中,
[0104][0105]
si=r(α)s(β,λ1,λ2)si′
[0106]
在本实施例中,取∈=0.01。
[0107]
重复以上步骤直至达到预设迭代次数,在本实施例中,共重复60次,得到最终的si。
[0108]
步骤三:输出纹理映射平面三角形网格的生成:
[0109]
本实施例中,首先对于三维模型中的每一个三角形ti,计算满足的映射的线性部分接着对进行极分解其中是旋转部分,是伸缩部分。
[0110]
完成上述诸三角形的求解后,可以求解全局优化问题
[0111][0112][0113]
在本实施例中,与的计算方法为分别均匀采样满足和的φi,接着分别计算si=φi(si′
)。将得到的si分别使用s23-s26描述的方式计算q,取q的方差作为与即可得到输出纹理映射平面三角形网格,如图5。与图3对比,可以看到,三角形的相对大小、朝向有了很大的变化。
[0114]
步骤四,生成输出纹理图像:
[0115]
本实施例利用blender工具,借助输入三维模型,纹理图像,优化前后的纹理映射,将纹理进行烘焙,得到输出的纹理图像,如图6,本实施例得到的输出纹理图像与输入纹理图像图4相比,显著减小了空白等纹理内容简单的区域的面积占比。从而可以在图像总分辨率相同的情况下,取得更好的渲染效果。或者在相同的渲染效果下,使用更小的面积实现压缩。
[0116]
以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1