模型的渲染方法、装置、存储介质及计算机设备与流程

文档序号:26012541发布日期:2021-07-23 21:33阅读:88来源:国知局
模型的渲染方法、装置、存储介质及计算机设备与流程

本发明涉及计算机技术,尤其涉及一种模型的渲染方法、装置、存储介质及计算机设备。



背景技术:

目前产品的展示方法主要通过二维图册来展示,但随着技术的进步和用户要求的日益增高,传统基于二维图册的产品展示方式已不能满足用户要求。为此,业内出现了部分通过三维展示来展示产品的方案,这些方案在进行三维展示通过特定的算法将产品的三维模型通过电脑端或手机端予以展示,使得客户可以对产品模型进行旋转、平移、放大、缩小等操作。另外,这些方案还可以对产品模型进行一些编辑,例如:替换色卡材质、替换产品、查看产品结构等。

目前产品的渲染普遍存在灵活性差,相近的效果可能需要用户通过更换贴图或者材质的方式才能实现,而且渲染效果不够真实,不能够真实地反应渲染物体的物理性质和光照效果。



技术实现要素:

本发明实施例提供一种模型的渲染方法、装置、存储介质及计算机设备,有效解决了目前渲染效果不够真实,不能够真实地反应渲染物体的物理性质和光照效果的问题。

根据本发明的一方面,本发明提供一种模型的渲染,所述方法包括步骤:获取构件数据,其中所述构件数据包括构件的几何信息和构件的材质信息,其中所述材质信息为通过物理渲染得到;根据所述构件数据生成构件模型;以及基于平台引擎将所述构件模型所对应的数据编译成可运行于目标平台的应用程序,其中所述目标平台包括windows操作系统、android操作系统及linux操作系统中的至少一种。

进一步地,所述平台引擎为unity引擎。

进一步地,所述材质信息包括反照率、金属度、光滑度及法线贴图中的至少一种;其中所述反照率用于表征所述构件的表面的颜色色彩图,所述金属度用于表征所述构件的金属度的单通道灰度图,所述光滑度用于表征所述构件表面的光滑度的单通道灰度图,所述光滑度用于表征所述构件表面的凹凸感的色彩图。

进一步地,根据所述反照率、金属度、光滑度及法线贴图生成反射率公式为:

其中p表示所述构件上的某个点,ω是立体角,ωo表示观察方向,ωi表示光线入射方向,kd表示漫反射系数,c表示反照率,ks表示镜面反射系数,d表示正态分布函数,f表示菲涅尔方程,g表示几何函数,n表示当前点的法线方向,li表示当前点的辐射率,l0表示所有点的辐射率;

正态分布函数d的公式为:

其中α表示粗超度,h表示中间向量,n表示当前点的法线方向;

几何函数g的公式为:

其中v表示视角方向,k表示与光照有关的系数,n表示当前点的法线方向;

菲涅尔方程f的公式为:

f(h,v,f0)=f0+1-f0)(1-(h·v))5

其中f0表示平面的基础反射率,v表示视角方向,h表示中间向量。

进一步地,在解析每一所述构件中包含的所有元素,并生成元素所对应的解析结果的步骤中,包括:当所述元素为线段时,获取所述线段的起点坐标与终点坐标;以及根据起点坐标与终点坐标确定解析后所述线段的位置。

进一步地,通过网络端或者本地方式读取所述构件数据。

进一步地,在获取构件数据的步骤之前,包括:获取不同类型的构件;以及根据不同类型的所述构件生成相应的所述材质信息。

进一步地,在获取构件数据的步骤之前,还包括:将所述材质信息与不同类型的所述构件关联生成所述构件数据。

根据本发明的另一方面,本发明提供一种模型的渲染装置,所述装置包括:数据获取单元,获取构件数据,其中所述构件数据包括构件的几何信息和构件的材质信息;数据生成单元,根据所述构件数据生成构件模型;以及数据编译单元,用于基于平台引擎将所述构件模型所对应的数据编译成可运行于目标平台的应用程序。

根据本发明的又一方面,本发明提供一种存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行如本发明任一实施例所提供的模型的渲染方法。

根据本发明的又一方面,本发明实施例提供一种移动终端,包括处理器和存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据,所述处理器用于执行如本发明任一实施例所提供的模型的渲染方法中的步骤。

本发明的优点在于,本发明通过根据不同类型的构件生成相应的材质信息;将所述材质信息与不同类型的所述构件关联生成构件数据,使得构件与材质信息相关联。所述材质信息基于物理的渲染得到,使构件的渲染效果更加真实。另外获取构件数据时,不仅可以通过本地方式读取,而且还可以通过网络方式读取,从而提高了用户的工作效率。

附图说明

下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。

图1为本发明实施例一提供的一种模型的渲染方法的步骤流程图。

图2为本发明实施例二提供的一种模型的渲染方法的步骤流程图。

图3为本发明实施例三提供的一种模型的渲染装置的步骤流程图。

图4为本发明一个实施例提供的计算机设备的内部结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。在本实施例中,所述模拟显示屏触摸单元与所述头部追踪单元连接,用于获取所述显示设备中的感应光标的移动路径。

如图1所示,为本发明实施例一提供的模型的渲染方法的步骤流程图。该方法包括步骤:

步骤s110:获取cad数据。

其中所述构件数据包括构件的几何信息和构件的材质信息,其中所述材质信息为通过物理渲染得到。本实施例中,通过物理渲染(physically-basedrendering,简称pbr)方法对构件进行材质制作,并得到构件的反照率、金属度、光滑度及法线贴图,即材质信息。其中所述反照率用于表征所述构件的表面的颜色色彩图,所述金属度用于表征所述构件的金属度的单通道灰度图,所述光滑度用于表征所述构件表面的光滑度的单通道灰度图,所述光滑度用于表征所述构件表面的凹凸感的色彩图。

根据所述反照率、金属度、光滑度及法线贴图生成反射率公式为:

其中p表示所述构件上的某个点,ω是立体角,ωo表示观察方向,ωi表示光线入射方向,kd表示漫反射系数,c表示反照率,ks表示镜面反射系数,d表示正态分布函数,f表示菲涅尔方程,g表示几何函数,n表示当前点的法线方向,li表示当前点的辐射率,l0表示所有点的辐射率;

正态分布函数d的公式为:

其中α表示粗超度,h表示中间向量,n表示当前点的法线方向;

几何函数g的公式为:

其中v表示视角方向,k表示与光照有关的系数,n表示当前点的法线方向;

菲涅尔方程f的公式为:

f(h,v,f0)=f0+1-f0)(1-(h·v))5

其中f0表示平面的基础反射率,v表示视角方向,h表示中间向量。

步骤s120:根据所述构件数据生成构件模型。

具体地,利用加载的构件数据绘制构件。每一构件数据除包含几何信息以外,还包含构件对应的材质信息。其中几何信息一般是指构件的尺寸。几何信息用以绘制构件的形状,材质信息用以决定构件的表现效果。当读取到构件的材质信息时,通过上述的反照率、金属度、光滑度、法线贴图等属性为构件生成一个材质,并将该材质赋给构件,构件将表现出对应的效果。

反照率指定构件表面的颜色,并通过贴图来表示,同时预留一个颜色值,用于在不改变反照贴图的情况下改变材质的颜色。金属度指定构件是否有金属质地,通过一个大于0小于1的数来表示,值越大,则构件越接近金属。光滑度指定构件表面有多光滑,也是通过一个大于0小于1的数来表示,值越大,则构件越光滑。换而言之,一个比较粗糙的表面会得到更宽阔更模糊的镜面反射(高光),而一个比较光滑的表面则会得到集中而清晰的镜面反射。法线贴图则是为表面制造出起伏不平的假象,并通过贴图来表示。

由上述内容可知,本实施例将构件的材质信息和物理渲染方法相结合,进而计算出构件的渲染效果并展示,在渲染时通过物理渲染加入了反照率、金属度、光滑度、法线贴图等构件的实际特征,考虑了构件的色卡、材质的真实性,渲染的效果更加真实,从而提升了客户的体验。

步骤s130:基于平台引擎将所述构件模型所对应的数据编译成可运行于目标平台的应用程序。

所述平台引擎为unity引擎(具体为基于vulkan平台的unity引擎),所述目标平台包括windows操作系统、android操作系统及linux操作系统中的至少一种。

本发明通过根据不同类型的构件生成相应的材质信息;将所述材质信息与不同类型的所述构件关联生成构件数据,使得构件与材质信息相关联。所述材质信息基于物理的渲染得到,使构件的渲染效果更加真实。另外获取构件数据时,不仅可以通过本地方式读取,而且还可以通过网络方式读取,从而提高了用户的工作效率。另外,通过unity引擎将所述构件模型所对应的数据编译成可运行于windows操作系统、android操作系统及linux操作系统中的应用程序,使得绘制出的渲染出的构件模型可以应用于多个系统中的应用程序。

如图2所示,为本发明实施例二提供的模型的渲染方法的步骤流程图。该方法包括步骤:

步骤s210:获取不同类型的构件。

在本实施例中,例如可以获取建筑信息模型(buildinginformationmodeling,简称bim)中常用的构件种类。

步骤s220:根据不同类型的所述构件生成相应的所述材质信息。

为每一构件种类设置对应的材质信息。其中材质信息包括材质参数和渲染参数。例如,可以参照现实世界中的一些物理现象和一些物理参数设置材质参数和渲染参数,以实现真实的渲染效果。对于现实世界的物质可以大概分为三大类:绝缘体、半导体、导体,但半导体在建筑建材里面不常见,故目前只考虑绝缘体(dielectricmaterials,电介质材质,如玻璃、塑料等)和导体(metallicmaterials,金属材质,如铁,金等)这两类材质。两者的主要区别是:金属材质往往比电介质材质更加具有反射性。因为金属的密集性,光照在表面的时候几乎是进入不到金属的里面就被反射了,所以金属通常具有很大的反射率。而光是可以进入到电介质的表面,再被散射出来,所以其反射率通常会比较小。

步骤s230:将所述材质信息与不同类型的所述构件关联生成所述构件数据。

通过上述步骤使得构件与材质信息相关联。

步骤s240:获取cad数据。

其中所述构件数据包括构件的几何信息和构件的材质信息,其中所述材质信息为通过物理渲染得到。本实施例中,通过物理渲染(physically-basedrendering,简称pbr)方法对构件进行材质制作,并得到构件的反照率、金属度、光滑度及法线贴图,即材质信息。其中所述反照率用于表征所述构件的表面的颜色色彩图,所述金属度用于表征所述构件的金属度的单通道灰度图,所述光滑度用于表征所述构件表面的光滑度的单通道灰度图,所述光滑度用于表征所述构件表面的凹凸感的色彩图。

根据所述反照率、金属度、光滑度及法线贴图生成反射率公式为:

其中p表示所述构件上的某个点,ω是立体角,ωo表示观察方向,ωi表示光线入射方向,kd表示漫反射系数,c表示反照率,ks表示镜面反射系数,d表示正态分布函数,f表示菲涅尔方程,g表示几何函数,n表示当前点的法线方向,li表示当前点的辐射率,l0表示所有点的辐射率;

正态分布函数d的公式为:

其中α表示粗超度,h表示中间向量,n表示当前点的法线方向;

几何函数g的公式为:

其中v表示视角方向,k表示与光照有关的系数,n表示当前点的法线方向;

菲涅尔方程f的公式为:

f(h,v,f0)=f0+1-f0)(1-(h·v))5

其中f0表示平面的基础反射率,v表示视角方向,h表示中间向量。

步骤s250:根据所述构件数据生成构件模型。

具体地,利用加载的构件数据绘制构件。每一构件数据除包含几何信息以外,还包含构件对应的材质信息。其中几何信息一般是指构件的尺寸。几何信息用以绘制构件的形状,材质信息用以决定构件的表现效果。当读取到构件的材质信息时,通过上述的反照率、金属度、光滑度、法线贴图等属性为构件生成一个材质,并将该材质赋给构件,构件将表现出对应的效果。

反照率指定构件表面的颜色,并通过贴图来表示,同时预留一个颜色值,用于在不改变反照贴图的情况下改变材质的颜色。金属度指定构件是否有金属质地,通过一个大于0小于1的数来表示,值越大,则构件越接近金属。光滑度指定构件表面有多光滑,也是通过一个大于0小于1的数来表示,值越大,则构件越光滑。换而言之,一个比较粗糙的表面会得到更宽阔更模糊的镜面反射(高光),而一个比较光滑的表面则会得到集中而清晰的镜面反射。法线贴图则是为表面制造出起伏不平的假象,并通过贴图来表示。

由上述内容可知,本实施例将构件的材质信息和物理渲染方法相结合,进而计算出构件的渲染效果并展示,在渲染时通过物理渲染加入了反照率、金属度、光滑度、法线贴图等构件的实际特征,考虑了构件的色卡、材质的真实性,渲染的效果更加真实,从而提升了客户的体验。

步骤s260:基于平台引擎将所述构件模型所对应的数据编译成可运行于目标平台的应用程序。

所述平台引擎为unity引擎,所述目标平台包括windows操作系统、android操作系统及linux操作系统中的至少一种。

本发明通过根据不同类型的构件生成相应的材质信息;将所述材质信息与不同类型的所述构件关联生成构件数据,使得构件与材质信息相关联。所述材质信息基于物理的渲染得到,使构件的渲染效果更加真实。另外获取构件数据时,不仅可以通过本地方式读取,而且还可以通过网络方式读取,从而提高了用户的工作效率。另外,通过unity引擎将所述构件模型所对应的数据编译成可运行于windows操作系统、android操作系统及linux操作系统中的应用程序,使得绘制出的渲染出的构件模型可以应用于多个系统中的应用程序。

如图3所示,为本发明实施例三提供的模型的渲染装置的结构示意图。装置包括:数据获取单元10、数据生成单元20及数据编译单元30。

数据获取单元10用于获取构件数据。其中所述构件数据包括构件的几何信息和构件的材质信息,其中所述材质信息为通过物理渲染得到。本实施例中,通过物理渲染(physically-basedrendering,简称pbr)方法对构件进行材质制作,并得到构件的反照率、金属度、光滑度及法线贴图,即材质信息。其中所述反照率用于表征所述构件的表面的颜色色彩图,所述金属度用于表征所述构件的金属度的单通道灰度图,所述光滑度用于表征所述构件表面的光滑度的单通道灰度图,所述光滑度用于表征所述构件表面的凹凸感的色彩图。

根据所述反照率、金属度、光滑度及法线贴图生成反射率公式为:

其中p表示所述构件上的某个点,ω是立体角,ωo表示观察方向,ωi表示光线入射方向,kd表示漫反射系数,c表示反照率,ks表示镜面反射系数,d表示正态分布函数,f表示菲涅尔方程,g表示几何函数,n表示当前点的法线方向,li表示当前点的辐射率,l0表示所有点的辐射率;

正态分布函数d的公式为:

其中α表示粗超度,h表示中间向量,n表示当前点的法线方向;

几何函数g的公式为:

其中v表示视角方向,k表示与光照有关的系数,n表示当前点的法线方向;

菲涅尔方程f的公式为:

f(h,v,f0)=f0+1-f0)(1-(h·v))5

其中f0表示平面的基础反射率,v表示视角方向,h表示中间向量。

数据生成单元20用于根据所述构件数据生成构件模型。具体地,利用加载的构件数据绘制构件。每一构件数据除包含几何信息以外,还包含构件对应的材质信息。其中几何信息一般是指构件的尺寸。几何信息用以绘制构件的形状,材质信息用以决定构件的表现效果。当读取到构件的材质信息时,通过上述的反照率、金属度、光滑度、法线贴图等属性为构件生成一个材质,并将该材质赋给构件,构件将表现出对应的效果。

反照率指定构件表面的颜色,并通过贴图来表示,同时预留一个颜色值,用于在不改变反照贴图的情况下改变材质的颜色。金属度指定构件是否有金属质地,通过一个大于0小于1的数来表示,值越大,则构件越接近金属。光滑度指定构件表面有多光滑,也是通过一个大于0小于1的数来表示,值越大,则构件越光滑。换而言之,一个比较粗糙的表面会得到更宽阔更模糊的镜面反射(高光),而一个比较光滑的表面则会得到集中而清晰的镜面反射。法线贴图则是为表面制造出起伏不平的假象,并通过贴图来表示。

由上述内容可知,本实施例将构件的材质信息和物理渲染方法结合起来,进而计算出构件的渲染效果并展示,在渲染时通过物理渲染加入了反照率、金属度、光滑度、法线贴图等构件的实际特征,考虑了构件的色卡材质的真实性,渲染的效果更加真实,从而提升了客户的体验。

数据编译单元30用于基于平台引擎将所述构件模型所对应的数据编译成可运行于目标平台的应用程序。所述平台引擎为unity引擎,所述目标平台包括windows操作系统、android操作系统及linux操作系统中的至少一种。

本发明通过根据不同类型的构件生成相应的材质信息;将所述材质信息与不同类型的所述构件关联生成构件数据,使得构件与材质信息相关联。所述材质信息基于物理的渲染得到,使构件的渲染效果更加真实。另外获取构件数据时,不仅可以通过本地方式读取,还可以通过网络方式读取,从而提高了用户的工作效率。另外,通过unity引擎将所述构件模型所对应的数据编译成可运行于windows操作系统、android操作系统及linux操作系统中的应用程序,使得绘制出的渲染出的构件模型可以应用于多个系统中的应用程序。

在实施例四中,提供了一种计算机设备400,其内部结构图可以如图4所示。该计算机设备400包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备400的处理器用于提供计算和控制能力。该计算机设备400的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的计算机设备通过网络连接通信。该计算机程序被处理器执行时以实现一种模型的渲染方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备400,其包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

获取构件数据,其中所述构件数据包括构件的几何信息和构件的材质信息,其中所述材质信息为通过物理渲染得到;

根据所述构件数据生成构件模型;以及

基于平台引擎将所述构件模型所对应的数据编译成可运行于目标平台的应用程序。

在另一个实施例中,提供了一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取构件数据,其中所述构件数据包括构件的几何信息和构件的材质信息,其中所述材质信息为通过物理渲染得到;

根据所述构件数据生成构件模型;以及

基于平台引擎将所述构件模型所对应的数据编译成可运行于目标平台的应用程序。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1