广告字3D模型生成方法转让专利

申请号 : CN202010804886.0

文献号 : CN112085832B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邢世海裴文剑区宇辉

申请人 : 浙江闪铸三维科技有限公司

摘要 :

本发明公开了广告字3D模型生成方法,包括如下步骤:(1)对文字轮廓进行Delaunay轮廓三角化;(2)生成文字轮廓中心线;(3)用中心线对轮廓3D进行剖分网格,得到对称的轮廓三角网格BaseMesh,BaseMesh为外壁基础网格;(4)对基础网格进行细分,得到外壁网格OutMesh;(5)拉伸网格,生成3D网格;(6)平滑网格;(7)内壁基础网格的生成;(8)重复上述步骤(4)‑(6)生成内壁3D网格。轮廓三角网格BaseMesh以中心线为对称分布在文字轮廓内,OutMesh进一步细化BaseMesh,提高拉伸后3D模型的精度,以中心线为基准拉伸OutMesh后,对3D网格进行平滑,得到外壁3D网格。以相同的BaseMesh作为内壁的基础网格,并重复步骤(4)‑(6)生成内壁3D网格,从而完成广告字3D模型生成。

权利要求 :

1.广告字3D模型生成方法,其特征在于,包括如下步骤:(1)对文字轮廓进行Delaunay轮廓三角化;

(2)生成文字轮廓中心线;

(3)根据中心线对文字轮廓进行网格化处理,生成外壁网格;

(4)拉伸网格,生成外壁3D网格:p0为边界点,p1为中心点,计算分割点位置:如果拉伸成直线,新的顶点P(x,y,z):x坐标:P(x)=p0(x)+[p1(x)‑p0(x)]*r1;

y坐标:P(y)=p0(y)+[p1(y)‑p0(y)]*r1;

z坐标:P(z)=h*r1;

其中,r1为当前点的比例,h为设定高度;记录每个新生成的点对应的边界点;

如果拉伸成圆弧,新的顶点按椭圆计算,新的顶点P(x,y,z):x坐标:

y坐标:

z坐标:P(z)=b*r1;

其中,r1为当前点的比例,a为边界点和中心点距离,b为拉伸高度,记录每个新生成的点对应的边界点;

(5)调整网格,具体调整网格的方法为:

1)计算边界轮廓的上每个顶点的角度,当角度大于160度时,对应的新生成的点需要平滑处理;

2)按z坐标值,搜索网格的等高线,得到一系列的等高线;

3)对每一条等高线的点,搜索其左右邻接点,邻接的点的条件是对应的边界边上的原始边界点不相同;

4)得到其左右邻接点后,计算每个点到原始轮廓线的距离,然后根据其左右邻接点到原始轮廓线距离,沿着顶点边方向调整顶点位置:p=p+(ori‑p)*λ*[len‑newLen]/len;

newLen=(left*w1+right*w2)/(w1+w2);

其中p为当前点,ori为其原始点,len为当前点到轮廓的距离,left,right分别为左右点到轮廓的距离,λ为系数,w1为p和左边邻接点距离的倒数,w2为p和右边邻接点距离的倒数;当p的左右邻接点有一个不需要调整时,直接将p点调整调整到p与左右邻接点的连线上;

(6)生成内壁网格;

(7)重复上述步骤(4)‑(5)生成内壁3D网格。

2.根据权利要求1所述广告字3D模型生成方法,其特征在于:所述步骤(3)具体步骤为:用中心线对轮廓进行网格剖分,得到对称的轮廓三角网格BaseMesh,BaseMesh为外壁基础网格。

3.根据权利要求2所述广告字3D模型生成方法,其特征在于:所述步骤(3)还包括对BaseMesh进行细分,得到外壁网格OutMesh。

4.根据权利要求3所述广告字3D模型生成方法,其特征在于:步骤(3)中,在生成BaseMesh时,顶点被分成边界点和中心点,对每个三角形的非边界边按照比例r1分成大于2及以上的段数,分成的段数根据网格边平均长度除以一个设定的长度得到,然后依次连接点,得到新的网格作为外壁网格OutMesh。

5.根据权利要求4所述广告字3D模型生成方法,其特征在于:步骤(3)中,若不平均分割非边界边,中间间距大于两头间距。

6.根据权利要求1所述广告字3D模型生成方法,其特征在于:步骤(5)还包括:

5)将等高线上的点,根据左右邻接点再次进行多次迭代,计算当前点和原始点与左右邻接点的交点inter,计算当前点和左右点角度:p=p+(inter‑p)*γ,γ=(当前角度‑原始角度)/(180‑原始角度);

在迭代调整时如果当前点的角度已经大于原始点角度就不需要调整。

7.根据权利要求1所述广告字3D模型生成方法,其特征在于:步骤(6)中,内壁基础网格的生成具体方法为:内壁的网格采用同一个基础网格,对轮廓进行向内偏移,偏移的距离为壁厚,将偏移后的轮廓线与基础网格进行切割,得到内壁的基础网格。

说明书 :

广告字3D模型生成方法

技术领域

[0001] 本发明属于3D文字领域,具体涉及广告字3D模型生成方法。

背景技术

[0002] 广告字通常为立体的薄壁等高字,中间为空心,可用于安装发光装置。这种薄壁等高字的3D模型没有专门的软件和生成方法,一般来说有以下两种方式:
[0003] 1、先使用绘图软件设计广告字,再通过3D软件对文字分片建模然后拼接。
[0004] 2、将雕刻路径转换成3D模型。
[0005] 第一种方法较为繁琐,设计复杂字体时需要消耗较多人力,提高广告字的制作成本,且分片建模精度不够,最后生成的3D模型不够光滑。第二种方法同样具有精度不足的问
题。因此需要一种简单高效的广告字3D模型生成方法。

发明内容

[0006] 本发明的目的在于提供广告字3D模型生成方法,可一键生成3D模型,简单高效,降低人工费用,且3D模型平滑。
[0007] 为了解决上述技术问题,本发明采用如下技术方案:
[0008] 广告字3D模型生成方法,其特征在于,包括如下步骤:
[0009] (1)对文字轮廓进行Delaunay轮廓三角化;
[0010] (2)生成文字轮廓中心线;
[0011] (3)根据中心线对文字轮廓进行网格化处理,生成外壁网格;
[0012] (4)拉伸网格,生成外壁3D网格;
[0013] (5)调整网格;
[0014] (6)生成内壁网格;
[0015] (7)重复上述步骤(4)‑(5)生成内壁3D网格。
[0016] 在文字轮廓内沿着中心线生成对称网格,再将网格向上拉伸后进行适当调整平滑形成外壁3D网格,接着通过相同步骤生成对应的内壁3D网格,从而生成3D模型。这种方法可
一键生成3D模型,简单高效,降低人工费用,且3D模型平滑。
[0017] 优选的,步骤(3)具体步骤为:用中心线对轮廓进行网格剖分,得到对称的轮廓三角网格BaseMesh,BaseMesh为外壁基础网格。轮廓三角网格BaseMesh以中心线为对称分布
在文字轮廓内,使拉伸后3D文字的形状规则。
[0018] 优选的,步骤(3)还包括对BaseMesh进行细分,得到外壁网格OutMesh。OutMesh进一步细化BaseMesh,提高拉伸后3D模型的精度和光滑度。
[0019] 优选的,步骤(3)中,在生成BaseMesh时,顶点被分成边界点和中心点,对每个三角形的非边界边按照比例r1分成若干段,分成的段数根据网格边平均长度除以一个设定的长
度得到,然后依次连接点,得到新的网格作为外壁网格OutMesh。这种方法可以较为均匀地
精细切割文字轮廓,形成细化的Outmesh,从而提高3D模型的精度,便于拉伸和后续的平滑。
[0020] 优选的,步骤(3)中,若不平均分割非边界边,中间间距大于两头间距。拉伸后形成的3D模型两头可以更加光滑而且顶点数可以更少。
[0021] 优选的,步骤(4)中,p0为边界点,p1为中心点,计算分割点位置:
[0022] 如果拉伸成直线,新的顶点P(x,y,z):
[0023] x坐标:P(x)=p0(x)+[p1(x)‑p0(x)]*r1;
[0024] y坐标:P(y)=p0(y)+[p1(y)‑p0(y)]*r1;
[0025] z坐标:P(z)=h*r1;
[0026] 其中,r1为当前点的比例,h为设定高度。通过方程计算出新的顶点P的坐标并记载每个顶点坐标。
[0027] 优选的,步骤(4)中,如果拉伸成圆弧,新的顶点按椭圆计算,新的顶点P(x,y,z):
[0028] x坐标:
[0029] y坐标:
[0030] z坐标:P(z)=b*r1;
[0031] 其中,r1为当前点的比例,a为椭圆的边界点和中心点距离,b为椭圆的拉伸高度,记录每个新生成的点对应的边界点,用于后期的调整。
[0032] 优选的,步骤(5)中,具体平滑网格的方法为:
[0033] 1)计算边界轮廓的上每个顶点的角度,当角度大于160度时,对应的新生成的点需要平滑处理;
[0034] 2)按z坐标值,搜索网格的等高线,得到一系列的等高线;
[0035] 3)对每一条等高线的点,搜索其左右邻接点,邻接的点的条件是对应的边界边上的原始边界点不相同;
[0036] 4)得到其左右邻接点后,计算每个点到原始轮廓线的距离,然后根据其左右邻接点到原始轮廓线距离,沿着顶点边方向调整顶点位置:
[0037] p=p+(ori‑p)*λ*[len‑newLen]/len;
[0038] newLen=(left*w1+right*w2)/(w1+w2);
[0039] 其中p为当前点,ori为其原始点,len为当前点到轮廓的距离,left,right分别为左右点到轮廓的距离,λ为系数,w1为p和左边邻接点距离的倒数,w2为p和右边邻接点距离
的倒数;当p的左右邻接点有一个不需要调整时,直接将p点调整调整到p与左右邻接点的连
线上。
[0040] 拉伸后有些曲面会向内凹,为了将这些内凹曲面向外平滑,根据该方程调整内凹曲面上顶点的位置,实现网格的平滑。
[0041] 优选的,步骤(5)还包括:
[0042] 5)将等高线上的点,根据上一个和下一个邻接点再次进行多次迭代,计算当前点和原始点与左右邻接点的交点inter,计算当前点和左右点角度:
[0043] p=p+(inter‑p)*γ,γ=(当前角度‑原始角度)/(180‑原始角度);在迭代调整时如果当前点的角度已经大于原始点角度就不需要调整。
[0044] 迭代平滑进一步平滑网格,使3D文字更加光滑。
[0045] 优选的,步骤(6)中,内壁基础网格的生成具体方法为:内壁的网格采用同一个基础网格,对轮廓进行向内偏移,偏移的距离为壁厚,将偏移后的轮廓线与基础网格进行切
割,得到内壁的基础网格。使用同一个基础网格使内外壁尽可能的均匀,也节省了重新生成
基础网格的步骤。
[0046] 由于采用上述技术方案,本发明具有以下有益效果:
[0047] 轮廓三角网格BaseMesh以中心线为对称分布在文字轮廓内,OutMesh进一步细化BaseMesh,提高拉伸后3D模型的精度,以中心线为基准拉伸OutMesh后,对3D网格进行平滑,
得到外壁3D网格。以相同的BaseMesh作为内壁的基础网格,并重复步骤生成内壁3D网格,从
而完成薄壁等高字3D模型生成。只要倒入广告字的轮廓,就可以自动生成薄壁等高字3D模
型,该方法简单高效,无需人工设计字体,减少人工成本,且3D模型平滑。

附图说明

[0048] 下面根据附图对本发明作进一步说明。
[0049] 图1为本发明中外壁的BaseMesh的示意图;
[0050] 图2为本发明中BaseMesh中具有一个中心点和两个边界点的三角形的示意图;
[0051] 图3为本发明中BaseMesh中具有一个边界点和两个中心点的三角形的示意图;
[0052] 图4为本发明中OutMesh的示意图;
[0053] 图5为本发明中拉伸OutMesh后形成的3D文字的示意图;
[0054] 图6为本发明中3D文字平滑前的示意图;
[0055] 图7为本发明中3D文字平滑后的示意图;
[0056] 图8为本发明中内壁基础网格的示意图;
[0057] 图9为本发明中最终生成3D文字的示意图。

具体实施方式

[0058] 广告字3D模型生成方法,其特征在于,包括如下步骤:
[0059] (1)对文字轮廓进行Delaunay轮廓三角化。
[0060] (2)生成文字轮廓中心线。
[0061] (3)用中心线对轮廓进行网格剖分,得到对称的轮廓三角网格BaseMesh,BaseMesh为外壁基础网格,如图1所示。
[0062] (4)对基础网格进行细分,得到外壁网格OutMesh:
[0063] 如图2和图3所示,在生成基础网格时,顶点被分成边界点1和中心点2,对每个三角形的非边界边按照比例r1分成若干段,分成的段数根据网格边平均长度除以一个设定的长
度得到,然后依次连接点,得到新的网格作为外壁网格OutMesh,如图4所示。这种方法可以
较为均匀地精细切割文字轮廓,形成细化的Outmesh,从而提高3D模型的精度和光滑度。若
不平均分割非边界边,中间间距大于两头间距。拉伸后形成的3D模型两头可以更加光滑而
且顶点数可以更少。
[0064] (5)拉伸网格,生成3D网格:
[0065] p0为边界点1,p1为中心点2,计算分割点位置:
[0066] 如果拉伸成直线,新的顶点P(x,y,z):
[0067] x坐标:P(x)=p0(x)+[p1(x)‑p0(x)]*r1;
[0068] y坐标:P(y)=p0(y)+[p1(y)‑p0(y)]*r1;
[0069] z坐标:P(z)=h*r1;
[0070] 其中,r1为当前点的比例,h为设定高度。通过方程计算出新的顶点P的坐标并记载每个顶点坐标。
[0071] 如果拉伸成圆弧,新的顶点按椭圆计算,新的顶点P(x,y,z):
[0072] x坐标:
[0073] y坐标:
[0074] z坐标:P(z)=b*r1;
[0075] 其中,r1为当前点的比例,a为椭圆的边界点和中心点距离,b为椭圆的拉伸高度,记录每个新生成的点对应的边界点1,用于后期的平滑。拉伸后3D文字如图5所示。
[0076] (6)平滑网格:
[0077] 1)计算边界轮廓的上每个顶点的角度,当角度大于160度时,对应的新生成的点需要平滑处理;
[0078] 2)按z坐标值,搜索网格的等高线,得到一系列的等高线;
[0079] 3)对每一条等高线的点,搜索其左右邻接点,邻接的点的条件是对应的边界边上的原始边界点1不相同;
[0080] 4)得到其左右邻接点后,计算每个点到原始轮廓线的距离,然后根据其左右邻接点到原始轮廓线距离,沿着顶点边方向调整顶点位置:
[0081] p=p+(ori‑p)*λ*[len‑newLen]/len;
[0082] newLen=(left*w1+right*w2)/(w1+w2);
[0083] 其中p为当前点,ori为其原始点,len为当前点到轮廓的距离,left,right分别为左右点到轮廓的距离,λ为系数,w1为p和左边邻接点距离的倒数,w2为p和右边邻接点距离
的倒数;当p的左右邻接点有一个不需要调整时,直接将p点调整调整到p与左右邻接点的连
线上。
[0084] 5)将等高线上的点,根据上一个和下一个邻接点再次进行多次迭代,计算当前点和原始点与左右邻接点的交点inter,计算当前点和左右点角度:
[0085] p=p+(inter‑p)*γ,γ=(当前角度‑原始角度)/(180‑原始角度);在迭代调整时如果当前点的角度已经大于原始点角度就不需要调整。
[0086] 迭代平滑进一步平滑网格,使3D文字更加光滑。
[0087] 如图6所示,拉伸后有些曲面会向内凹,为了将这些内凹曲面向外平滑,根据该方程调整内凹曲面上顶点的位置,实现网格的平滑,迭代平滑进一步平滑网格,使3D文字没有
向内凹陷的曲面,平滑后的3D文字如图7所示。
[0088] (7)内壁基础网格的生成:
[0089] 如图8所示,内壁基础网格的生成具体方法为:内壁的网格采用同一个基础网格,对轮廓进行向内偏移,偏移的距离为壁厚,将偏移后的轮廓线与基础网格进行切割,得到内
壁的基础网格。使用同一个基础网格使内外壁尽可能的均匀,也节省了重新生成基础网格
的步骤。
[0090] (8)重复上述步骤(4)‑(6)生成内壁3D网格。
[0091] 轮廓三角网格BaseMesh以中心线为对称分布在文字轮廓内,OutMesh进一步细化BaseMesh,提高拉伸后3D模型的精度,以中心线为基准拉伸OutMesh后,对3D网格进行平滑,
得到外壁3D网格。以相同的BaseMesh作为内壁的基础网格,并重复步骤(4)‑(6)生成内壁3D
网格,从而完成广告字3D模型生成,最终得到的3D字体如图9所示。
[0092] 以上仅为本发明的具体实施例,但本发明的技术特征并不局限于此。任何以本发明为基础,为解决基本相同的技术问题,实现基本相同的技术效果,所作出地简单变化、等
同替换或者修饰等,皆涵盖于本发明的保护范围之中。