CN117152328A - 模型纹理的处理方法、装置、电子设备及介质 - Google Patents
模型纹理的处理方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN117152328A CN117152328A CN202310723159.5A CN202310723159A CN117152328A CN 117152328 A CN117152328 A CN 117152328A CN 202310723159 A CN202310723159 A CN 202310723159A CN 117152328 A CN117152328 A CN 117152328A
- Authority
- CN
- China
- Prior art keywords
- point
- component
- determining
- information
- mapping
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 6
- 238000013507 mapping Methods 0.000 claims abstract description 199
- 238000012545 processing Methods 0.000 claims abstract description 59
- 238000000034 method Methods 0.000 claims abstract description 47
- 239000013598 vector Substances 0.000 claims description 160
- 206010034701 Peroneal nerve palsy Diseases 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 13
- 238000000605 extraction Methods 0.000 claims description 9
- 238000000513 principal component analysis Methods 0.000 claims description 7
- 238000012847 principal component analysis method Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 13
- 230000002829 reductive effect Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供一种模型纹理的处理方法、装置、电子设备及存储介质,该方法包括:获取一个或多个构件信息,其中,构件信息至少包括纹理图像;根据预先建立的三维模型和构件信息,确定构件的中心线信息;根据构件的中心线信息和三维模型的顶点数据,确定构件对应的映射值;根据构件对应的映射值,控制与构件对应的纹理图像运动,本申请实施例通过获取大批量的连续构件信息,并对大批量构件信息进行中心线拟合,然后根据拟合得到的中心线信息和三维模型进行UV映射,得到与每个构件对应的映射值,进一步根据映射值,控制构件对应的纹理图像运动,从而实现UV动画的运动,在纹理处理的过程中,减少数据量激增,且提高纹理处理的准确性。
Description
技术领域
本申请涉及图像处理技术领域,具体而言,涉及一种模型纹理的处理方法、装置、电子设备及存储介质。
背景技术
在目前三维应用中,一方面是CIM(City Information Modeling,城市信息模型)应用、数字孪生和元宇宙等市场需求日益扩大的情况下;另一方面是各类传感器的接入,用户能够拿到实时的动态数据;静态模型已经不能够满足用户业务需求与可视化需求;
为了使三维场景能够更加真实、动态的展示到用户面前,但是静态模型、骨骼动画、二三维图表已经不能够完全满足业务应用的需求,纹理动画作为一个很好的补充是现有手段中能够满足需求的优势手段之一,也是市场上迫切需要的。
在三维模型建模完成后,进行纹理处理,但是如果在多场景、多模型联动的情况下,会存在数据量激增的情况,导致业务系统卡顿,还存在矢量位置不能够准确的问题,因此,如何在纹理处理的过程中,减少数据量激增,且提高纹理处理的准确性是目前急需解决的问题。
发明内容
本申请的一些实施例的目的在于提供一种模型纹理的处理方法、装置、存储介质及电子设备,通过本申请的实施例的技术方案,通过获取一个或多个构件信息,其中,构件信息至少包括纹理图像;根据预先建立的三维模型和构件信息,确定构件的中心线信息;根据构件的中心线信息和三维模型的顶点数据,确定构件对应的映射值;根据构件对应的映射值,控制与构件对应的纹理图像运动,本申请实施例通过获取大批量的连续构件信息,并对大批量构件信息进行中心线拟合,然后根据拟合得到的中心线信息和三维模型进行UV映射,得到与每个构件对应的映射值,进一步根据映射值,控制构件对应的纹理图像运动,从而实现UV动画的运动,在纹理处理的过程中,减少数据量激增,且提高纹理处理的准确性。
第一方面,本申请的一些实施例提供了一种模型纹理的处理方法,包括:获取一个或多个构件信息,其中,所述构件信息至少包括纹理图像;
根据预先建立的三维模型和所述构件信息,确定构件的中心线信息;
根据所述构件的中心线信息和所述三维模型的顶点数据,确定所述构件对应的映射值;
根据所述构件对应的映射值,控制与所述构件对应的纹理图像运动。
本申请的一些实施例通过获取大批量的连续构件信息,并对大批量构件信息进行中心线拟合,然后根据拟合得到的中心线信息和三维模型进行UV映射,得到与每个构件对应的映射值,进一步根据映射值,控制构件对应的纹理图像运动,从而实现UV动画的运动,在纹理处理的过程中,减少数据量激增,且提高纹理处理的准确性。
在一些实施例,在获取一个构件信息的情况下,所述根据预先建立的三维模型和所述构件信息,确定构件的中心线信息,包括:
根据主成分分析法,获取构件的特征值集合;
响应于用户输入的目标特征值,根据所述目标特征值和主成分分析法,确定所述构件的中心线信息。
本申请的一些实施例通过获取构件的所有的特征值,然后用户在所有的特征值中选择一个目标特征值,是用户更具构件的形状来选择特征值,提高中心线拟合的准确性。
在一些实施例,在获取两个构件信息的情况下,所述根据预先建立的三维模型和所述构件信息,确定构件的中心线信息,包括:
对于起始构件,根据所述三维模型的顶点数据,获取起始构件的第一中心线信息;
根据起始构件的第一中心点与第二个构件的第二中心点,确定第一中间向量;
确定所述第一中心线信息和所述第一中间向量的第一夹角;
根据所述第一夹角和第一预设角度,确定起始构件的起点和终点的放置方向;
对于终止构件,根据所述三维模型的顶点数据,获取终止构件的第二中心线信息;
根据终止构件的第二中心点与起始构件的第一中心点,确定第二中间向量;
确定所述第二中心线信息和所述第二中间向量的第二夹角;
根据所述第二夹角和所述第一预设角度,确定终止构件的起点和终点的放置方向;
根据所述起始构件的起点和终点的放置方向和所述终止构件的起点和终点的放置方向,确定所述构件的中心线信息。
本申请的一些实施例,在连续构件信息是两个的情况下,通过根据三维模型的顶点数据和每个构件的中心点,来确定每个构件的放置方向,从而提高构件拟合的准确性。
在一些实施例,在获取多个构件信息的情况下,所述根据预先建立的三维模型和所述构件信息,确定构件的中心线信息,包括:
对于起始构件,根据所述三维模型的顶点数据,获取起始构件的第一中心线信息;
根据起始构件的第一中心点与第二个构件的第二中心点,确定第一中间向量;
确定所述第一中心线信息和所述第一中间向量的第一夹角;
根据所述第一夹角和第一预设角度,确定起始构件的起点和终点的放置方向;
对于终止构件,根据所述三维模型的顶点数据,获取终止构件的第二中心线信息;
根据终止构件的第二中心点与起始构件的第一中心点,确定第二中间向量;
确定所述第二中心线信息和所述第二中间向量的第二夹角;
根据所述第二夹角和所述第一预设角度,确定终止构件的起点和终点的放置方向;
对于中间构件,获取当前构件的第三中心点和前一个构件的第四中心点;
根据所述第三中心点和所述第四中心点,确定第三中间向量;
根据所述当前构件的第三中心点和所述终止构件的第二中心点,确定第四中间向量;
确定所述第三中间向量和所述第四中间向量的第三夹角;
若所述第三夹角大于第二预设角度,或者小于第三预设角度,则将所述当前构件的中心点,起始构件的起点和终点的放置方向,以及终止构件的起点和终点的放置方向确定为所述构件的中心线信息。
本申请的一些实施例,在连续构件信息是多个的情况下,通过根据三维模型的顶点数据和每个构件的中心点,确定起始构件和终止构件的放置方向,然后再将中间构件进行放置,实现整体构件的中心线,从而提高构件拟合的准确性。
在一些实施例,所述根据所述构件的中心线信息和所述三维模型的顶点数据,确定所述构件对应的映射值,包括:
根据三维模型的数量和当前终端设备的CPU内核数量,确定单线程纹理赋值方式或多线程纹理赋值方式;
对于所述单线程纹理赋值方式或多线程纹理赋值方式,根据所述构件的中心线信息中的每个点的夹角角度,确定与所述点对应的映射算法;
根据所述映射算法,确定与所述构件对应的映射值。
本申请的一些实施例,通过判断三维模型的数量和当前终端设备的CPU内核数量,确定开启纹理赋值方式的线程数量,进而根据中心线上的每个点的夹角角度,判断采用哪种映射算法,根据不同的映射算法,计算每个构件对应的映射值,提高终端设备的处理效率。
在一些实施例,所述根据所述构件的中心线信息中的每个点的夹角角度,确定与所述点对应的映射算法,包括:
若所述点的夹角角度小于第四预设角度,则确定所述点对应的映射算法为第一映射算法;
若所述点的夹角角度大于或等于第四预设角度,则确定所述点对应的映射算法为第二映射算法。
本申请的一些实施例,通过根据中心线上的每个点的夹角角度,判断采用哪种映射算法,根据不同的映射算法,计算每个构件对应的映射值,提高终端设备的处理效率。
在一些实施例,所述根据所述映射算法,确定与所述构件对应的映射值,包括:
采用第一映射算法,确定与所述构件对应的映射值,包括:
遍历构件的中心线上的每一个点,确定相连两点之间的线段;
根据所述三维模型的顶点数据和中心线上当前点的线段,确定顶点数据到所述当前点的线段的最短距离的垂足;
根据所述三维模型的顶点数据和所述垂足,确定顶点数据和当前点之前的第一距离,以及垂足到当前点的第一向量;
根据所述第一距离,以及当前点之前的所有点对应的第二距离,确定为映射值中的第一参考值;
根据所述三维模型的顶点数据和所述垂足,确定顶点数据到垂足的第二向量;
根据所述第一向量和所述第二向量的夹角的余弦值,确定为所述映射值中的第二参考值;
或
采用第二映射算法,确定与所述构件对应的映射值,包括:
根据中心线信息中的当前点、第一点和第二点,确定三点构成的平面和所述平面的法向量;其中,第一点为当前点的前一个点,第二点为当前点的后一个点;
确定当前点和第一点的第一向量,以及当前点和第二点的第二向量;
获取当前点和第一点构成的第一线段的第一中点,以及当前点和第二点构成的第二线段的第二中点;
根据所述第一中点、所述第二中点、所述第一向量、所述第二向量和所述法向量,确定第一线段的第一垂线向量和第二线段的第二垂线向量;
根据所述第一垂线向量和所述第二垂线向量,确定交点坐标和半径信息;
将所述三维模型的各个顶点数据投影到所述平面上,得到投影点和对应到半径信息对应的圆的映射点;
根据所述映射点和第二点之间的弧度长度和所述映射点与第二点之前的所有点的距离之和,确定为所述映射值的第一参考值;
根据所述当前点与所述映射点构成的向量与平面的夹角的余弦值,确定为所述映射值的第二参考值。
本申请的一些实施例,通过对不同的情况提供对应的映射算法,提高计算效率。
第二方面,本申请的一些实施例提供了一种模型纹理的处理装置,包括:
获取模块,用于获取一个或多个构件信息,其中,所述构件信息至少包括纹理图像;
提取模块,用于根据预先建立的三维模型和所述构件信息,确定构件的中心线信息;
映射模块,用于根据所述构件的中心线信息和所述三维模型的顶点数据,确定所述构件对应的映射值;
处理模块,用于根据所述构件对应的映射值,控制与所述构件对应的纹理图像运动。
本申请的一些实施例通过获取大批量的连续构件信息,并对大批量构件信息进行中心线拟合,然后根据拟合得到的中心线信息和三维模型进行UV映射,得到与每个构件对应的映射值,进一步根据映射值,控制构件对应的纹理图像运动,从而实现UV动画的运动,在纹理处理的过程中,减少数据量激增,且提高纹理处理的准确性。
在一些实施例,在获取一个构件信息的情况下,所述提取模块用于:
根据主成分分析法,获取构件的特征值集合;
响应于用户输入的目标特征值,根据所述目标特征值和主成分分析法,确定所述构件的中心线信息。
本申请的一些实施例通过获取构件的所有的特征值,然后用户在所有的特征值中选择一个目标特征值,是用户更具构件的形状来选择特征值,提高中心线拟合的准确性。
在一些实施例,在获取两个构件信息的情况下,所述提取模块用于:
对于起始构件,根据所述三维模型的顶点数据,获取起始构件的第一中心线信息;
根据起始构件的第一中心点与第二个构件的第二中心点,确定第一中间向量;
确定所述第一中心线信息和所述第一中间向量的第一夹角;
根据所述第一夹角和第一预设角度,确定起始构件的起点和终点的放置方向;
对于终止构件,根据所述三维模型的顶点数据,获取终止构件的第二中心线信息;
根据终止构件的第二中心点与起始构件的第一中心点,确定第二中间向量;
确定所述第二中心线信息和所述第二中间向量的第二夹角;
根据所述第二夹角和所述第一预设角度,确定终止构件的起点和终点的放置方向;
根据所述起始构件的起点和终点的放置方向和所述终止构件的起点和终点的放置方向,确定所述构件的中心线信息。
本申请的一些实施例,在连续构件信息是两个的情况下,通过根据三维模型的顶点数据和每个构件的中心点,来确定每个构件的放置方向,从而提高构件拟合的准确性。
在一些实施例,在获取多个构件信息的情况下,所述提取模块用于:
对于起始构件,根据所述三维模型的顶点数据,获取起始构件的第一中心线信息;
根据起始构件的第一中心点与第二个构件的第二中心点,确定第一中间向量;
确定所述第一中心线信息和所述第一中间向量的第一夹角;
根据所述第一夹角和第一预设角度,确定起始构件的起点和终点的放置方向;
对于终止构件,根据所述三维模型的顶点数据,获取终止构件的第二中心线信息;
根据终止构件的第二中心点与起始构件的第一中心点,确定第二中间向量;
确定所述第二中心线信息和所述第二中间向量的第二夹角;
根据所述第二夹角和所述第一预设角度,确定终止构件的起点和终点的放置方向;
对于中间构件,获取当前构件的第三中心点和前一个构件的第四中心点;
根据所述第三中心点和所述第四中心点,确定第三中间向量;
根据所述当前构件的第三中心点和所述终止构件的第二中心点,确定第四中间向量;
确定所述第三中间向量和所述第四中间向量的第三夹角;
若所述第三夹角大于第二预设角度,或者小于第三预设角度,则将所述当前构件的中心点,起始构件的起点和终点的放置方向,以及终止构件的起点和终点的放置方向确定为所述构件的中心线信息。
本申请的一些实施例,在连续构件信息是多个的情况下,通过根据三维模型的顶点数据和每个构件的中心点,确定起始构件和终止构件的放置方向,然后再将中间构件进行放置,实现整体构件的中心线,从而提高构件拟合的准确性。
在一些实施例,所述映射模块用于:
根据三维模型的数量和当前终端设备的CPU内核数量,确定单线程纹理赋值方式或多线程纹理赋值方式;
对于所述单线程纹理赋值方式或多线程纹理赋值方式,根据所述构件的中心线信息中的每个点的夹角角度,确定与所述点对应的映射算法;
根据所述映射算法,确定与所述构件对应的映射值。
本申请的一些实施例,通过判断三维模型的数量和当前终端设备的CPU内核数量,确定开启纹理赋值方式的线程数量,进而根据中心线上的每个点的夹角角度,判断采用哪种映射算法,根据不同的映射算法,计算每个构件对应的映射值,提高终端设备的处理效率。
在一些实施例,所述映射模块用于:
若所述点的夹角角度小于第四预设角度,则确定所述点对应的映射算法为第一映射算法;
若所述点的夹角角度大于或等于第四预设角度,则确定所述点对应的映射算法为第二映射算法。
本申请的一些实施例,通过根据中心线上的每个点的夹角角度,判断采用哪种映射算法,根据不同的映射算法,计算每个构件对应的映射值,提高终端设备的处理效率。
在一些实施例,所述映射模块用于:
采用第一映射算法,确定与所述构件对应的映射值,包括:
遍历构件的中心线上的每一个点,确定相连两点之间的线段;
根据所述三维模型的顶点数据和中心线上当前点的线段,确定顶点数据到所述当前点的线段的最短距离的垂足;
根据所述三维模型的顶点数据和所述垂足,确定顶点数据和当前点之前的第一距离,以及垂足到当前点的第一向量;
根据所述第一距离,以及当前点之前的所有点对应的第二距离,确定为映射值中的第一参考值;
根据所述三维模型的顶点数据和所述垂足,确定顶点数据到垂足的第二向量;
根据所述第一向量和所述第二向量的夹角的余弦值,确定为所述映射值中的第二参考值;
或
采用第二映射算法,确定与所述构件对应的映射值,包括:
根据中心线信息中的当前点、第一点和第二点,确定三点构成的平面和所述平面的法向量;其中,第一点为当前点的前一个点,第二点为当前点的后一个点;
确定当前点和第一点的第一向量,以及当前点和第二点的第二向量;
获取当前点和第一点构成的第一线段的第一中点,以及当前点和第二点构成的第二线段的第二中点;
根据所述第一中点、所述第二中点、所述第一向量、所述第二向量和所述法向量,确定第一线段的第一垂线向量和第二线段的第二垂线向量;
根据所述第一垂线向量和所述第二垂线向量,确定交点坐标和半径信息;
将所述三维模型的各个顶点数据投影到所述平面上,得到投影点和对应到半径信息对应的圆的映射点;
根据所述映射点和第二点之间的弧度长度和所述映射点与第二点之前的所有点的距离之和,确定为所述映射值的第一参考值;
根据所述当前点与所述映射点构成的向量与平面的夹角的余弦值,确定为所述映射值的第二参考值。
本申请的一些实施例,通过对不同的情况提供对应的映射算法,提高计算效率。
第三方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任一实施例所述的模型纹理的处理方法。
第四方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任一实施例所述的模型纹理的处理方法。
第五方面,本申请的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任一实施例所述的模型纹理的处理方法。
附图说明
为了更清楚地说明本申请的一些实施例的技术方案,下面将对本申请的一些实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种模型纹理的处理方法的流程示意图;
图2为本申请实施例提供的又一种模型纹理的处理方法的流程示意图;
图3为本申请实施例提供的连续构件加载步骤的流程示意图;
图4为本申请实施例提供的中心线拟合步骤的流程示意图;
图5为本申请实施例提供的映射步骤的流程示意图;
图6为本申请实施例提供的一种模型纹理的处理装置的结构示意图;
图7为本申请实施例提供的一种电子设备示意图。
具体实施方式
下面将结合本申请的一些实施例中的附图,对本申请的一些实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在目前三维应用中,一方面是CIM(City Information Modeling,城市信息模型)应用、数字孪生和元宇宙等市场需求日益扩大的情况下;另一方面是各类传感器的接入,用户能够拿到实时的动态数据;静态模型已经不能够满足用户业务需求与可视化需求;
为了使三维场景能够更加真实、动态的展示到用户面前,但是静态模型、骨骼动画、二三维图表已经不能够完全满足业务应用的需求,纹理动画作为一个很好的补充是现有手段中能够满足需求的优势手段之一,也是市场上迫切需要的。
在三维模型建模完成后,进行纹理处理,但是如果在多场景、多模型联动的情况下,会存在数据量激增的情况,导致业务系统卡顿,还存在矢量位置不能够准确的问题,鉴于此,本申请的一些实施例提供了一种模型纹理的处理方法,该方法获取一个或多个构件信息,其中,构件信息至少包括纹理图像;根据预先建立的三维模型和构件信息,确定构件的中心线信息;根据构件的中心线信息和三维模型的顶点数据,确定构件对应的映射值;根据构件对应的映射值,控制与构件对应的纹理图像运动,本申请实施例通过获取大批量的连续构件信息,并对大批量构件信息进行中心线拟合,然后根据拟合得到的中心线信息和三维模型进行UV映射,得到与每个构件对应的映射值,进一步根据映射值,控制构件对应的纹理图像运动,从而实现UV动画的运动,在纹理处理的过程中,减少数据量激增,且提高纹理处理的准确性。
如图1所示,本申请的实施例提供了一种模型纹理的处理方法,该方法包括:
S101、获取一个或多个构件信息,其中,构件信息至少包括纹理图像;
具体地,用户可以在终端设备上新建或者加载已存在的构件信息,可以是一个构件信息,也可以是两个连续构件信息,还可以是多个连续构件信息,该构件可以是管状的具有方向性的物体,例如水管,通气管道,煤气管道等,该构件信息至少包括构件标识和与构件标识对应的纹理图像。
S102、根据预先建立的三维模型和构件信息,确定构件的中心线信息;
具体地,终端设备上预先建立三维模型,在已经建立好的三维模型的基础上,根据构件信息中构件标识的顺序,获取与构件信息对应的所有构件的中心线信息,示例性地,可以根据一个构件,获取该构件的中心线信息,也可以根据两个构件,获取两个构件的中心线信息,还可以根据多个构件,获取多个构件的中心线信息,用户可以根据需要,选择构件数量。
S103、根据构件的中心线信息和三维模型的顶点数据,确定构件对应的映射值;
具体地,终端设备根据三维模型的数量确定开启的线程数量,可以通过单线程或多线程的模式进行映射处理,在每一次映射过程中,根据每个构件的中心线信息和三维模型的顶点数据,计算该构件对应的映射值;
其中,三维模型的顶点数据是指模型上的各个点。
S104、根据构件对应的映射值,控制与构件对应的纹理图像运动。
具体地,终端设备根据每一个构件对应的映射值,控制与构件对应的纹理图像向左或向右以某一速度运动,或者根据映射值,控制多个纹理图像构成的动画开启或停止。
本申请实施例通过获取大批量的连续构件信息,并对大批量构件信息进行中心线拟合,然后根据拟合得到的中心线信息和三维模型进行UV映射,得到与每个构件对应的映射值,进一步根据映射值,控制构件对应的纹理图像运动,从而实现UV动画的运动,在纹理处理的过程中,减少数据量激增,且提高纹理处理的准确性。
本申请又一实施例对上述实施例提供的模型纹理的处理方法做进一步补充说明。
图2为本申请实施例提供的又一种模型纹理的处理方法的流程示意图,如图2所示,该模型纹理的处理方法包括:
S201、大批量连续构件信息加载、构建及永久化存储;
图3为本申请实施例提供的连续构件加载步骤的流程示意图,如图3所示,本申请实施例支持大批量连续构件信息加载、构建及永久化存储,并且能够方便、快捷地选取要进行纹理贴图的模型构件,具体包括:
1)新建或者加载已存在的连续构件信息;
2)用户通过快捷键或者按钮触发进入连续构件编辑的模式,所有操作都属于对连续构件的操作;
3)点击添加或者删除构件到连续构件中,已选择的构件显示该构件在连续构件中的位置;
4)指定连续构件的唯一标识和纹理贴图,并利用红黑树(二叉树的平衡算法,用于查找)实现对连续构件信息的查找;
5)继续编辑或者永久化保存连续构件;
6)编辑操作主要是通过统一操作实现构件顺序的修正,即进入修正模式后,选择的第一个构件必须是具有正确的位置,后续构件根据需求进行选择,按照标识批量插入,点击确定;通过双向链表的插入和整合得到最终的构件集合,双向链表方便插入构件信息;
7)将连续构件通过xml的方式进行block或本地磁盘存储,实现永久化存储,采用xml方式的目的是为了方便读取,该格式支持存储一个或多个连续构件信息,示例性地:一个连续构件包含其所属项目标识、中心线顶点集合、构件标识及对应的顶点集合的开始及结束位置,节省存储空间。
S202、连续构件中心线的提取与拟合;
图4为本申请实施例提供的中心线拟合步骤的流程示意图,如图4所示,作为一种可选地实施方式,在获取一个构件信息的情况下,根据预先建立的三维模型和构件信息,确定构件的中心线信息,包括:
根据主成分分析法,获取构件的特征值集合;
响应于用户输入的目标特征值,根据目标特征值和主成分分析法,确定构件的中心线信息。
示例性地,如果该连续构件只有一个构件,根据主成分分析获取该构件的所有特征值并排序返回给用户,根据提示用户指定某一特征值,即根据管子形状确定特征值,根据主成分分析获取中心线信息,并分别对起点和终点沿着向量反方向和正方向延长预设单位的长度,例如10个单位的长度,提高准确性;
本申请的一些实施例通过获取构件的所有的特征值,然后用户在所有的特征值中选择一个目标特征值,是用户更具构件的形状来选择特征值,提高中心线拟合的准确性。
作为又一种可选地实施方式,在获取两个构件信息的情况下,根据预先建立的三维模型和构件信息,确定构件的中心线信息,包括:
对于起始构件,根据三维模型的顶点数据,获取起始构件的第一中心线信息;
根据起始构件的第一中心点与第二个构件的第二中心点,确定第一中间向量;
确定第一中心线信息和第一中间向量的第一夹角;
根据第一夹角和第一预设角度,确定起始构件的起点和终点的放置方向;
对于终止构件,根据三维模型的顶点数据,获取终止构件的第二中心线信息;
根据终止构件的第二中心点与起始构件的第一中心点,确定第二中间向量;
确定第二中心线信息和第二中间向量的第二夹角;
根据第二夹角和第一预设角度,确定终止构件的起点和终点的放置方向;
根据起始构件的起点和终点的放置方向和终止构件的起点和终点的放置方向,确定构件的中心线信息。
具体地,如果该连续构件是由两个构件组成的,如果是第一个构件即起始构件,根据三维模型顶点数据获取该构件的中心线信息BeginLine即第一中心线信息,并获取当前构件的中心点a即第一中心点与后一个构件中心点b即第二中心点,得到第一中间向量ba,计算第一中心线信息BeginLine与第一中间向量ba的第一夹角,如果两个向量的夹角大于90度,则对调中心线的起点和终点,否则保持当前顶点顺序,并延长起点向量;
如果是最后一个构件即终止构件,根据三维模型顶点数据获取该构件的第二中心线信息EndLine,并获取当前构件的第二中心点a与前一个构件第一中心点b,得到第二中间向量ab,计算第二中心线信息EndLine与第二中间向量ab的第二夹角,则如果两个向量的夹角大于90度,对调中心线的起点和终点,否则保持当前顶点顺序,并延长终点向量;将最终的中心线的起点和终点添加到中心点集合中。
作为一种可选地实施方式,在连续构件信息是两个的情况下,通过根据三维模型的顶点数据和每个构件的中心点,来确定每个构件的放置方向,从而提高构件拟合的准确性。
在一些实施例,在获取多个构件信息的情况下,根据预先建立的三维模型和构件信息,确定构件的中心线信息,包括:
对于起始构件,根据三维模型的顶点数据,获取起始构件的第一中心线信息;
根据起始构件的第一中心点与第二个构件的第二中心点,确定第一中间向量;
确定第一中心线信息和第一中间向量的第一夹角;
根据第一夹角和第一预设角度,确定起始构件的起点和终点的放置方向;
对于终止构件,根据三维模型的顶点数据,获取终止构件的第二中心线信息;
根据终止构件的第二中心点与起始构件的第一中心点,确定第二中间向量;
确定第二中心线信息和第二中间向量的第二夹角;
根据第二夹角和第一预设角度,确定终止构件的起点和终点的放置方向;
对于中间构件,获取当前构件的第三中心点和前一个构件的第四中心点;
根据第三中心点和第四中心点,确定第三中间向量;
根据当前构件的第三中心点和终止构件的第二中心点,确定第四中间向量;
确定第三中间向量和第四中间向量的第三夹角;
若第三夹角大于第二预设角度,或者小于第三预设角度,则将当前构件的中心点,起始构件的起点和终点的放置方向,以及终止构件的起点和终点的放置方向确定为构件的中心线信息。
示例性地,对于连续构件包括多个构件的情况下,即三个和三个以上,对于起始构件和终止构件的放置方式如上述的方式进行放置,在此不再赘述,对于既不是起始构件也不是终止构件的中间构件,则获取当前构件的第三中心点a和前一个构件的第四中心点b,得到两个中心点连线的第三中间向量A,并获取点集合的最后一个点即终止构件的第二中心点与当前构件的第三中心点组成的第四中间向量;如果两个向量即A向量和最后一个点当前构件中心点的向量的第三夹角大于1.0005度或者小于0.05度,则将该构件的中心点保留,添加到中心点集合中,否则舍弃掉该点。
本申请的一些实施例,在连续构件信息是多个的情况下,通过根据三维模型的顶点数据和每个构件的中心点,确定起始构件和终止构件的放置方向,然后再将中间构件进行放置,实现整体构件的中心线,从而提高构件拟合的准确性。
S203、基于中心线的模型UV映射;
在一些实施例,根据构件的中心线信息和三维模型的顶点数据,确定构件对应的映射值,包括:
根据三维模型的数量和当前终端设备的CPU内核数量,确定单线程纹理赋值方式或多线程纹理赋值方式;
对于单线程纹理赋值方式或多线程纹理赋值方式,根据构件的中心线信息中的每个点的夹角角度,确定与点对应的映射算法;
根据映射算法,确定与构件对应的映射值。
本申请的一些实施例,通过判断三维模型的数量和当前终端设备的CPU内核数量,确定开启纹理赋值方式的线程数量,进而根据中心线上的每个点的夹角角度,判断采用哪种映射算法,根据不同的映射算法,计算每个构件对应的映射值,提高终端设备的处理效率。
图5为本申请实施例提供的映射步骤的流程示意图,如图5所示,根据中心线和模型顶点数据,对模型构件逐个进行的UV赋值。如果模型的个数是一个,则进行单线程的UV纹理映射;否则将模型的个数M与当前设备的CPU内核数量N进行比较,以较小值为依据开辟线程,进行多线程UV赋值。
在进行UV映射时,根据模型内部包含中心线上的点,并该点作为拐点的夹角角度小于179度,则选用UV映射算法B;否则采用算法A。
在一些实施例,根据构件的中心线信息中的每个点的夹角角度,确定与点对应的映射算法,包括:
若点的夹角角度小于第四预设角度,则确定点对应的映射算法为第一映射算法;
若点的夹角角度大于或等于第四预设角度,则确定点对应的映射算法为第二映射算法。
本申请的一些实施例,通过根据中心线上的每个点的夹角角度,判断采用哪种映射算法,根据不同的映射算法,计算每个构件对应的映射值,提高终端设备的处理效率。
在一些实施例,根据映射算法,确定与构件对应的映射值,包括:
采用第一映射算法,确定与构件对应的映射值,包括:
遍历构件的中心线上的每一个点,确定相连两点之间的线段;
根据三维模型的顶点数据和中心线上当前点的线段,确定顶点数据到当前点的线段的最短距离的垂足;
根据三维模型的顶点数据和垂足,确定顶点数据和当前点之前的第一距离,以及垂足到当前点的第一向量;
根据第一距离,以及当前点之前的所有点对应的第二距离,确定为映射值中的第一参考值;
根据三维模型的顶点数据和垂足,确定顶点数据到垂足的第二向量;
根据第一向量和第二向量的夹角的余弦值,确定为映射值中的第二参考值;
UV映射算法A即第一映射算法:遍历中心线所有点,获取三维模型的顶点数据ModelPot在各个线段的垂足,并得到在线段内部且距离最短的垂足,并获取垂足到该线段起点a的距离Distance,垂足顶点FootPot,并得到该线段Up向量;在该算法下U值即第一参考值为Distance与a点之前的所有顶点组成的长度之和,V值即第二参考值为ModelPot与垂足FootPot组成的向量MF,与Up向量夹角的Cos值。
采用第二映射算法,确定与构件对应的映射值,包括:
根据中心线信息中的当前点、第一点和第二点,确定三点构成的平面和平面的法向量;其中,第一点为当前点的前一个点,第二点为当前点的后一个点;
确定当前点和第一点的第一向量,以及当前点和第二点的第二向量;
获取当前点和第一点构成的第一线段的第一中点,以及当前点和第二点构成的第二线段的第二中点;
根据第一中点、第二中点、第一向量、第二向量和法向量,确定第一线段的第一垂线向量和第二线段的第二垂线向量;
根据第一垂线向量和第二垂线向量,确定交点坐标和半径信息;
将三维模型的各个顶点数据投影到平面上,得到投影点和对应到半径信息对应的圆的映射点;
根据映射点和第二点之间的弧度长度和映射点与第二点之前的所有点的距离之和,确定为映射值的第一参考值;
根据当前点与映射点构成的向量与平面的夹角的余弦值,确定为映射值的第二参考值。
UV映射算法B即第二映射算法:首先根据当前点a、前一个顶点b即第二点和后一个顶点c即第三点一共三个点,获取三点构成的平面Plane及该平面的法向量PlaneNormal;
其次获取线段ab的第一中点Center1、线段ac的第二中点Center2;再次,根据Center1、Center2、第一向量ab、第二向量ac以及平面的法向量PlaneNormal获取线ab和线ac的垂线向量,并得到两个向量的交点坐标CenterPot以及对应的半径R;最后,将三维模型上的各个顶点数据投影到平面Plane上的投影点ProjPot,并获取到对应大圆上的点CirclePot,根据CirclePot与b点之间的弧度长度和b点之前的所有顶点组成的长度作为U值即第一参考值;V值为当前顶点a与CirclePot组成的向量与平面夹角的Cos值即第二参考值。
本申请的一些实施例,通过对不同的情况提供对应的映射算法,提高计算效率。
S204、实现UV动画的缩放、方向和速度的交互联动。
在实际的应用过程中,需要根据业务需求设置UV动画的速度、方向和重叠度。该阶段对接底层渲染接口的UV取值原理实现了UV动画的开启、关闭和移动;不仅能够实现U、V方向的缩放比例(重叠度),还能够分别设置U、V两个方向的移动速度和方向,并能够实现纹理的显示和隐藏。
本申请实施例能够方便快捷地实现大批量模型的UV赋值,并使包含大规模动态模型的电路、水流动画、施工进度模拟等应用的动态实时流畅三维渲染成为可能,解决了以往大规模场景仅能静态展示、动态模型数量限制或者反复修改原始模型文件的问题。
同时还能够实现高效交互式的基础场景建模、模型编辑,通过数据互通与高效的实时二次编辑相结合,提升用户工作效率及使用体验。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
本申请另一实施例提供一种模型纹理的处理装置,用于执行上述实施例提供的模型纹理的处理方法。
如图6所示,为本申请实施例提供的模型纹理的处理装置的结构示意图。该模型纹理的处理装置包括获取模块601、提取模块602、映射模块603和处理模块604,其中:
获取模块601用于获取一个或多个构件信息,其中,构件信息至少包括纹理图像;
提取模块602用于根据预先建立的三维模型和构件信息,确定构件的中心线信息;
映射模块603用于根据构件的中心线信息和三维模型的顶点数据,确定构件对应的映射值;
处理模块604用于根据构件对应的映射值,控制与构件对应的纹理图像运动。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例提供的模型纹理的处理装置,通过获取大批量的连续构件信息,并对大批量构件信息进行中心线拟合,然后根据拟合得到的中心线信息和三维模型进行UV映射,得到与每个构件对应的映射值,进一步根据映射值,控制构件对应的纹理图像运动,从而实现UV动画的运动,在纹理处理的过程中,减少数据量激增,且提高纹理处理的准确性。
本申请又一实施例对上述实施例提供的模型纹理的处理装置做进一步补充说明。
在一些实施例,在获取一个构件信息的情况下,提取模块用于:
根据主成分分析法,获取构件的特征值集合;
响应于用户输入的目标特征值,根据目标特征值和主成分分析法,确定构件的中心线信息。
本申请的一些实施例通过获取构件的所有的特征值,然后用户在所有的特征值中选择一个目标特征值,是用户更具构件的形状来选择特征值,提高中心线拟合的准确性。
在一些实施例,在获取两个构件信息的情况下,提取模块用于:
对于起始构件,根据三维模型的顶点数据,获取起始构件的第一中心线信息;
根据起始构件的第一中心点与第二个构件的第二中心点,确定第一中间向量;
确定第一中心线信息和第一中间向量的第一夹角;
根据第一夹角和第一预设角度,确定起始构件的起点和终点的放置方向;
对于终止构件,根据三维模型的顶点数据,获取终止构件的第二中心线信息;
根据终止构件的第二中心点与起始构件的第一中心点,确定第二中间向量;
确定第二中心线信息和第二中间向量的第二夹角;
根据第二夹角和第一预设角度,确定终止构件的起点和终点的放置方向;
根据起始构件的起点和终点的放置方向和终止构件的起点和终点的放置方向,确定构件的中心线信息。
本申请的一些实施例,在连续构件信息是两个的情况下,通过根据三维模型的顶点数据和每个构件的中心点,来确定每个构件的放置方向,从而提高构件拟合的准确性。
在一些实施例,在获取多个构件信息的情况下,提取模块用于:
对于起始构件,根据三维模型的顶点数据,获取起始构件的第一中心线信息;
根据起始构件的第一中心点与第二个构件的第二中心点,确定第一中间向量;
确定第一中心线信息和第一中间向量的第一夹角;
根据第一夹角和第一预设角度,确定起始构件的起点和终点的放置方向;
对于终止构件,根据三维模型的顶点数据,获取终止构件的第二中心线信息;
根据终止构件的第二中心点与起始构件的第一中心点,确定第二中间向量;
确定第二中心线信息和第二中间向量的第二夹角;
根据第二夹角和第一预设角度,确定终止构件的起点和终点的放置方向;
对于中间构件,获取当前构件的第三中心点和前一个构件的第四中心点;
根据第三中心点和第四中心点,确定第三中间向量;
根据当前构件的第三中心点和终止构件的第二中心点,确定第四中间向量;
确定第三中间向量和第四中间向量的第三夹角;
若第三夹角大于第二预设角度,或者小于第三预设角度,则将当前构件的中心点,起始构件的起点和终点的放置方向,以及终止构件的起点和终点的放置方向确定为构件的中心线信息。
本申请的一些实施例,在连续构件信息是多个的情况下,通过根据三维模型的顶点数据和每个构件的中心点,确定起始构件和终止构件的放置方向,然后再将中间构件进行放置,实现整体构件的中心线,从而提高构件拟合的准确性。
在一些实施例,映射模块用于:
根据三维模型的数量和当前终端设备的CPU内核数量,确定单线程纹理赋值方式或多线程纹理赋值方式;
对于单线程纹理赋值方式或多线程纹理赋值方式,根据构件的中心线信息中的每个点的夹角角度,确定与点对应的映射算法;
根据映射算法,确定与构件对应的映射值。
本申请的一些实施例,通过判断三维模型的数量和当前终端设备的CPU内核数量,确定开启纹理赋值方式的线程数量,进而根据中心线上的每个点的夹角角度,判断采用哪种映射算法,根据不同的映射算法,计算每个构件对应的映射值,提高终端设备的处理效率。
在一些实施例,映射模块用于:
若点的夹角角度小于第四预设角度,则确定点对应的映射算法为第一映射算法;
若点的夹角角度大于或等于第四预设角度,则确定点对应的映射算法为第二映射算法。
本申请的一些实施例,通过根据中心线上的每个点的夹角角度,判断采用哪种映射算法,根据不同的映射算法,计算每个构件对应的映射值,提高终端设备的处理效率。
在一些实施例,映射模块用于:
采用第一映射算法,确定与构件对应的映射值,包括:
遍历构件的中心线上的每一个点,确定相连两点之间的线段;
根据三维模型的顶点数据和中心线上当前点的线段,确定顶点数据到当前点的线段的最短距离的垂足;
根据三维模型的顶点数据和垂足,确定顶点数据和当前点之前的第一距离,以及垂足到当前点的第一向量;
根据第一距离,以及当前点之前的所有点对应的第二距离,确定为映射值中的第一参考值;
根据三维模型的顶点数据和垂足,确定顶点数据到垂足的第二向量;
根据第一向量和第二向量的夹角的余弦值,确定为映射值中的第二参考值;
或
采用第二映射算法,确定与构件对应的映射值,包括:
根据中心线信息中的当前点、第一点和第二点,确定三点构成的平面和平面的法向量;其中,第一点为当前点的前一个点,第二点为当前点的后一个点;
确定当前点和第一点的第一向量,以及当前点和第二点的第二向量;
获取当前点和第一点构成的第一线段的第一中点,以及当前点和第二点构成的第二线段的第二中点;
根据第一中点、第二中点、第一向量、第二向量和法向量,确定第一线段的第一垂线向量和第二线段的第二垂线向量;
根据第一垂线向量和第二垂线向量,确定交点坐标和半径信息;
将三维模型的各个顶点数据投影到平面上,得到投影点和对应到半径信息对应的圆的映射点;
根据映射点和第二点之间的弧度长度和映射点与第二点之前的所有点的距离之和,确定为映射值的第一参考值;
根据当前点与映射点构成的向量与平面的夹角的余弦值,确定为映射值的第二参考值。
本申请的一些实施例,通过对不同的情况提供对应的映射算法,提高计算效率。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时可实现如上述实施例提供的模型纹理的处理方法中的任意实施例所对应方法的操作。
本申请实施例还提供了一种计算机程序产品,的计算机程序产品包括计算机程序,其中,的计算机程序被处理器执行时可实现如上述实施例提供的模型纹理的处理方法中的任意实施例所对应方法的操作。
如图7所示,本申请的一些实施例提供一种电子设备700,该电子设备700包括:存储器710、处理器720以及存储在存储器710上并可在处理器720上运行的计算机程序,其中,处理器720通过总线730从存储器710读取程序并执行程序时可实现如上述模型纹理的处理方法包括的任意实施例的方法。
处理器720可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器720可以是微处理器。
存储器710可以用于存储由处理器720执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器720可以用于执行存储器710中的指令以实现上述所示的方法。存储器710包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种模型纹理的处理方法,其特征在于,所述方法包括:
获取一个或多个构件信息,其中,所述构件信息至少包括纹理图像;
根据预先建立的三维模型和所述构件信息,确定构件的中心线信息;
根据所述构件的中心线信息和所述三维模型的顶点数据,确定所述构件对应的映射值;
根据所述构件对应的映射值,控制与所述构件对应的纹理图像运动。
2.根据权利要求1所述的模型纹理的处理方法,其特征在于,在获取一个构件信息的情况下,所述根据预先建立的三维模型和所述构件信息,确定构件的中心线信息,包括:
根据主成分分析法,获取构件的特征值集合;
响应于用户输入的目标特征值,根据所述目标特征值和主成分分析法,确定所述构件的中心线信息。
3.根据权利要求1所述的模型纹理的处理方法,其特征在于,在获取两个构件信息的情况下,所述根据预先建立的三维模型和所述构件信息,确定构件的中心线信息,包括:
对于起始构件,根据所述三维模型的顶点数据,获取起始构件的第一中心线信息;
根据起始构件的第一中心点与第二个构件的第二中心点,确定第一中间向量;
确定所述第一中心线信息和所述第一中间向量的第一夹角;
根据所述第一夹角和第一预设角度,确定起始构件的起点和终点的放置方向;
对于终止构件,根据所述三维模型的顶点数据,获取终止构件的第二中心线信息;
根据终止构件的第二中心点与起始构件的第一中心点,确定第二中间向量;
确定所述第二中心线信息和所述第二中间向量的第二夹角;
根据所述第二夹角和所述第一预设角度,确定终止构件的起点和终点的放置方向;
根据所述起始构件的起点和终点的放置方向和所述终止构件的起点和终点的放置方向,确定所述构件的中心线信息。
4.根据权利要求1所述的模型纹理的处理方法,其特征在于,在获取多个构件信息的情况下,所述根据预先建立的三维模型和所述构件信息,确定构件的中心线信息,包括:
对于起始构件,根据所述三维模型的顶点数据,获取起始构件的第一中心线信息;
根据起始构件的第一中心点与第二个构件的第二中心点,确定第一中间向量;
确定所述第一中心线信息和所述第一中间向量的第一夹角;
根据所述第一夹角和第一预设角度,确定起始构件的起点和终点的放置方向;
对于终止构件,根据所述三维模型的顶点数据,获取终止构件的第二中心线信息;
根据终止构件的第二中心点与起始构件的第一中心点,确定第二中间向量;
确定所述第二中心线信息和所述第二中间向量的第二夹角;
根据所述第二夹角和所述第一预设角度,确定终止构件的起点和终点的放置方向;
对于中间构件,获取当前构件的第三中心点和前一个构件的第四中心点;
根据所述第三中心点和所述第四中心点,确定第三中间向量;
根据所述当前构件的第三中心点和所述终止构件的第二中心点,确定第四中间向量;
确定所述第三中间向量和所述第四中间向量的第三夹角;
若所述第三夹角大于第二预设角度,或者小于第三预设角度,则将所述当前构件的中心点,起始构件的起点和终点的放置方向,以及终止构件的起点和终点的放置方向确定为所述构件的中心线信息。
5.根据权利要求4所述的模型纹理的处理方法,其特征在于,所述根据所述构件的中心线信息和所述三维模型的顶点数据,确定所述构件对应的映射值,包括:
根据三维模型的数量和当前终端设备的CPU内核数量,确定单线程纹理赋值方式或多线程纹理赋值方式;
对于所述单线程纹理赋值方式或多线程纹理赋值方式,根据所述构件的中心线信息中的每个点的夹角角度,确定与所述点对应的映射算法;
根据所述映射算法,确定与所述构件对应的映射值。
6.根据权利要求5所述的模型纹理的处理方法,其特征在于,所述根据所述构件的中心线信息中的每个点的夹角角度,确定与所述点对应的映射算法,包括:
若所述点的夹角角度小于第四预设角度,则确定所述点对应的映射算法为第一映射算法;
若所述点的夹角角度大于或等于第四预设角度,则确定所述点对应的映射算法为第二映射算法。
7.根据权利要求5所述的模型纹理的处理方法,其特征在于,所述根据所述映射算法,确定与所述构件对应的映射值,包括:
采用第一映射算法,确定与所述构件对应的映射值,包括:
遍历构件的中心线上的每一个点,确定相连两点之间的线段;
根据所述三维模型的顶点数据和中心线上当前点的线段,确定顶点数据到所述当前点的线段的最短距离的垂足;
根据所述三维模型的顶点数据和所述垂足,确定顶点数据和当前点之前的第一距离,以及垂足到当前点的第一向量;
根据所述第一距离,以及当前点之前的所有点对应的第二距离,确定为映射值中的第一参考值;
根据所述三维模型的顶点数据和所述垂足,确定顶点数据到垂足的第二向量;
根据所述第一向量和所述第二向量的夹角的余弦值,确定为所述映射值中的第二参考值;
或
采用第二映射算法,确定与所述构件对应的映射值,包括:
根据中心线信息中的当前点、第一点和第二点,确定三点构成的平面和所述平面的法向量;其中,第一点为当前点的前一个点,第二点为当前点的后一个点;
确定当前点和第一点的第一向量,以及当前点和第二点的第二向量;
获取当前点和第一点构成的第一线段的第一中点,以及当前点和第二点构成的第二线段的第二中点;
根据所述第一中点、所述第二中点、所述第一向量、所述第二向量和所述法向量,确定第一线段的第一垂线向量和第二线段的第二垂线向量;
根据所述第一垂线向量和所述第二垂线向量,确定交点坐标和半径信息;
将所述三维模型的各个顶点数据投影到所述平面上,得到投影点和对应到半径信息对应的圆的映射点;
根据所述映射点和第二点之间的弧度长度和所述映射点与第二点之前的所有点的距离之和,确定为所述映射值的第一参考值;
根据所述当前点与所述映射点构成的向量与平面的夹角的余弦值,确定为所述映射值的第二参考值。
8.一种模型纹理的处理装置,其特征在于,所述装置包括:
获取模块,用于获取一个或多个构件信息,其中,所述构件信息至少包括纹理图像;
提取模块,用于根据预先建立的三维模型和所述构件信息,确定构件的中心线信息;
映射模块,用于根据所述构件的中心线信息和所述三维模型的顶点数据,确定所述构件对应的映射值;
处理模块,用于根据所述构件对应的映射值,控制与所述构件对应的纹理图像运动。
9.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权利要求1-7中任意一项权利要求所述的模型纹理的处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现权利要求1-7中任意一项权利要求所述的模型纹理的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310723159.5A CN117152328A (zh) | 2023-06-16 | 2023-06-16 | 模型纹理的处理方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310723159.5A CN117152328A (zh) | 2023-06-16 | 2023-06-16 | 模型纹理的处理方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117152328A true CN117152328A (zh) | 2023-12-01 |
Family
ID=88899427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310723159.5A Pending CN117152328A (zh) | 2023-06-16 | 2023-06-16 | 模型纹理的处理方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117152328A (zh) |
-
2023
- 2023-06-16 CN CN202310723159.5A patent/CN117152328A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11842438B2 (en) | Method and terminal device for determining occluded area of virtual object | |
US9311756B2 (en) | Image group processing and visualization | |
CN111640180B (zh) | 一种三维重建方法、装置及终端设备 | |
CN104081307A (zh) | 图像处理装置、图像处理方法和程序 | |
CN111583381B (zh) | 游戏资源图的渲染方法、装置及电子设备 | |
CN118012967A (zh) | 一种桥类地理信息数据处理方法和装置 | |
CN106997613A (zh) | 根据2d图像的3d模型生成 | |
CN108564645A (zh) | 房屋模型的渲染方法、终端设备及介质 | |
CN111968246B (zh) | 场景切换的方法、装置、电子设备和存储介质 | |
CN111583378B (zh) | 一种虚拟资产处理的方法及装置、电子设备、存储介质 | |
CN112717414A (zh) | 游戏场景编辑方法、装置、电子设备以及存储介质 | |
CN111870949A (zh) | 游戏场景中的对象处理方法、装置及电子设备 | |
CN117557740B (zh) | 三维模型分割层级切换方法、装置、电子设备及存储介质 | |
CN114066814A (zh) | 一种ar设备的手势3d关键点检测方法、电子设备 | |
CN108280135B (zh) | 实现数据结构可视化的方法、装置和电子设备 | |
US20210241539A1 (en) | Broker For Instancing | |
CN110378948B (zh) | 3d模型重建方法、装置及电子设备 | |
CN117152328A (zh) | 模型纹理的处理方法、装置、电子设备及介质 | |
CN106920269A (zh) | 图形处理方法和装置 | |
CN114119708A (zh) | 生成树结构的方法、装置、计算设备及存储介质 | |
CN108536698B (zh) | web数据三维展示方法及装置 | |
CN112966624A (zh) | 一种车道线检测方法、装置、电子设备和存储介质 | |
CN109919998A (zh) | 卫星姿态确定方法、装置和终端设备 | |
CN117909008B (zh) | 地图显示方法、装置、电子设备和可读存储介质 | |
CN108062793A (zh) | 基于高程的物体顶部处理方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |