CN112967396A - 基于镜向反射的3d模型球面保面积参数化方法及系统 - Google Patents

基于镜向反射的3d模型球面保面积参数化方法及系统 Download PDF

Info

Publication number
CN112967396A
CN112967396A CN202110143646.5A CN202110143646A CN112967396A CN 112967396 A CN112967396 A CN 112967396A CN 202110143646 A CN202110143646 A CN 202110143646A CN 112967396 A CN112967396 A CN 112967396A
Authority
CN
China
Prior art keywords
points
point
original
geometric body
convex
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
Application number
CN202110143646.5A
Other languages
English (en)
Other versions
CN112967396B (zh
Inventor
章登义
戴非
苏科华
任术波
辛宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202110143646.5A priority Critical patent/CN112967396B/zh
Publication of CN112967396A publication Critical patent/CN112967396A/zh
Application granted granted Critical
Publication of CN112967396B publication Critical patent/CN112967396B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明提供一个基于镜向反射的3D模型球面保面积参数化方法及系统,包括对原始的三角网格上的点进行去重,用随机数增加扰动;从加扰后点集中随机选择组成初始凸几何体;依次遍历除原始凸几何体上四个点外的其他点,如果点在当前凸几何体内则忽略,否则找到这个点能观测的所有面并删除;把阴影边界所有点和当前遍历点连接起来,构成三角形加入面集合,作为原始三角网格对应凸几何体的面集合;对原始网格中在凸几何体内的点进行相对于所求凸几何体的镜向反射,从而得到点的新位置;不断迭代直到凸几何体相对于最小包围球体的误差小于阈值,输出球面的保面积参数化结果。本发明无需强前提条件,高效实现保面积,能广泛应用于数字几何处理。

Description

基于镜向反射的3D模型球面保面积参数化方法及系统
技术领域
本发明涉及数字3D几何模型技术领域,具体涉及一种基于镜向反射的3D模型球面保面积参数化实现技术方案。
背景技术
随着3D几何模型的发展,网络曲面的参数化成为近年来图形学的研究热点之一,其是数字几何处理研究的基础核心。三角网络曲面有着简单、灵活且为各种图形硬件广泛支持的特点,所以三角网格曲面的参数化已被广泛地应用于娱乐业、制造业、医学和科学等领域。
三角网格模型的参数化是同构网格划分、重网格化、纹理映射等工作的研究基础。重网格化借助参数化把三角化曲面转化成具有细分连通性的规则网格,并且在此基础上进一步作多分辨率分析;用三维网格参数化把纹理图像映射到三维网格上,可使网格模型更加生动逼真;还有三维网格编辑、网格Morphing等数字几何处理都需要实现把网格参数化到一个容易交互式处理的参数域。
三角网格曲面参数化主要是将由三角网格M表示的曲面S与二维流形参数域Ω∈R3之间寻求一个一一对应映射
Figure BDA0002929093650000011
使得
Figure BDA0002929093650000012
与M同构,并使曲面应映射后扭曲失真最小,内在几何属性的变形程度是衡量参数化好坏地标准。如果参数域中的任意一段线段的长度和空间曲面中的线段长度一致,则称为保距映射。如果参数域中任意相交线段的角度和空间中对应相交线段的角度相等,则称为保角映射。如果参数域中每个面元和空间中的对应面元有相同的面积则称为保积映射。平面可展或者球面可展的模型曲面能找到保证角度和面积不变的参数化映射,但一般情况下,参数化地形变总是存在地。许多学者一直在研究如何计算扭曲失真的程度。并提出了等积映射、调和映射、保角映射、虚拟边界等方法来减小失真。
进行三角网格参数化最普遍的研究是把三角网格参数化到一张平面上,但是因为拓扑结构上的差异和为减小参数化结果的扭曲,一般需要对封闭网格进行切割分块处理;而分段参数化映射选择的任意性和映射之间的无相关性,在切割线上往往会引发更多的参数化变形。因此,对于零亏格封闭网格,将其参数化到与它拓扑同胚的球面上更为合理。
将亏格为零的三角网格进行直接求球面参数化的方法大致分为基于累进网格、基于球面松弛和基于凸组合的方法三种。基于累进网格地方法首先由Shapiro提出,首先用简化方法将网格简化为四面体网格,再将四面体网格映射到球面上,然后不断地插入节点,在球面上恢复三维网格的原始连接关系。Alexa提出球面松弛的办法,把网格的所有顶点投影到模型的最小包围球面上,然后保持球面上6个顶点的位置,用离散Laplace平均算子不断松弛球面的其他顶点,直到实现球面参数化时停止松弛。Gotsman提出凸组合的办法,将平面参数化的凸组合方法扩展到球面域中。
前两类方法都不是鲁棒的球面参数化方法,均需要有很强的前提假设,并且没有从理论上考虑参数化变形的问题。第三类方法虽然把平面Laplace算子推广到Laplace-Beltrami算子,然后进行非线性方程组的求解来得到球面参数化并从理论上证明了方法的可靠性,但由于其需要求解高度复杂的非线性方程组故而给求解结果带来了例如时间开销等多种问题,这种非线性的根源是球面方程在直角坐标系下只能用非线性方程表示。
近些年来,针对球面参数化方法的研究在世界范围内越来越引起重视,相关成果也十分丰硕,很大程度上推动了数字几何领域的发展。但传统方法存在着要求强前提假设、没有理论支持或需要求解复杂非线性方程组等缺点,所以迫切需要不存在以上问题的新方法。
发明内容
为了解决上述现有技术中存在的不足,本发明提供了一种基于镜向反射的3D模型球面保面积参数化方案,用以在解决以上问题的同时,能够实现球面保面积参数化,可以应用于同构网格的建立并进一步应用到Morphing图像变形等领域。
为了实现上述目的,本发明提出的技术方案一种基于镜向反射的3D模型球面保面积参数化方法,包括以下步骤,
步骤1,对原始的三角网格上的点进行去重,然后将原始网格进行备份,随后用随机数对原始网格增加扰动;
步骤2,从加扰后的点集中随机选择两个不重合的点p1和p2,然后找一个不和这两个点共线的点p3,再找一个不和这三个点共面的点p4,组成初始凸几何体;
步骤3,依次遍历除原始凸几何体上四个点外的其他点,如果这个点在当前凸几何体内,则忽略,否则找到这个点能观测的所有面并且删除它们;
步骤4,把阴影边界的所有点和当前遍历点pr连接起来,每条边界和pr一起构成一个三角形,将三角形加入到面集合;
步骤5,将步骤4完成后得到的面集合,作为原始三角网格对应凸几何体的面集合;
步骤6,对原始网格中在凸几何体内的点进行相对于所求凸几何体的镜向反射,从而得到点的新位置;
步骤7,返回步骤2不断迭代直到凸几何体相对于最小包围球体的误差小于预设阈值,输出球面的保面积参数化结果。
而且,步骤1中,用随机数来对原始点进行扰动来尽量避免特殊情况带来预判断时间的增加,实现方式如下,
首先通过创建函数:rand01():rand()/(double)RAND_MAX产生0-1区间的随机数,然后通过创建函数randeps():(rand01()-0.5)*eps产生-eps/2到eps/2的随机数,最后对三维网格中每个原始点的x,y,z坐标分别用randeps()加随机扰动;
其中,
rand01()为生成0到1之间的浮点数的函数,基于rand()函数和RAND_MAX生成;
rand()为伪随机数生成函数;
RAND_MAX是伪随机数生成函Rand()所能返回的最大数值;
eps为设置随机扰动范围的值;
randeps()为针对每个点设置随机扰动的函数。
double是指类型转换;
并创建一个初始标记数组,用以记录当前状态下存储面的下标和面是否删除的标志,标志为0代表删除,1代表保留。
而且,步骤2中,首先选取0号下标点为第一个点,然后找到第一个和0号下标的点不重合的点,将此点和1号下标的交换,从而保证0号下标和1号下标的点不重合;然后通过叉乘找到与0号,1号下标不共线的点与2号下标的点交换;最后通过叉乘和点乘找到与前三个点不共面的点与下标为3的点交换,通过这种方式保证了前四个点不共面,使得在步骤3中对每个点在凸几何体内还是在凸几何体外的判断只需从下标为4的点依次遍历判断。
而且,步骤3中,从下标为4的点开始依次遍历判断每个点,假设当前判断点为pr,采用有向体积的方法判断在凸几何体内还是凸几何体外,找到第一个能够被观测到的面后将此面删去并用同样的方法判断与它相邻的其他平面是否能够被pr点观测到,采用深度优先搜索的方式递归查询所有需要删除的面,将需要删除的面对应标记数组中的标志改为0。
而且,步骤4中,基于步骤3对每个遍历的点pr采用深度优先搜索的方式递归查询需要删除的面所得结果,找到所有需要被删除的面和其相邻的无需删除的面之间的阴影边界与点P组成新的三角形,并把新的三角形成的面添加到标记数组中,其面标志为1。
而且,步骤5中,对所有记录下来的面通过标记数组中每个面对应的标志来判断是否已经删除来得到最终凸几何体的面集合,并以需要保留下来的面来重置标记数据,扰动后保留下来的网格的面对应点下标是原始网格应保留下来面对应的点下标。
而且,步骤6中,依次遍历预先备份网格上的所有点,找到每个点相对于凸几何体的最近面片,并相对于最近面片做镜向反射得到点的新位置,每次反射均为保面积。
而且,步骤7中,对每次迭代后形成的新的几何体上的所有点进行到最小包围球面的映射,并计算映射后的所有点到几何体上所有点距离的平方和Dall,当Dall小于预设的阈值ε后停止迭代,最终实现球面的保面积参数化。
另一方面,本发明提供一种基于镜向反射的3D模型球面保面积参数化系统,用于实现如上所述的一种基于镜向反射的3D模型球面保面积参数化方法。
而且,包括以下模块,
第一模块,用于对原始的三角网格上的点进行去重,然后将原始网格进行备份,随后用随机数对原始网格增加扰动;
第二模块,用于从加扰后的点集中随机选择两个不重合的点p1和p2,然后找一个不和这两个点共线的点p3,再找一个不和这三个点共面的点p4,组成初始凸几何体;
第三模块,用于依次遍历除原始凸几何体上四个点外的其他点,如果这个点在当前凸几何体内,则忽略,否则找到这个点能观测的所有面并且删除它们;
第四模块,用于把阴影边界的所有点和当前遍历点pr连接起来,每条边界和pr一起构成一个三角形,将三角形加入到面集合;
第五模块,用于将第四模块完成后得到的面集合,作为原始三角网格对应凸几何体的面集合;第六模块,用于对原始网格中在凸几何体内的点进行相对于所求凸几何体的镜向反射,从而得到点的新位置;
第七模块,用于返回第二模块不断迭代直到凸几何体相对于最小包围球体的误差小于预设阈值,输出球面的保面积参数化结果。
本发明的有益效果在于:本发明提出了一种基于镜向反射的球面保面积参数化实现算法。首先将原始网格去重,然后对原始网格进行备份。然后对原始网格加随机数扰动来避免三点共线和四点共面带来的判断的开销。依次找出两个不重合的点,三个不共线的点以及四个不共面的点组成最初的凸几何体。依次遍历除原始选取的四个点外的其他点,如果点在当前凸几何体内,则跳过;否则找到这个点能观测的所有面并且递归删除。随后将阴影边界的所有点和当前遍历点连接起来,每条边界和当前点构成一个三角片面,并将此三角片面加入到面集合。再将原始网格中在凸集合内的点进行相对于所求凸几何体的镜向反射得到新的位置。不断重复以上过程直到凸几何体相对于最小包围球面的误差小于一定的阈值。整个过程不涉及到非线性程度较高的方程组求解,故其是十分高效的,不涉及强前提假设,且由数学理论可知,参数化的过程是保面积的,所以可以广泛地应用于数字几何领域。
本发明方案实施简单方便,实用性强,解决了相关技术存在的实用性低及实际应用不便的问题,能够提高用户体验,具有重要的市场价值。
附图说明
图1为本发明实施例基于镜向反射的球面保面积参数化方法的整体实现步骤流程图。
图2为本发明实施例中在所求出凸集合内的点C进行相对于所求凸几何体的最近面片做镜向反射得到新的位置C1的示例图。
具体实施方式
以下结合附图和实施例具体说明本发明的技术方案。
本发明旨在解决球面参数化在大多数情况下较平面参数化的面积形变更大且传统球面参数化方法存在着要求强前提假设、没有理论支持或需要求解复杂非线性方程组等缺点的问题。实验结果表明,本方法能高效且精确地将各式各样的零亏格封闭网格以保面积的方式将其参数化到与其拓扑同胚的球面上,从而广泛应用于同构网格生成、纹理映射等数字几何处理。
本发明有数学理论依据,并保证参数化是保面积的,即在每次迭代的过程中每个网格的面积大小不变,并且在迭代过程中无需涉及到复杂非线性方程组求解,所以效率是非常高的。
基本数学理论如下:
通过创建函数rand01():rand()/(double)RAND_MAX和randeps():(rand01()-0.5)*eps产生-eps/2到eps/2的随机数,来对三维网格中每个原始点x,y,z坐标产生随机扰动来避免三点共线、四点共面等特殊情况。
其中,
rand01()为生成0到1之间的浮点数的函数,基于rand()函数和RAND_MAX生成;
rand()为伪随机数生成函数;
RAND_MAX是伪随机数生成函Rand()所能返回的最大数值;
eps为设置随机扰动范围的值,具体实施时可以根据网格坐标范围选取大小;
randeps()为针对每个点设置随机扰动的函数。
double是指类型转换,是编程语言里的用法。
设点A(x1,y1,z1),B(x2,y2,z2),C(x3,y3,z3),通过计算叉乘后得到的向量长度
Figure BDA0002929093650000051
来判断三点是否共线:
Figure BDA0002929093650000061
Figure BDA0002929093650000062
设点A(x1,y1,z1),B(x2,y2,z2),C(x3,y3,z3),D(x4,y4,z4),分别求出三个向量,
Figure BDA0002929093650000063
通过三个向量叉乘结果是否为零来判断四点是否共面,为零则四点共面:((y2-y1)*z3-z1-z2-z1*y3-y1*x4-x1+z2-z1*x3-x1-x2-x1*z3-z1*y4-y1+x2-x1*y3-y1-y2-y1*x3-x1*z4-z1=0
同理,通过点和平面三点之间的叉乘和点乘结果的正负判断平面是否可见,可见则递归删除所有可见面。
已知两点坐标(x1,y1,z1)、(x2,y2,z2),通过这两点的空间直线为:
Figure BDA0002929093650000064
已知球体圆心坐标(x0,y0,z0)及半径r,球体方程可以记为(x-x0)2+(y-y0)2+(z-z0)22,计算直线与球面的交点的方法如下:
当x2≠x1
Figure BDA0002929093650000065
当x2=x1&&y2≠y1时,此时空间直线在x=x1的平面上,问题转化为求解x=x1平面上直线和一个圆的交点问题。
Figure BDA0002929093650000066
当x2=x1&&y2=y1&&z2≠z1时,此时空间直线为平行与z轴的直线,且坐标x,y已知,(z-z0)2=r2-(x1-x0)2-(y1-y0)2
由上述数学理论可知不涉及复杂的非线性方程求解,故本发明是十分高效的。
镜向映射能保证网格上所有点之间的距离不变,即网格边的长度是不变的。设一个三角形的各边的长度为a,b,c,那么三角形的面积的计算方法为
Figure BDA0002929093650000067
Figure BDA0002929093650000068
所以三角形的面积也是不变的,故而能保证保面积参数化。
参见图1,本发明实施例提供的基于镜向反射的3D模型球面保面积参数化方法,基本步骤如下:
步骤S1:对原始的三角网格上的点进行去重,然后将原始网格进行备份,随后用随机数对原始网格增加扰动以尽量避免各种特殊情况(如三点共线,四点共面):
将输入点进行去重避免扰动后出现极小的面,随后对原始网格进行备份。用随机数来对原始点进行扰动来尽量避免特殊情况带来预判断时s间的增加,首先通过创建函数:rand01():rand()/(double)RAND_MAX产生0-1区间的随机数,然后通过创建函数randeps():(rand01()-0.5)*eps产生-eps/2到eps/2的随机数,最后对三维网格中每个原始点的x,y,z坐标分别用randeps()加随机扰动。并创建一个初始标记数组,用以记录当前状态下存储的所有四面的下标和面是否删除的标志,标志为0代表删除,1代表保留。
步骤S2:从加扰后的点集中随机选择两个不重合的点p1和p2,然后找一个不和这两个点共线的点p3,再找一个不和这三个点共面的点p4,组成初始凸几何体:
选取0下标点为第一个点,然后找到第一个和0号下标的点不重合的点,将此点和1号下标的交换,从而保证0号下标和1号下标的点不重合。然后通过叉乘找到与0号及1号下标不共线的点,与2号下标的点交换。最后通过叉乘找到与前三个点不共面的点与下标为3的点交换。通过这种方式保证了前四个点不共面。如图2中选取的最初四个点A,B,C,D。随后仅需从下标为4的点依次遍历判断其在凸几何体内还是在凸几何体外。
步骤S3:从下标为4的点开始依次遍历除原始凸几何体上四个点外的其他点,如果这个点在当前凸几何体内,则忽略,否则找到这个点能观测的所有面并且删除它们,即为将标记数组中存储的对应面的标志改为0:
对除了0-3号点之外的点进行遍历,设当前遍历点为pr,对每个遍历的点pr采用有向体积的方法判断在凸几何体内还是凸几何体外(在存储面时,保证面的法线方向朝向凸几何体外部,若存在某一平面和点pr所组成的四面体的有向体积为正,则pr点在凸几何体外部,并且此面可被pr点观测到)。找到第一个可被观测到的面后将此面删去并用同样的方法判断与它相邻的其他平面是否可被pr点观测到,这里采用深度优先搜索的方式递归查询所有需要删除的面。如图2中在点P加入的过程中,删除可视面ABC,点E加入的过程中删除可视面BCP,ACD,ACP。
步骤S4:把阴影边界的所有点和当前遍历点pr连接起来,每条边界和pr一起构成一个三角形,将三角形形成的面添加到标记数组中,其面标志为1:
对每个遍历的点pr采用深度优先搜索的方式递归查询需要删除的面后,最后找到所有需要被删除的面和其相邻的无需删除的面之间的阴影边界与点P组成新的三角形,并把新的三角形添加到凸几何体的面集合中。如图2中在点P加入的过程中,添加面ACP,ABP,BCP,点E加入的过程中添加面ADE,AEP,BEP。
步骤S5:遍历完后得到的保留下的面集合即是原始三角网格对应凸几何体的面集合,通过标记数组中每个面对应的标记是否为1来重置标记数组,重置后的标记数组仅保留标记为1的面:
对步骤S4所得凸几何体的面集合中所有记录下来的面,通过标志判断是否需要删除来更新凸几何体的面集合,扰动后保留下来的网格的面对应点下标即是原始网格应保留下来面对应的点下标。
例如,在加入点E后记录下来的面为ABC,ABD,ACD,BCD,ACP,ABP,BCP,既包括需要加入的面,也包括即将要删除的面。
步骤S6:对原始网格中在凸几何内的点进行相对于所求凸几何体的镜向反射,从而得到点的新位置:
依次遍历预先备份网格上的所有点,找到每个点相对于凸几何体的最近面片,并相对于最近面片做镜向反射得到点的新位置,每次反射均为保面积,并得到当前迭代下新的凸几何体M′。如图2中点C的最近凸几何体上面片为AEP,对其做相对于AEP的镜向反射得到点C1
反射保面积是指反射得到的点和其他点形成的三角形面积和原来点与其他点形成的三角形面积相同。
步骤S7:返回步骤2不断迭代直到凸几何体相对于最小包围球体的误差小于预设阈值,输出球面的保面积参数化结果:
对每次迭代执行步骤S6后形成的新的凸几何体上的所有点进行其到最小包围球面的映射,并计算映射后的所有点到几何体上所有点距离的平方和Dall,当Dall小于一定的阈值ε后停止迭代,否则返回步骤S2进行新一次迭代。最终实现了球面的保面积参数化。具体实施时,可以得到在网格模型上的迭代过程,获取在不同网格上进行球面保面积参数化的前后网格对比。
其中,阈值ε优选建议取值1e-9与1e-6之间。
该方法相对传统方法能实现保面积的效果,在同构网格生成和纹理映射等数字几何领域得到了较好的视觉效果,进而能广泛应用于动画、电影设计中的三维模型建模和二维纹理到三维模型贴图。
具体实施时,本发明技术方案提出的方法可由本领域技术人员采用计算机软件技术实现自动运行流程,实现方法的系统装置例如存储本发明技术方案相应计算机程序的计算机可读存储介质以及包括运行相应计算机程序的计算机设备,也应当在本发明的保护范围内。
在一些可能的实施例中,提供一种基于镜向反射的3D模型球面保面积参数化系统,包括以下模块,
第一模块,用于对原始的三角网格上的点进行去重,然后将原始网格进行备份,随后用随机数对原始网格增加扰动;
第二模块,用于从加扰后的点集中随机选择两个不重合的点p1和p2,然后找一个不和这两个点共线的点p3,再找一个不和这三个点共面的点p4,组成初始凸几何体;
第三模块,用于依次遍历除原始凸几何体上四个点外的其他点,如果这个点在当前凸几何体内,则忽略,否则找到这个点能观测的所有面并且删除它们;
第四模块,用于把阴影边界的所有点和当前遍历点pr连接起来,每条边界和pr一起构成一个三角形,将三角形加入到面集合;
第五模块,用于将第四模块完成后得到的面集合,作为原始三角网格对应凸几何体的面集合;
第六模块,用于对原始网格中在凸几何体内的点进行相对于所求凸几何体的镜向反射,从而得到点的新位置;
第七模块,用于返回第二模块不断迭代直到凸几何体相对于最小包围球体的误差小于预设阈值,输出球面的保面积参数化结果。
在一些可能的实施例中,提供一种基于镜向反射的3D模型球面保面积参数化系统,包括处理器和存储器,存储器用于存储程序指令,处理器用于调用存储器中的存储指令执行如上所述的一种基于镜向反射的3D模型球面保面积参数化方法。
在一些可能的实施例中,提供一种基于镜向反射的3D模型球面保面积参数化系统,包括可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序执行时,实现如上所述的一种基于镜向反射的3D模型球面保面积参数化方法。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (10)

1.一种基于镜向反射的3D模型球面保面积参数化方法,其特征在于:包括以下步骤,
步骤1,对原始的三角网格上的点进行去重,然后将原始网格进行备份,随后用随机数对原始网格增加扰动;
步骤2,从加扰后的点集中随机选择两个不重合的点p1和p2,然后找一个不和这两个点共线的点p3,再找一个不和这三个点共面的点p4,组成初始凸几何体;
步骤3,依次遍历除原始凸几何体上四个点外的其他点,如果这个点在当前凸几何体内,则忽略,否则找到这个点能观测的所有面并且删除它们;
步骤4,把阴影边界的所有点和当前遍历点pr连接起来,每条边界和pr一起构成一个三角形,将三角形加入到面集合;
步骤5,将步骤4完成后得到的面集合,作为原始三角网格对应凸几何体的面集合;
步骤6,对原始网格中在凸几何体内的点进行相对于所求凸几何体的镜向反射,从而得到点的新位置;
步骤7,返回步骤2不断迭代直到凸几何体相对于最小包围球体的误差小于预设阈值,输出球面的保面积参数化结果。
2.根据权利要求1所述基于镜向反射的3D模型球面保面积参数化方法,其特征在于:步骤1中,用随机数来对原始点进行扰动来尽量避免特殊情况带来预判断时间的增加,实现方式如下,
首先通过创建函数:rand01():rand()/(double)RAND_MAX产生0-1区间的随机数,然后通过创建函数randeps():(rand01()-0.5)*eps产生-eps/2到eps/2的随机数,最后对三维网格中每个原始点的x,y,z坐标分别用randeps()加随机扰动;
其中,
rand01()为生成0到1之间的浮点数的函数,基于rand()函数和RAND_MAX生成;
rand()为伪随机数生成函数;
RAND_MAX是伪随机数生成函Rand()所能返回的最大数值;
eps为设置随机扰动范围的值;
randeps()为针对每个点设置随机扰动的函数。
double是指类型转换;
并创建一个初始标记数组,用以记录当前状态下存储面的下标和面是否删除的标志,标志为0代表删除,1代表保留。
3.根据权利要求1所述基于镜向反射的3D模型球面保面积参数化方法,其特征在于:步骤2中,首先选取0号下标点为第一个点,然后找到第一个和0号下标的点不重合的点,将此点和1号下标的交换,从而保证0号下标和1号下标的点不重合;然后通过叉乘找到与0号,1号下标不共线的点与2号下标的点交换;最后通过叉乘和点乘找到与前三个点不共面的点与下标为3的点交换,通过这种方式保证了前四个点不共面,使得在步骤3中对每个点在凸几何体内还是在凸几何体外的判断只需从下标为4的点依次遍历判断。
4.根据权利要求1所述基于镜向反射的3D模型球面保面积参数化方法,其特征在于:步骤3中,从下标为4的点开始依次遍历判断每个点,假设当前判断点为pr,采用有向体积的方法判断在凸几何体内还是凸几何体外,找到第一个能够被观测到的面后将此面删去并用同样的方法判断与它相邻的其他平面是否能够被pr点观测到,采用深度优先搜索的方式递归查询所有需要删除的面,将需要删除的面对应标记数组中的标志改为0。
5.根据权利要求1所述基于镜向反射的3D模型球面保面积参数化方法,其特征在于:步骤4中,基于步骤3对每个遍历的点pr采用深度优先搜索的方式递归查询需要删除的面所得结果,找到所有需要被删除的面和其相邻的无需删除的面之间的阴影边界与点P组成新的三角形,并把新的三角形成的面添加到标记数组中,其面标志为1。
6.根据权利要求1所述基于镜向反射的3D模型球面保面积参数化方法,其特征在于:步骤5中,对所有记录下来的面通过标记数组中每个面对应的标志来判断是否已经删除来得到最终凸几何体的面集合,并以需要保留下来的面来重置标记数据,扰动后保留下来的网格的面对应点下标是原始网格应保留下来面对应的点下标。
7.根据权利要求1所述基于镜向反射的3D模型球面保面积参数化方法,其特征在于:步骤6中,依次遍历预先备份网格上的所有点,找到每个点相对于凸几何体的最近面片,并相对于最近面片做镜向反射得到点的新位置,每次反射均为保面积。
8.根据权利要求1所述基于镜向反射的3D模型球面保面积参数化方法,其特征在于:步骤7中,对每次迭代后形成的新的几何体上的所有点进行到最小包围球面的映射,并计算映射后的所有点到几何体上所有点距离的平方和Dall,当Dall小于预设的阈值ε后停止迭代,最终实现球面的保面积参数化。
9.一种基于镜向反射的3D模型球面保面积参数化系统,其特征在于:用于实现如权利要求1-5任一项所述的一种基于镜向反射的3D模型球面保面积参数化方法。
10.根据权利要求8所述基于镜向反射的3D模型球面保面积参数化系统,其特征在于:包括以下模块,
第一模块,用于对原始的三角网格上的点进行去重,然后将原始网格进行备份,随后用随机数对原始网格增加扰动;
第二模块,用于从加扰后的点集中随机选择两个不重合的点p1和p2,然后找一个不和这两个点共线的点p3,再找一个不和这三个点共面的点p4,组成初始凸几何体;
第三模块,用于依次遍历除原始凸几何体上四个点外的其他点,如果这个点在当前凸几何体内,则忽略,否则找到这个点能观测的所有面并且删除它们;
第四模块,用于把阴影边界的所有点和当前遍历点pr连接起来,每条边界和pr一起构成一个三角形,将三角形加入到面集合;
第五模块,用于将第四模块完成后得到的面集合,作为原始三角网格对应凸几何体的面集合;
第六模块,用于对原始网格中在凸几何体内的点进行相对于所求凸几何体的镜向反射,从而得到点的新位置;
第七模块,用于返回第二模块不断迭代直到凸几何体相对于最小包围球体的误差小于预设阈值,输出球面的保面积参数化结果。
CN202110143646.5A 2021-02-02 2021-02-02 基于镜向反射的3d模型球面保面积参数化方法及系统 Active CN112967396B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110143646.5A CN112967396B (zh) 2021-02-02 2021-02-02 基于镜向反射的3d模型球面保面积参数化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110143646.5A CN112967396B (zh) 2021-02-02 2021-02-02 基于镜向反射的3d模型球面保面积参数化方法及系统

Publications (2)

Publication Number Publication Date
CN112967396A true CN112967396A (zh) 2021-06-15
CN112967396B CN112967396B (zh) 2023-05-16

Family

ID=76271892

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110143646.5A Active CN112967396B (zh) 2021-02-02 2021-02-02 基于镜向反射的3d模型球面保面积参数化方法及系统

Country Status (1)

Country Link
CN (1) CN112967396B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114219775A (zh) * 2021-11-23 2022-03-22 南京应用数学中心 基于能量最小化准则的椭球参数化算法及应用

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050280648A1 (en) * 2004-06-18 2005-12-22 Microsoft Corporation Optimizing real-time rendering of texture mapped object models relative to adjustable distortion thresholds
CN101383052A (zh) * 2008-01-16 2009-03-11 清华大学 基于球面分段常数基函数的动态场景实时绘制方法
CN101655993A (zh) * 2008-08-20 2010-02-24 武汉大学 复杂建筑物三维模型多分辨率建模方法
US20110169828A1 (en) * 2010-01-12 2011-07-14 Hans Kohling Pedersen Methods for Creating Developable Surfaces
CN103985155A (zh) * 2014-05-14 2014-08-13 北京理工大学 基于映射法的散乱点云Delaunay三角剖分曲面重构方法
CN107886569A (zh) * 2017-12-27 2018-04-06 武汉大学 一种基于离散李导数的测度可控的曲面参数化方法及系统
CN110046543A (zh) * 2019-02-27 2019-07-23 视缘(上海)智能科技有限公司 一种基于平面参数化的三维人脸识别方法
CN111445582A (zh) * 2019-01-16 2020-07-24 南京大学 一种基于光照先验的单张图像人脸三维重建方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050280648A1 (en) * 2004-06-18 2005-12-22 Microsoft Corporation Optimizing real-time rendering of texture mapped object models relative to adjustable distortion thresholds
CN101383052A (zh) * 2008-01-16 2009-03-11 清华大学 基于球面分段常数基函数的动态场景实时绘制方法
CN101655993A (zh) * 2008-08-20 2010-02-24 武汉大学 复杂建筑物三维模型多分辨率建模方法
US20110169828A1 (en) * 2010-01-12 2011-07-14 Hans Kohling Pedersen Methods for Creating Developable Surfaces
CN103985155A (zh) * 2014-05-14 2014-08-13 北京理工大学 基于映射法的散乱点云Delaunay三角剖分曲面重构方法
CN107886569A (zh) * 2017-12-27 2018-04-06 武汉大学 一种基于离散李导数的测度可控的曲面参数化方法及系统
CN111445582A (zh) * 2019-01-16 2020-07-24 南京大学 一种基于光照先验的单张图像人脸三维重建方法
CN110046543A (zh) * 2019-02-27 2019-07-23 视缘(上海)智能科技有限公司 一种基于平面参数化的三维人脸识别方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KEHUA SU等: "Area-preserving mesh parameterization for poly-annulus surfaces based on optimal mass transportation", COMPUTER AIDED GEOMETRIC DESIGN *
洪程;章登义;苏科华;武小平;郑昌金;: "改进的全局参数化方法", 计算机应用 *
钱坤;张家玲;李映华;吕毅斌;苏科华;: "高亏格曲面共形参数化方法", 计算机辅助设计与图形学学报 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114219775A (zh) * 2021-11-23 2022-03-22 南京应用数学中心 基于能量最小化准则的椭球参数化算法及应用
CN114219775B (zh) * 2021-11-23 2023-08-15 南京应用数学中心 基于能量最小化准则的椭球参数化算法及应用

Also Published As

Publication number Publication date
CN112967396B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
Kobbelt et al. Feature sensitive surface extraction from volume data
Bernardini et al. Automatic reconstruction of 3D CAD models from digital scans
CN102194253B (zh) 一种面向三维地质层面结构的四面体网格生成方法
Pérez et al. A comparison of hole-filling methods in 3D
CN102521869B (zh) 一种几何特征引导的三维模型表面纹理空洞填补方法
CN111581776B (zh) 一种基于几何重建模型的等几何分析方法
CN116229015B (zh) 一种基于2N-Tree带附面层的贴体笛卡尔网格生成方法
CN116385672A (zh) 一种三维地形场景模型数据产品的构建方法
Pfeifer A subdivision algorithm for smooth 3D terrain models
Tchon et al. Three-dimensional anisotropic geometric metrics based on local domain curvature and thickness
CN110675323A (zh) 一种三维地图语义处理方法、系统、设备及计算机介质
CN112967396A (zh) 基于镜向反射的3d模型球面保面积参数化方法及系统
CN112200906B (zh) 一种面向倾斜三维模型的实体提取方法及其系统
Amiri et al. Connectivity maps for subdivision surfaces
Yoo Three-dimensional morphing of similar shapes using a template mesh
CN113658333A (zh) 一种基于等值面抽取的地质体建模方法
Singh et al. Advancing layer surface mesh generation
Shen et al. An adaptive triangulation optimization algorithm based on empty circumcircle
Durix et al. Towards skeleton based reconstruction: From projective skeletonization to canal surface estimation
Huang et al. Delaunay growth algorithm based on point cloud curvature smoothing improvement
Vieira et al. Surface extraction from point-sampled data through region growing
García et al. Evaluation of Boolean operations between free-form solids using extended simplicial chains and PN triangles
Liu et al. Shape from silhouette outlines using an adaptive dandelion model
Piret et al. Mesh and CAD repair based on parametrizations with Radial Basis Functions
Zint Block-Structured Grid Generation for High-Performance Ocean Simulation

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
GR01 Patent grant
GR01 Patent grant