[发明专利]一种三维模型的表面法线一致性修复方法及体积计算方法有效
申请号: | 202110197366.2 | 申请日: | 2021-02-22 |
公开(公告)号: | CN112927369B | 公开(公告)日: | 2023-04-18 |
发明(设计)人: | 董凤翔;李俊松;叶明珠;贾国兵;张雪才;张耀;曹力;杨欢;彭礼勇;陈卫国 | 申请(专利权)人: | 中铁二院工程集团有限责任公司 |
主分类号: | G06T17/20 | 分类号: | G06T17/20 |
代理公司: | 四川力久律师事务所 51221 | 代理人: | 王波 |
地址: | 610031 *** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 三维 模型 表面 法线 一致性 修复 方法 体积 计算方法 | ||
本发明公开了本发明阐述了一种三维模型表面法线快速修复方法,基于此表面法线朝向正确的模型,在三维可视化时,可以启用“背面剔除”以提高渲染效率,以进一步提高三维渲染引擎模型承载量。在计算体积时,可基于三棱锥体积计算方式快速而准确的得到结果,具有极高的应用推广价值。
技术领域
本发明涉及三维模型数据处理技术领域,特别是一种三维模型的表面法线一致性修复方法及体积计算方法。
背景技术
三维网格模型中几何数据是一个三角形集合,其中三角形法线是基于三角形顶点顺序以“右手定理”计算而来,如三角形顶点顺序为:(V0,V1,V2),则其法线Normal=(V1-V0).cross(V2-V1),若点顺序为:(V1,V0,V2),则Normal/=-Normal。三维网格模型表面法线不一致,是指构成该模型的所有三角形中,有些三角形法线朝向模型内侧,有些三角形法线朝向模型外侧(由三角形顶点顺序导致),特别是BIM实体模型离散化为网格模型时,有很大几率会BIM实体模型离散化为表面法线不一致的网格模型。表面法线不一致的网格模型在进行可视化渲染时是不能设置“背面剔除”以增加渲染效率。同时,表面法线不一致的BIM轻量化模型在计算其体积时是不能得到正确的结果。
目前针对模型法线不一致的问题解决方式是以三角形上任意点为原点,三角形法线为方向构建射线与模型中除该三角形外的所有三角形求交,依据交点个数的奇偶性判断该三角形法线是朝向模型内侧还是外侧(点-射线法),基于此方式解决三维网格模型法线不一致问题效率极其低下。
发明内容
本发明的发明目的在于:针对现有技术存在的渲染效率低的问题,提供一种三维模型的表面法线一致性修复方法及体积计算方法。
为了实现上述目的,本发明采用的技术方案为:
一种三维模型的表面法线一致性修复方法,包括:
S1:根据三维网格模型,构建模型的点-边-三角形拓扑结构;
S2:在点-边-三角形拓扑结构中,任取一个三角形,基于所述三角形的法线修正所述三角形三个边对应的三个邻接三角形的法线,然后再以所述三个邻接三角形为基础继续拓扑遍历,最终得到的法线统一朝向模型内侧或模型外侧;
S3:对任一三角形的法线,通过点-射线法判断法线朝向,若法线朝向模型外侧,则所有三角形法线方向不变;若法线朝向模型内侧,则修复相邻所有三角形法线方向为相反方向。
优选的,所述步骤S1包括:
所述点-边-三角形拓扑结构包括模型的顶点数据、三角形数据和边数据。
优选的,所述步骤S2包括:
假定所述三角形中顶点顺序为V0-V1-V2,所述三角形中顶点为V0和V1的边,对应的邻接三角形顶点为V0、V1和V3,则令该邻接三角形的正确顶点顺序为V0-V3-V1;
根据右手定理,所述三角形法线为:Normal=(V1-V0).cross(V2-V1);
那么,该邻接三角形法线为:Normal1=(V3-V0).cross(V0-V3)。
优选的,所述步骤S3中,点-射线法具体包括:
在三角形上任取一点和三角形法线方向构成一个射线,用射线和模型中其他三角形求交,若交点个数为偶数个,则此三角形法线方向是朝向模型外侧;若交点个数为奇数个,则此三角形法线方向是朝向模型内侧。
一种三维模型的体积计算方法,采用了如以上任一项所述的表面法线一致性修复方法,还包括:
S4:基于点-边-三角形拓扑结构判断该模型是否为几何封闭的三维模型;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中铁二院工程集团有限责任公司,未经中铁二院工程集团有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110197366.2/2.html,转载请声明来源钻瓜专利网。