掌桥专利:专业的专利平台
掌桥专利
首页

一种三维模型的扩展方法

文献发布时间:2023-06-19 19:28:50



技术领域

本发明涉及虚拟现实领域,尤其涉及一种三维模型的扩展方法。

背景技术

近年来随着图形和计算机处理技术的飞速发展,虚拟现实技术的发展门槛和设备成本逐渐降低。Amer和Peralez使用低成本材料和智能手机成功制作出VR头戴式显示器(HMD)。头戴式显示器(HMD)向眼睛发送光学信号,可以实现虚拟现实(VR)、增强现实(AR)、混合现实(MR)等不同效果。HMD通过一组光学系统(主要是精密光学透镜)放大超微显示屏上的图像,将影像投射于视网膜上,进而呈现于观看者眼中大屏幕图像,形象点说就是拿放大镜看物体呈现出放大的虚拟物体图像。利用HMD实现的虚拟现实技术已经用于例如三维互动媒体的设备制造展览、家居设计、智能制造、新颖的博物馆或展览馆体验等。然而制造商通常需要多次与设计方讨论沟通,反复修改后才能决定设计或修改何种结构参数既适合加工应用端客户的需求,又可以获得具有艺术高度的美观效果。在协作过程中不同设计师、制造商采用的三维软件不同,导致生成的三维模型文件格式各异,特别是制造业如果采用工程分析软件,例如有限元仿真软件对三维模型计算结构刚度、强度分析、非线性和热场计算等内容时,技术性较强,目前与设计方的协作方式仅能通过截图、在线分享的方式向设计师反馈,无法使得设计师自由直观地查看分析模拟结果并针对性改进。因此如何使得三维模型文件具备可扩展性是本领域亟需解决的技术问题。

发明内容

为了实现上述目的,本申请实施例提供的技术方案如下:

一种三维模型的扩展方法,包括以下步骤:

坐标系判断步骤;获取三维模型,判断三维模型的坐标系为左手坐标系还是右手坐标系,如果是右手坐标系则进行坐标转换,如果是左手坐标系则进行下一步骤;

网格类型判断步骤;判断三维模型的网格是否为三角形,如果是则以顺时针方式对每个三角形网格的三个节点进行编号并进行下一步骤;如果否,则将网格分割成若干三角形网格,以顺时针方式对每个三角形网格的三个节点进行编号并进行下一步骤;

着色步骤;按照编号顺序针对前一步骤中的每个三角形网格中的每个节点配置初始颜色,并且把位置和纹理坐标参数等传递到片段着色器;片段着色器对三角形网格中的每一个像素进行计算,得出每个像素的最终颜色;

模型导入步骤;将上述扩展后的三维模型导入虚拟现实软件中,使得在虚拟现实软件中呈现该三维模型。

与现有技术相比,本发明具有如下有益效果:根据本申请的扩展方法,可以对三维模型文件的数据进行分析,并将其转换为可以由沉浸式虚拟现实软件使用的三维模型和颜色着色器文件。在沉浸式虚拟现实环境中读取并导入上述经过扩展后的三维模型后,即可通过沉浸式虚拟现实头盔(HMD)观看方式将其呈现给分析人员。在虚拟现实软件中呈现该三维模型,方便设计人员通过例如HMD自由查看模型的各个角度,而无需去掌握工程分析三维软件的操作方法,提高了三维模型的适应性和设计与生产的协作效率。

附图说明

图1为本发明的三维模型的扩展方法流程示意图;

图2为本发明的当单元为矩形网格时的分割方法示意图;

图3为本发明的三角形网格的正反面的编号方式示意图;

图4为本发明对三角形网格配置的两种着色器的示意图;

图5为本发明的着色器填充像素的方法示意图。

具体实施方式

下面结合附图和具体实施方式,对本发明的技术方案做详细描述。本领域技术人员应当理解,尽管本发明已经在以上结合特定实施例和示例进行了描述,在提及特定材料的程度上,其只是出于说明性的目的,而不旨在限制本发明。本领域技术人员可开发等效装置或成分,而无需付出创造性劳动且不背离本发明的范围。

如图1所示为本发明的三维模型的扩展方法流程示意图,包括以下步骤:

坐标系判断步骤。获取三维模型,判断三维模型的坐标系为左手坐标系还是右手坐标系,如果是右手坐标系则进行坐标转换,如果是左手坐标系则进行下一步骤。由于部分工程类专业分析软件通常采用右手坐标系,而虚拟现实技术中通常采用左手坐标系,当三维模型的坐标系与虚拟现实技术中的坐标系不一致时,需要通过坐标转换步骤将右手坐标系转换为左手坐标系。转换方法如下:

其中,x

网格类型判断步骤。判断三维模型的网格是否为三角形,如果是则以顺时针方式对每个三角形网格的三个节点进行编号并进行下一步骤;如果否,则将网格分割成若干三角形网格,以顺时针方式对每个三角形网格的三个节点进行编号并进行下一步骤。如图2所示的当单元为矩形网格时的分割方法,例如当三维模型的单元为矩形网格时,那么将矩形网格沿矩形网格的对角线将矩形网格分割成两个三角形网格。每个三角形网格的正面以顺时针方式对每个三角形网格的三个节点进行编号。在该步骤中,进一步还包括判断三维模型是否为封闭图形。如图3所示的三角形网格的正反面的编号方式,如果模型为非封闭图形则需要区分网格的正反面,即对于三角形网格的正面以顺时针方式进行编号,对于三角形网格的反面以逆时针方式编号。如此,最终的填充颜色不同,因此可以区分网格正反面。

着色步骤。按照编号顺序针对前一步骤中的每个三角形网格中的每个节点配置初始颜色,并且把位置和纹理坐标参数等传递到片段着色器。片段着色器对三角形网格中的每一个像素进行计算,得出每个像素的最终颜色。

采用OpenGL着色语言GLSL编写着色器,使得一个着色器并行运行于GPU上,提高任意图形任意颜色实时切换的速度和效率。其中,OpenGL ES(OpenGL for EmbeddedSystems)是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计,该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。

如图4对三角形网格配置的两种着色器所示,在OpenGL ES中创建两种着色器:顶点着色器和片段着色器。着色器是用着色语言写的基于C语言的程序。在OpenGL ES中需要创建两种着色器:顶点着色器(Vertex shader)和片段着色器(Fragment shader)。这两种着色器是一个完整程序的两部分,不能仅仅创建其中任何一个,想创建一个完整的着色程序,两个都必须存在。顶点着色器定义了在二维或者三维场景中几何图形是如何处理的,一个顶点指的是二维或者三维空间中的一个点。在本申请中,网格为三角形,因此有3个顶点:每一个顶点代表网格的一个角,顶点着色器设置顶点的位置,并且把位置和纹理坐标等参数发送到片段着色器。如图5的着色器填充像素的方法所示,使用片段着色器在网格的每一个像素上进行计算,得出每个像素的最终颜色,片段着色器在对像素进行计算时,通过RGB的某一通道,对实际图形进行拾取,最终计算出每个像素的最终颜色。

初始颜色的RGB值可以通过人为配置,也可以通过原始三维模型中的节点属性的数值大小配置。例如,节点属性还配置有温度值,则通过温度值高低为其配置不同的RBG值。

以下示意一段通过RGB的R通道,实现对一个网格的实际图形的拾取的具体代码如下:

void main()

{

precision mediump float;

vec4 color=texture2D(Sl iderTextureBg,vTexCoord);

vec4 maskcolor=texture2D(Sl iderMaskedTexture,vTexCoord);

color=color*(1.0-maskcolor.r)+FillColor*maskcolor.r;

gl_FragColor.rgba=color.rgba;

}

具体的,片段着色器提供被系统自动调用的主函数接口main;

设定纹理采样坐标vTexCoord;

设定顶点着色器中默认精度为precision mediump float;

设定背景纹理单元SliderTextureBg;

设定Mask纹理单元SliderMaskedTexture;

使背景图像上传到SliderTextureBg纹理单元;

使蒙版图像上传到SliderMaskedTexture纹理单元;

通过纹理采样坐标vTexCoord,对SliderTextureBg纹理单元和SliderMaskedTexture纹理单元分别采样,得到两个4维颜色向量color和maskcolor;

所述4维颜色向量color,取蒙版R一通道截取出网格形状;

所述4维颜色向量maskcolor,取R通道用于填充任意颜色FillColor;

网格中每个像素的最后的颜色是对蒙版形状和填充颜色的叠加混合,得到一个RGB像素输出显示。按照此方式填充网格中所有像素,并且进一步地,填充三维模型的所有网格。其中所有像素、顶点、纹理的位置、色调、饱和度、明度、对比度可以按照偏好或者节点的属性配置。本领域技术人员应当知晓,所述着色步骤还可以选择RGB中的R通道、G通道、B通道任一。

模型导入步骤。将上述扩展后的三维模型导入虚拟现实软件中,使得在虚拟现实软件中呈现该三维模型,方便设计人员通过例如HMD自由查看模型的各个角度,而无需去掌握工程分析三维软件的操作方法。

本发明所述的虚拟现实软件例如为Unity,但本领域技术人员应当知晓,本发明的方法也不限制与该特定虚拟现实软件。

以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种基于复合模型的用户扩展方法、装置及系统
  • 一种基于三维几何模型的单目无纹理三维物体姿态跟踪方法
  • 一种用于修正Aspen Plus中模型缺陷的模型扩展方法
  • 一种用于修正Aspen Plus中模型缺陷的模型扩展方法
技术分类

06120115928799