一种基于三维引擎统一物体模型法线的方法、装置及设备与流程



1.本发明涉及一种基于三维引擎统一物体模型法线的方法、装置及设备,属于图像处理技术领域。


背景技术:



2.随着工业互联网的快速发展,三维引擎越来越广泛的应用于计算机辅助设计与制造、cg 制作、航空航天、地质勘探等众多领域,成为了不可或缺的载体。三维引擎通过创建模型将现实中的鲜活事物以三维的立体形象呈现,因此对模型处理的准确性提出了更高的要求。
3.很多三维模型创建的时候法线有反有正,导致建模的时候挤出厚度的方向不对、影响材质的贴图渲染。为了有效生成正确的三维模型,目前将物体模型部件进行法线统一的方法是将三维模型中的每个模型的错误面单独选择出来进行逐一手动反转,这样导致效率低下且浪费人力物力。
4.鉴于以上,行业中亟需一种简易且高效的解决单个模型法线错误问题的方法。


技术实现要素:



5.为了解决上述问题,本发明提出了一种基于三维引擎统一物体模型法线的方法、装置及设备,能够快速实现单个模型面的法线统一。
6.本发明解决其技术问题采取的技术方案是:第一方面,本发明提供一种基于三维引擎统一物体模型法线的方法,包括以下步骤:s1、将单个物体模型导入到三维引擎中,保留物体模型所有面的空间位置信息;s2、求出物体模型所有面的法线,让所有面沿其法线方向位移,选择出反法线的面,对择出反法线的面进行统一反转得到反转后的面;s3、将物体模型正确的面和反转后的面合并,得到法线统一的物体模型。
7.作为一种可能的实现方式,所述s2具体包括:s21、利用facet函数将物体模型的面单独分离,再求出物体模型每个面的法线n;s22、将整个物体模型打组,利用volume函数创建一个梯度值,使物体模型表面数值为0;物体模型以外梯度为大于0的递增值,物体模型以内梯度为小于0的递减值;s23、让每个面的位置p,沿其法线方向进行位移,位移量为l1;s24、法线为反的面向内位移并打进小于0的组里,法线为正的面向外位移并打进大于0的组里;s25、选择小于0的组,利用reverse函数对反法线的面进行法线反转。
8.作为一种可能的实现方式,所述s3具体包括:s31、将每个面的当前位置减去位移量l1,使其回到原来的位置;s32、将所有的面进行合并,得到了法线统一的物体模型。
9.基于上述方法,本发明还提供了一种基于三维引擎统一物体模型法线的装置,包括:模型导入模块,用于将单个物体模型导入到三维引擎中,保留物体模型所有面的空间位置信息;面反转模块,用于求出物体模型所有面的法线,让所有面沿其法线方向位移,选择出反法线的面,对择出反法线的面进行统一反转得到反转后的面;法线统一模块,用于将物体模型正确的面和反转后的面合并,得到法线统一的物体模型。
10.第二方面,本发明提供一种基于三维引擎统一物体模型法线的方法,包括以下步骤:s10、将单个物体模型导入到三维引擎中,保留物体模型所有面的空间位置信息;s20、求出物体模型所有面的法线,并将法线传递到该法线所在面的中心点上,确定反法线的面并对反法线进行反转;s30、将反转后的法线再传递到反法线的面上,得到法线统一的正确模型。
11.作为一种可能的实现方式,所述s20具体包括:s201、利用facet函数将物体模型的面单独分离,再求出物体模型每个面的法线n;s202、将每个面都pack成一个中心点,将每个面的法线传递到其中心点上;s203、利用volume函数创建一个梯度值,使物体模型表面数值为0;物体模型以外梯度为大于0的递增值,物体模型以内梯度为小于0的递减值;s204、让每个面的中心点沿其法线方向进行位移,位移量为l2;s205、如果中心点位移的距离值为负数则反转法线,否则保留原法线不变。
12.作为一种可能的实现方式,所述s30具体包括:s301、将中心点的当前位置减去中心点的位移量l2,使其回到原来的位置;s302、把得到的中心点的法线重新传递到每个面上,得到法线统一的正确模型。
13.基于方法,本发明还提供了一种基于三维引擎统一物体模型法线的装置,包括:数模型导入模块,用于将单个物体模型导入到三维引擎中,保留物体模型所有面的空间位置信息;法线反转模块,用于确定所述物体模型所有面的法线,并将法线传递到该法线所在面的中心点上,确定反法线的面并对反法线进行反转;法线统一模块,用于将反转后的法线再传递到反法线的面上,得到法线统一的正确模型。
14.第三方面,本发明提供一种计算机设备,包括处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如上所述的基于三维引擎统一物体模型法线的方法步骤。
15.第四方面,本发明提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上所述的基于三维引擎统一物体模型法线的方法步骤。
16.本发明的有益效果如下:本发明通过三维引擎空间法线方向和模型的位置信息去判断是否满足条件,将逻
辑思维转化成算法,针对三维引擎中单个三维模型的法线错误的所有面进行统一一键反转,有效快速实现了单个模型所有面的法线统一,解决了现有三维模型因法线错误需要手动筛选出每个面进行反转的麻烦,节省了大量的人力物力。
附图说明
17.图1是实施例一的一种基于三维引擎统一物体模型法线的方法的流程图;图2是实施例一的一种基于三维引擎统一物体模型法线的装置的结构示意图;图3是现有技术中法线不统一的错误模型示意图;图4是物体模型示意图;图5是物体模型每个面的法线示意图;图6是物体模型每个面的法线分离示意图;图7是整个物体模型打组示意图;图8是整个物体模型的梯度值示意图;图9是物体模型每个面的位置在其法线方向上进行位移示意图;图10是选择出法线错误的全部面的示意图;图11是法线统一的物体模型示意图;图12是实施例二的基于三维引擎统一物体模型法线的方法的流程图;图13是实施例二的一种基于三维引擎统一物体模型法线的装置的结构示意图;图14是实施例二的一种每个面法线传递到中心点的示意图;图15是实施例二的一种反转后的中心点法线示意图;图16是实施例二的另一种法线统一的物体模型示意图;图17是一种计算机设备的结构图。
具体实施方式
18.下面结合附图与实施例对本发明做进一步说明:为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
19.实施例一图3出示了一种法线不统一的错误模型,其法线有反有正,导致建模的时候挤出厚度的方向不对、影响材质的贴图渲染。为此,本实施例提出一种基于三维引擎统一物体模型法线的方法,对该物体模型的法线进行统一反转,如图1所示,具体过程如下:步骤s1,导入单个物体模型到三维引擎中,保留其所有面的空间位置信息。
20.步骤s2、求出单个物体模型所有面的法线,让所有面沿其法线方向位移,选择出反法线的面,对择出反法线的面进行统一反转得到反转后的面;具体地,所述步骤s2包括以下步骤:
s21、利用facet函数将物体模型的面单独分离,如图4所示,再求出物体模型每个面的法线n,如图5和图6所示,正确面的法线朝外,错误面的法线朝内(为了便于观察法线朝向,本实施例将正确的面和错误的面手动选择出来对技术方案进行说明);s22、将整个物体模型打组,如图7所示,利用volume函数创建一个梯度值,使模型表面数值为0,模型以外梯度为大于0的递增值,模型以内梯度为小于0的递减值,如图8所示;s23、让每个面的位置p,沿其法线方向进行位移,位移量为l1,如图9所示,法线正确的面向外位移,法线错误的面向内位移;s24、法线为反的面向内位移被打进小于0的组里,法线为正的面向外位移打进大于0的组里;s25、如图10所示,选择小于0的组,即选择出了法线错误的全部面,利用reverse函数进行法线反转,反转错误法线,使其回到原位置。
21.步骤s3、将正确的面和反转后的面合并,得到法线统一的正确模型;如图11所示,所述步骤s3的包括以下步骤:s31、将每个面的当前位置减去位移量l1,使其回到原来的位置。
22.s32、将所有的面进行合并,得到了法线统一的物体模型。
23.上述实施例涉及的一种基于三维引擎统一物体模型法线的装置,如图2所示,包括:模型导入模块,用于将单个物体模型导入到三维引擎中,保留物体模型所有面的空间位置信息;面反转模块,用于求出物体模型所有面的法线,让所有面沿其法线方向位移,选择出反法线的面,对择出反法线的面进行统一反转得到反转后的面;法线统一模块,用于将物体模型正确的面和反转后的面合并,得到法线统一的物体模型。
24.实施例二如图12所示,本实施例提供一种基于三维引擎统一物体模型法线的方法,包括以下步骤:s10,导入单个物体模型到三维引擎中,保留其所有面的空间位置信息。
25.s20、求出物体模型所有面的法线,并将法线传递到所在面的中心点上,确定反法线的面并对反法线进行反转,具体包括以下步骤:s201、利用facet函数将物体模型的面单独分离,如图4所示,再求出物体模型每个面的法线n,如图5和图6所示,正确面的法线朝外,错误面的法线朝内(为了便于观察法线朝向,本实施例将正确的面和错误的面手动选择出来对技术方案进行说明);s202、将每个面都pack成一个中心点,将每个面的法线传递到其中心点上,如图14所示,图中白为正法线,黑为反法线;s203、利用volume函数创建一个梯度值,使物体模型表面数值为0,物体模型以外梯度为大于0的递增值,物体模型以内梯度为小于0的递减值;s204、让每个面的中心点沿其法线方向进行进行位移,位移量为l2;s205、判断,如果中心点位移的距离值为负数则反转法线,反转后的中心点法线如
图15所示,距离值为正数则保留原法线不变。
26.步骤30、将反转后的中心点的法线再传递到反法线的面上,得到法线统一的正确模型;具体包括以下步骤:s301、将中心点的当前位置减去中心点的位移量l2,使其回到原来的位置;s302、把得到的中心点的法线重新传递到每个面上,得到法线统一的正确物体模型,如图16所示。
27.基于以上方法,如图13所示,本实施例还提供了一种基于三维引擎统一物体模型法线的装置,包括:数模型导入模块,用于将单个物体模型导入到三维引擎中,保留物体模型所有面的空间位置信息;法线反转模块,用于确定所述物体模型所有面的法线,并将法线传递到该法线所在面的中心点上,确定反法线的面并对反法线进行反转;法线统一模块,用于将反转后的法线再传递到反法线的面上,得到法线统一的正确模型。
28.实施例三本实施例涉及一种计算机设备,其结构如图17所示,本实施例的一种计算机设备,包括处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如上述任意基于三维引擎统一物体模型法线的方法步骤。
29.具体地,上述存储器和处理器能够为通用的存储器和处理器,这里不做具体限定,当处理器运行存储器存储的计算机程序时,能够执行上述基于三维引擎统一物体模型法线的方法。
30.本领域技术人员可以理解,图17中示出的计算机设备的结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
31.在一些实施例中,该计算机设备还可以包括触摸屏可用于显示图形用户界面(例如,应用程序的启动界面)和接收用户针对图形用户界面的操作(例如,针对应用程序的启动操作)。具体的触摸屏可包括显示面板和触控面板。其中显示面板可以采用lcd(liquid crystal display,液晶显示器)、oled(organic light-emitting diode,有机发光二极管)等形式来配置。触控面板可收集用户在其上或附近的接触或者非接触操作,并生成预先设定的操作指令,例如,用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作。另外,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位、姿势,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成处理器能够处理的信息,再送给处理器,并能接收处理器发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板,也可以采用未来发展的任何技术实现触控面板。进一步的,触控面板可覆盖显示面板,用户可以根据显示面板显示的图形用户界面,在显示面板上覆盖的触控面板上或者附近进行操作,触控面板检测到在其上或附近的操作后,传送给处理器以确定用户输入,随后处理器响应于用户输入在显示面板上提供相应的
视觉输出。另外,触控面板与显示面板可以作为两个独立的部件来实现也可以集成而来实现。
32.对应于上述应用程序的启动方法,本发明实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述任意基于三维引擎统一物体模型法线的方法步骤。
33.本技术实施例所提供的应用程序的启动装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本技术实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
34.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
35.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
36.作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
37.另外,在本技术提供的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
38.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
39.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
40.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
41.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

技术特征:


1.一种基于三维引擎统一物体模型法线的方法,其特征在于,包括以下步骤:s1、将单个物体模型导入到三维引擎中,保留物体模型所有面的空间位置信息;s2、求出物体模型所有面的法线,让所有面沿其法线方向位移,选择出反法线的面,对择出反法线的面进行统一反转得到反转后的面;s3、将物体模型正确的面和反转后的面合并,得到法线统一的物体模型。2.根据权利要求1所述的一种基于三维引擎统一物体模型法线的方法,其特征在于,所述s2具体包括:s21、利用facet函数将物体模型的面单独分离,再求出物体模型每个面的法线n;s22、将整个物体模型打组,利用volume函数创建一个梯度值,使物体模型表面数值为0;物体模型以外梯度为大于0的递增值,物体模型以内梯度为小于0的递减值;s23、让每个面的位置p,沿其法线方向进行位移,位移量为l1;s24、法线为反的面向内位移并打进小于0的组里,法线为正的面向外位移并打进大于0的组里;s25、选择小于0的组,利用reverse函数对反法线的面进行法线反转。3.根据权利要求2所述的一种基于三维引擎统一物体模型法线的方法,其特征在于,所述s3具体包括:s31、将每个面的当前位置减去位移量l1,使其回到原来的位置;s32、将所有的面进行合并,得到了法线统一的物体模型。4.一种基于三维引擎统一物体模型法线的方法,其特征在于,包括以下步骤:s10、将单个物体模型导入到三维引擎中,保留物体模型所有面的空间位置信息;s20、求出物体模型所有面的法线,并将法线传递到该法线所在面的中心点上,确定反法线的面并对反法线进行反转;s30、将反转后的法线再传递到反法线的面上,得到法线统一的正确模型。5.根据权利要求4所述的一种基于三维引擎统一物体模型法线的方法,其特征在于,所述s20具体包括:s201、利用facet函数将物体模型的面单独分离,再求出物体模型每个面的法线n;s202、将每个面都pack成一个中心点,将每个面的法线传递到其中心点上;s203、利用volume函数创建一个梯度值,使物体模型表面数值为0;物体模型以外梯度为大于0的递增值,物体模型以内梯度为小于0的递减值;s204、让每个面的中心点沿其法线方向进行位移,位移量为l2;s205、如果中心点位移的距离值为负数则反转法线,否则保留原法线不变。6.根据权利要求5所述的一种基于三维引擎统一物体模型法线的方法,其特征在于,所述s30具体包括:s301、将中心点的当前位置减去中心点的位移量l2,使其回到原来的位置;s302、把得到的中心点的法线重新传递到每个面上,得到法线统一的正确模型。7.一种基于三维引擎统一物体模型法线的装置,其特征在于,包括:模型导入模块,用于将单个物体模型导入到三维引擎中,保留物体模型所有面的空间位置信息;面反转模块,用于求出物体模型所有面的法线,让所有面沿其法线方向位移,选择出反
法线的面,对择出反法线的面进行统一反转得到反转后的面;法线统一模块,用于将物体模型正确的面和反转后的面合并,得到法线统一的物体模型。8.一种基于三维引擎统一物体模型法线的装置,其特征在于,包括:数模型导入模块,用于将单个物体模型导入到三维引擎中,保留物体模型所有面的空间位置信息;法线反转模块,用于确定所述物体模型所有面的法线,并将法线传递到该法线所在面的中心点上,确定反法线的面并对反法线进行反转;法线统一模块,用于将反转后的法线再传递到反法线的面上,得到法线统一的正确模型。9.一种计算机设备,其特征在于,包括处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如权利要求1-6任一所述的基于三维引擎统一物体模型法线的方法步骤。

技术总结


本发明公开了一种基于三维引擎统一物体模型法线的方法、装置及设备,属于图像处理技术领域,方法包括以下步骤:将单个物体模型导入到三维引擎中,保留物体模型所有面的空间位置信息;求出物体模型所有面的法线,让所有面在其法线方向上进行位移,选择出反法线的面,对择出反法线的面进行统一反转得到反转后的面;将每个物体模型正确的面和反转后的面合并,得到各自法线统一的物体模型。本发明能够快速有效地实现三维场景中单个模型的法线统一。不仅实现速度快,而且方法完善且准确无误。而且方法完善且准确无误。而且方法完善且准确无误。


技术研发人员:

王涛 赵洋洋 尉鲁闽 谢锋 尚武

受保护的技术使用者:

山东捷瑞数字科技股份有限公司

技术研发日:

2023.02.13

技术公布日:

2023/3/10

本文发布于:2024-09-25 17:15:23,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/71037.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:法线   模型   物体   位移
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议