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

植被模型渲染方法、装置、设备及存储介质

文献发布时间:2023-06-19 09:32:16


植被模型渲染方法、装置、设备及存储介质

技术领域

本发明涉及模型渲染技术领域,具体而言,涉及一种植被模型渲染方法、装置、设备及存储介质。

背景技术

在游戏场景开发过程中,由于手机性能的限制,对于游戏场景中植被叶簇的渲染,一般都是将一小簇或一条枝干的枝叶,以一个面片的形式概括建模,靠若干个这样的面片分布在树干上,并贴上叶簇的贴图,作为游戏中树的叶簇。而在渲染环节,准确的定义植被叶簇面片组的法线方向,能够很大程度上的提升植被的渲染逼真度。

现有技术中,定义叶簇面片法线的实现方式,是利用建模软件(如 3dsmax或maya)的“顶点法线传递”功能来实现。

但是,采用上述方法计算出的叶簇面片组法线结果,会趋向于螺旋形,与植被叶簇真实的法线分布差异较大,从而导致渲染效果较差。

发明内容

本发明的目的在于,针对上述现有技术中的不足,提供一种植被模型渲染方法、装置、设备及存储介质,以便于解决现有技术中存在的植被模型渲染效果真实性较差的问题。

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

第一方面,本申请实施例提供了一种植被模型渲染方法,包括:

根据待渲染的植被模型的模型信息,构建所述植被模型的虚拟椭圆体;

采用预设的所述植被模型的树叶顶点着色器,根据所述虚拟椭圆体,将所述植被模型中的树叶模型的顶点法线更新为所述虚拟椭圆体上对应位置点的法线,得到更新后的植被模型;

对所述更新后的植被模型进行光照渲染,得到目标植被模型。

可选地,所述树叶顶点着色器中预设配置有椭圆体化法线的函数;

所述采用预设的所述植被模型的树叶顶点着色器,根据所述虚拟椭圆体,将所述植被模型中的树叶模型的顶点法线更新为所述虚拟椭圆体上对应位置点的法线,得到更新后的植被模型,包括:

采用所述椭圆体化法线的函数,对所述虚拟椭圆体和所述顶点法线进行椭圆体化的计算,得到所述顶点法线在所述虚拟椭圆体上对应位置点的法线;

将所述顶点法线更新为所述虚拟椭圆体上对应位置点的法线,得到所述更新后的植被模型。

可选地,所述方法还包括:

将更新后的顶点法线转换到世界空间中;

所述对所述更新后的植被模型进行光照渲染,得到目标植被模型,包括:

根据所述世界空间的光照信息,对所述更新后的植被模型进行光照渲染,得到所述目标植被模型。

可选地,所述树叶顶点着色器中还预设配置有世界向量变换矩阵;

所述将更新后的顶点法线转换到世界空间中,包括:

采用所述世界向量变换矩阵,将所述更新后的顶点法线转换到所述世界空间。

可选地,所述将更新后的顶点法线转换到世界空间中,包括:

将所述更新后的顶点法线,写入所述树叶模型的顶点世界法线信息中。

可选地,所述采用所述椭圆体化法线的函数,对所述虚拟椭圆体和所述顶点法线进行椭圆体化的计算,得到所述顶点法线在所述虚拟椭圆体上对应位置点的法线,包括:

计算所述树叶模型的顶点位置与所述虚拟椭圆体的中心之间的相对位置;

根据所述虚拟椭圆体的半径,和所述相对位置,计算所述顶点法线在所述虚拟椭圆体上对应位置点的法线。

可选地,所述根据待渲染的植被模型的模型信息,构建所述植被模型的虚拟椭圆体,包括:

以所述植被模型为中心,获取所述植被模型在多个方向的长度;

根据所述植被模型在所述多个方向的长度,分别确定所述多个方向上的椭圆体半径;

根据所述多个方向上的椭圆体半径,构建所述虚拟椭圆体。

第二方面,本申请实施例还提供了一种植被模型渲染装置,包括:构建模块、更新模块、渲染模块;

所述构建模块,用于根据待渲染的植被模型的模型信息,构建所述植被模型的虚拟椭圆体;

所述更新模块,用于采用预设的所述植被模型的树叶顶点着色器,根据所述虚拟椭圆体,将所述植被模型中的树叶模型的顶点法线更新为所述虚拟椭圆体上对应位置点的法线,得到更新后的植被模型;

所述渲染模块,用于对更新后的植被模型进行光照渲染,得到目标植被模型。

可选地,所述树叶顶点着色器中预设配置有椭圆体化法线的函数;

所述更新模块,具体用于采用所述椭圆体化法线的函数,对所述虚拟椭圆体和所述树叶模型的顶点法线进行椭圆体化的计算,得到所述顶点法线在所述虚拟椭圆体上对应位置点的法线;

将所述顶点法线更新为所述虚拟椭圆体上对应位置点的法线,得到所述更新后的植被模型。

可选地,所述装置还包括:转换模块;

所述转换模块,用于将更新后的顶点法线转换到世界空间中;

所述渲染模块,具体用于根据所述世界空间的光照信息,对所述更新后的植被模型进行光照渲染,得到所述目标植被模型。

可选地,所述树叶顶点着色器中还预设配置有世界向量变换矩阵;

所述转换模块,具体用于采用所述世界向量变换矩阵,将所述更新后的顶点法线转换到所述世界空间。

可选地,所述转换模块,具体用于将所述更新后的顶点法线,写入所述树叶模型的顶点世界法线信息中。

所述更新模块,具体用于计算所述树叶模型的顶点位置与所述虚拟椭圆体的中心之间的相对位置;根据所述虚拟椭圆体的半径,和所述相对位置,计算所述顶点法线在所述虚拟椭圆体上对应位置点的法线。

可选地,所述构建模块,具体用于以所述植被模型为中心,获取所述包植被模型在多个方向的长度;根据所述植被模型在所述多个方向的长度,分别确定所述多个方向上的椭圆体半径;根据所述多个方向上的椭圆体半径,构建所述虚拟椭圆体。

第三方面,本申请实施例提供了一种渲染设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当渲染设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如第一方面中提供的植被模型渲染方法的步骤。

第四方面,本申请实施例提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面提供的植被模型渲染方法的步骤。

本申请的有益效果是:

本申请提供一种植被模型渲染方法、装置、设备及存储介质,其中,该植被模型渲染方法包括:根据待渲染的植被模型的模型信息,构建植被模型的虚拟椭圆体;采用预设的植被模型的树叶顶点着色器,根据虚拟椭圆体,将植被模型中的树叶模型的顶点法线更新为虚拟椭圆体上对应位置点的法线,得到更新后的植被模型;对更新后的植被模型进行光照渲染,得到目标植被模型。本申请的方法基于待渲染的植被模型的信息,自动化的构建植被模型的虚拟椭圆体,可以有效降低人工构建所带来的时间成本的耗费,同时,使得构建的虚拟椭圆体的精度较高。另外,通过植被模型顶点进行虚拟椭圆体映射操作,可以使得得到的植被模型的树叶模型中各顶点法线的精确性较高,从而基于各顶点法线进行植被模型渲染,得到的目标植被模型效果真实性更高。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种植被模型渲染方法的流程示意图;

图2为本申请实施例提供的另一种植被模型渲染方法的流程示意图;

图3为本申请实施例提供的又一种植被模型渲染方法的流程示意图;

图4为本申请实施例提供的又一种植被模型渲染方法的流程示意图;

图5为本申请实施例提供的一种植被模型渲染装置的示意图;

图6为本申请实施例提供的另一种植被模型渲染装置的示意图;

图7为本申请实施例提供的一种渲染设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。

另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。

在对本申请所提供的植被模型渲染方法展开下详细说明之前,先对本申请方案所涉及的背景技术进行简单介绍。

在电影或动画渲染中,由于是预先渲染成视频格式的制作模式,所以对模型的多边形数量没有太严格的限制,因此植被模型的每个叶片都可以单独做成一个模型,且拥有各自的法线朝向,渲染效果就会很丰富,饱满。

然而在游戏场景的开发中,由于游戏客户端的设备性能对多边形顶点计算量的限制,植被的叶簇,很难做到将每一片树叶都以多边形的方式来建模并渲染。一般都是将一小簇或一条枝干的枝叶,以一个面片的形式概括建模,靠若干个这样的面片分布在树干上,并贴上叶簇的贴图,作为游戏中树的叶簇。但是,一个叶簇实际上也只是一个多边形面片,树叶的法线朝向实际是面片的法线,这样渲染出来的效果,能很明显的看到插片感。而在渲染环节,如果能将这些面片叶簇渲染成类似真实叶簇的饱满效果,就能很大程度上的提升植被的渲染逼真度。

上述提到的“真实叶簇的饱满效果”,可以通过计算较简单的兰伯特光照模型得到。在视觉上,大部分树木的叶簇集群,都可以近似成一个椭圆体,非常饱满,因此希望植被叶簇面片组的法线方向,可以被定义为一个大小近似的椭圆面法线,以提高植被叶簇面片组的法线方向的准确性,从而使得基于植被叶簇面片组的法线渲染得到的植被叶簇更加真实。

在本申请方案提出之前,现有技术中,定义叶簇面片法线的实现方式,是利用建模软件(如3dsmax或maya)的“顶点法线传递”功能来实现。该方法的具体实现步骤如下所示:

1.先建立一个和树差不多大小的包围球模型;2.将包围球套住树叶,并选择transfer attribute(属性传递)工具,将包围球的法线透射到树叶模型的顶点上,覆盖默认法线。

但是上述方法存在以下缺点:

1.针对每个植物模型,需要人工构建植物模型对应的包围球模型。

2.在一些情况下,计算出的叶簇面片组法线结果,并不趋向于椭圆体而是一个螺旋形(此功能在参考模型和传递对象顶点建立对应关系的时候可能会存在误差)。

本发明的核心点在于,基于植被模型,自动化构建植被模型对应的虚拟椭圆体,使用植被模型的树叶顶点着色器对叶簇面片的每个顶点进行虚拟的椭圆体映射操作,从而得到较为精确的叶簇面片的顶点法线方向,进一步地使得渲染得到的植被模型效果更加真实饱满。

如下将通过多个实施例对本申请所提供的植被模型渲染方法的实现步骤及产生的效果进行说明。

图1为本申请实施例提供的一种植被模型渲染方法的流程示意图;可选地,本申请的方法可在安装并运行有游戏编辑器的设备中执行,该设备可以是终端设备,或者计算机、服务器等。如图1所示,该方法可包括:

S101、根据待渲染的植被模型的模型信息,构建植被模型的虚拟椭圆体。

需要说明的是,本实施例中,植被模型的模型信息可以指植被模型的包围盒信息,包围盒是指能够包容该植被模型的立方体或者二维长方形,又或者其它形状的包围盒,只要可包围该植被模型即可。可能的实现示例中,植被模型的包围体例如可以为:球体、轴对齐包围盒(AABB)、有向包围盒(OBB)或者,凸包(Convex Hull)。

本实施例中待渲染植被模型的模型信息,也即包围植被模型的包围盒信息,可以理解为包围植被模型的最小外接多边形。

可选地,可以从待渲染植被模型的模型资源中读取植被模型的模型信息,从而可以根据模型信息确定植被模型的虚拟椭圆体的参数,从而构建该植被模型的虚拟椭圆体。

S102、采用预设的植被模型的树叶顶点着色器,根据虚拟椭圆体,将植被模型中的树叶模型的顶点法线更新为虚拟椭圆体上对应位置点的法线,得到更新后的植被模型。

可选地,基于构建的植被模型的虚拟椭圆体,可以计算树叶模型的各顶点在虚拟椭圆体上对应点的法线。其中,植被模型与虚拟椭圆体可以是相互重合的,可以通过树叶模型的各顶点的坐标信息,确定各顶点在虚拟椭圆体上所对应位置点的坐标信息,从而可通过计算虚拟椭圆体上与各顶点所对应位置点的法线,并将计算得到的虚拟椭圆体上对应位置点的法线赋值给植被模型中树叶模型的各对应顶点,从而得到更新后的顶点法线,其中,更新后的顶点法线也即为椭圆化后的法线,法线的准确性较高,而基于更新后的顶点法线,可得到更新后的植被模型。

需要说明的是,本申请方案主要应用于对植被模型中树叶模型的渲染,使得渲染得到较为饱满真实的树叶效果。故上述在进行法线更新时,可以是将树叶模型的顶点法线更新为虚拟椭圆体上对应位置点的法线。当然,也可以不限于对树叶模型的顶点法线进行映射,对于树干、树根等部分,也具有法线,也可以采用本申请的法线更新方法得到整个植被模型的顶点法线。

可选地,通过将树叶模型的顶点法线更新为虚拟椭圆体上对应位置点的法线,可以使得更新后得到的树叶模型中各顶点的法线方向趋向于椭圆体,各顶点的法线方向更趋近真实的法线方向。

S103、对更新后的植被模型进行光照渲染,得到目标植被模型。

在一些实施例中,基于更新后的植被模型的树叶模型中各顶点具有与虚拟椭圆体上对应位置点相同的法线,可以进一步地基于更新后的树叶模型进行光照渲染计算,得到渲染后的目标植被模型,从而使得得到的目标植被模型中树叶具有类似椭圆体的光影分布结果。

综上,本实施例提供的植被模型渲染方法包括:根据待渲染的植被模型的模型信息,构建植被模型的虚拟椭圆体;采用预设的植被模型的树叶顶点着色器,根据虚拟椭圆体,将植被模型中的树叶模型的顶点法线更新为虚拟椭圆体上对应位置点的法线,得到更新后的植被模型;对更新后的植被模型进行光照渲染,得到目标植被模型。本申请的方法基于待渲染的植被模型的信息,自动化的构建植被模型的虚拟椭圆体,可以有效降低人工构建所带来的时间成本的耗费,同时,使得构建的虚拟椭圆体的精度较高。另外,通过植被模型中树叶模型顶点进行虚拟椭圆体映射操作,可以使得得到的植被模型的树叶模型中各顶点法线的精确性较高,从而基于各顶点法线进行植被模型渲染,得到的目标植被模型效果真实性更高。

可选地,树叶顶点着色器中预设配置有椭圆体化法线的函数;上述步骤S102中,采用预设的植被模型的树叶顶点着色器,根据虚拟椭圆体,将植被模型中的树叶模型的顶点法线更新为虚拟椭圆体上对应位置点的法线,得到更新后的植被模型,可以包括:

采用椭圆体化法线的函数,对虚拟椭圆体和树叶模型的顶点法线进行椭圆体化的计算,得到顶点法线在虚拟椭圆体上对应位置点的法线;将顶点法线更新为虚拟椭圆体上对应位置点的法线,得到更新后的植被模型。

可选地,可以在预设的树叶顶点着色器的头文件中,声明使用椭圆体法线计算的宏,在声明宏后,在树叶顶点着色器中,则可执行椭圆体化法线函数。

可选地,可根据椭圆体化法线函数,在树叶顶点着色器中计算出树叶模型的顶点法线在虚拟椭圆体上对应位置点的法线,从而将虚拟椭圆体上对应位置点的法线赋值给(传递给)树叶模型的顶点,得到更新后的顶点法线。

可以将上述的椭圆体化法线计算理解为:在树叶顶点着色器中,采用椭圆体化法线函数,计算树叶模型中各顶点在的虚拟椭圆体上对应点的法线,也即计算的是虚拟椭圆体的法线,之后将虚拟椭圆体的法线赋值于树叶模型中各顶点,从而得到更新后的顶点法线,对应的得到更新后的植被模型。

图2为本申请实施例提供的另一种植被模型渲染方法的流程示意图,可选地,如图2所示,本申请的方法还可包括:

S201、将更新后的顶点法线转换到世界空间中。

可选地,在光照着色器执行光照计算函数时,需要根据世界空间的光源向量和世界空间的法线进行计算,而上述更新后的顶点法线为模型空间的法线。本实施例中,可以将更新后的顶点法线转换到世界空间中,得到各顶点的世界空间法线。

上述步骤S103中,对更新后的植被模型进行光照渲染,得到目标植被模型,可以包括:

S202、根据世界空间的光照信息,对更新后的植被模型进行光照渲染,得到目标植被模型。

可选地,世界空间的光照信息也即上述的世界空间的光源向量。

通常,世界空间的光源向量指的是游戏场景中,引擎传递给光照着色器的:渲染像素世界位置坐标和光源世界位置坐标,并在光照着色器中相减得到的向量。

可选地,光照渲染计算即是通过光源向量得出光在物体表面分布的估算,并根据物体的表面材质信息(上述计算的各顶点的法线),通过拟合函数,得出渲染结果。

可选地,可根据更新后的植被模型、以及世界空间的光源向量,计算兰伯特光照模型,从而快速的拟合出物体表面的漫反射光分布结果。也即,将树叶模型中各顶点转化到世界空间的法线与世界空间的光源向量进行点积运算,得到目标植被模型。其中,兰伯特光照模型也即光照的明暗关系模型,可以使得目标植被模型具有分明的光照分布,从而使得渲染得到的植被叶簇比较饱满,很大程度上提高了植被的渲染逼真度。

可选地,上述步骤S102中,树叶顶点着色器中还预设配置有世界向量变换矩阵。步骤S201中,将更新后的顶点法线转换到世界空间中,可包括:采用世界向量变换矩阵,将更新后的顶点法线转换到世界空间。

可选地,本实施例中对上述模型空间顶点法线与世界空间顶点法线的转化进行说明。

在一些实施例中,可在树叶顶点着色器中预先配置世界向量变换矩阵。在通过顶点法线椭圆体化计算,得到更新后的顶点法线后,可利用树叶顶点着色器中内置的世界向量变换矩阵,与得到的更新后的各顶点法线进行运算,以得到世界空间的各顶点法线。

其中,世界向量变换矩阵可以是通过模型空间和世界空间的映射关系得到的矩阵向量,对于不同的待渲染模型,其着色器中配置的世界向量变换矩阵可以是不同的,具体根据待渲染模型可适应性灵活配置。

可选地,上述步骤中,将更新后的顶点法线转换到世界空间中,可以包括:将更新后的顶点法线,写入树叶模型的顶点世界法线信息中。

本实施例中,可通过计算得到的顶点法线在虚拟椭圆体上对应位置点的法线,代替树叶模型本身的顶点自带的法线,得到更新后的顶点法线,并通过向量转换,将更新后的顶点法线转换至世界空间的法线,并将转换得到的世界空间的法线写入树叶模型的顶点世界法线中,从而进一步地传入光照函数,以进行光照渲染。

在一些实施例中,本方案在转换得到世界空间的顶点法线后,还可将各顶点法线,采用RGB红绿蓝三基色进行表示,以得到待渲染植被模型的法线视图。通过法线视图可以法线,采用本申请方法得到的植被模型的树叶模型的顶点法线趋于椭圆化,而不会出现螺旋形法线分布,从而有效避免了渲染结果出现插片感,导致渲染效果较差。

图3为本申请实施例提供的又一种植被模型渲染方法的流程示意图,可选地,如图3所示,上述步骤S101中,根据待渲染的植被模型的模型信息,构建植被模型的虚拟椭圆体,可以包括:

S301、以植被模型为中心,获取植被模型在多个方向的长度。

需要说明的是,本申请方案中,在进行植被模型虚拟椭圆体的构建时,是根据获取的待渲染植被模型的模型信息自动化进行构建,一方面可以使得构建的虚拟椭圆体精确度更高,另一方面,相比于现有技术中,人工手动构建包围球,通过自动化的构建方式,可以有效节省人工劳动力,提高构建效率。

可选地,如上述中所说明的,待渲染植被模型的模型信息也即指植被模型的包围盒信息,植被模型在多个方向的长度可以指植被模型的包围盒在多个方向的长度,包围盒在多个方向的长度可以指包围盒的水平方向、竖直方向等的长度。在本实施例中,可以分别获取包围盒的长度、宽度、高度数据,其可以是引擎从待渲染植被模型资源中读取到,并用脚本传递给着色器。

S302、根据植被模型在多个方向的长度,分别确定多个方向上的椭圆体半径。

可选地,以待渲染植被模型为中心,建立一个内包围的虚拟椭圆体,就需要知道这个虚拟椭圆体在xyz轴上分别对应的三个半径值,而这三个半径值,可以根据待渲染植被模型的包围盒的长度、宽度、高度数据计算得到。

该虚拟椭圆体在x轴上的半径可以为待渲染植被模型的包围盒的长度的一半,同样的,虚拟椭圆体在y轴上的半径可以为待渲染植被模型的包围盒的宽度的一半,虚拟椭圆体在z轴上的半径可以为待渲染植被模型的包围盒的高度的一半。

关于虚拟椭圆体半径的计算,相关代码的执行内容如下:

float ellipsoid_radius_x=objectsize.x/2.0;

float ellipsoid_radius_y=objectsize.y/2.0;

float ellipsoid_radius_z=objectsize.z/2.0;

其中,ellipsoid_radius_x为虚拟椭圆体在x轴上的半径,ellipsoid_ radius_y为虚拟椭圆体在y轴上的半径,ellipsoid_radius_z为虚拟椭圆体在z轴上的半径,objectsize.x为上述获取的包围盒的长度数据,objectsize.y 为包围盒的宽度数据,objectsize.z为包围盒的高度数据。

通过上述方法,可得到虚拟椭圆体在xyz轴上分别对应的半径值。

S303、根据多个方向上的椭圆体半径,构建虚拟椭圆体。

可选地,基于得到的虚拟椭圆体在xyz轴上分别对应的半径值,采用预设的模型构建工具,可以构建得到待渲染植被模型的虚拟椭圆体。

可选地,基于上述方法确定的虚拟椭圆体的半径值所构建的虚拟椭圆体,其形状与待渲染植被模型更加贴合,从而使得通过法线椭圆体化映射得到的树叶模型中各顶点的法线更加精确。

对于不同的待渲染模型,均可以采用本申请的方法,构建所需的虚拟椭圆体。

图4为本申请实施例提供的又一种植被模型渲染方法的流程示意图,可选地,如图4所示,上述步骤中,采用椭圆体化法线的函数,对虚拟椭圆体和顶点法线进行椭圆体化的计算,得到顶点法线在虚拟椭圆体上对应位置点的法线,可以包括:

S401、计算树叶模型的顶点位置与虚拟椭圆体的中心之间的相对位置。

本实施例中,在对顶点法线进行椭圆体化计算之前,可以先对树叶模型中各顶点坐标进行处理,使得待渲染的植被模型中的树叶模型即叶簇面片,与所构建的虚拟椭圆体能够重合,也即构建的虚拟椭圆体可以包裹树叶模型,虚拟椭圆体表面各顶点的坐标可以和植被树叶的各顶点坐标位于同一坐标系中。

在上述将树叶模型与虚拟椭圆体重合的情况下,可以进一步地对植被树叶模型顶点法线进行椭圆体化计算,得到顶点法线在虚拟椭圆体上对应位置点的法线。

可选地,由于植被模型在标准建模规范中,其中心轴点应该都在植被的低端,且位于模型空间的原点。而构建的植被模型的虚拟椭圆体的中心轴点则位于虚拟椭圆体的中心位置,那么,可通过将模型顶点的坐标沿y 轴负方向移动虚拟椭圆体高度的一半,使得植被模型中相对树木底部的顶点坐标信息变成相对虚拟椭圆体中心点的坐标信息。这样虚拟椭圆体不仅包裹住了树木,虚拟椭圆体表面的坐标也和植被树叶的顶点坐标位于同一个坐标系中了。

由上述实施例中可确定虚拟椭圆体的高度与植被模型包围盒高度一致,那么,可通过将植被树叶模型顶点的坐标沿y轴负方向移动包围盒高度的一半,以将植被树叶的顶点坐标与虚拟椭圆体的坐标位于同一坐标系。其中,植被模型中各顶点的坐标信息可以从顶点着色器的输入成员中读取。在构建待渲染植被模型时,可对应获取模型中各顶点信息。

可选地,对于树叶模型的顶点位置与虚拟椭圆体的中心之间的相对位置的计算,相关代码执行内容如下:

float p_x=objectspace_pos.x;

float p_y=objectspace_pos.y-ellipsoid_radius_y;

float p_z=objectspace_pos.z;

其中,p_x为树叶模型的顶点与虚拟椭圆体的中心之间的相对位置的x 坐标,p_y为树叶模型的顶点与虚拟椭圆体的中心之间的相对位置的y坐标, p_z为树叶模型的顶点与虚拟椭圆体的中心之间的相对位置的z坐标, objectspace_pos.x为树叶模型中顶点的x坐标,objectspace_pos.y为树叶模型中顶点的y坐标,objectspace_pos.z为树叶模型中顶点的z坐标, ellipsoid_radius_y虚拟椭圆体在y轴上的半径,其等于包围盒高度的一半。

计算得到的树叶模型的顶点位置与虚拟椭圆体的中心之间的相对位置中,树叶模型的顶点x坐标和z坐标保持不变,y坐标相应减去虚拟椭圆体在y轴上的半径值,从而使得植被树叶模型顶点的坐标沿y轴负方向移动包围盒高度的一半。

S402、根据虚拟椭圆体的半径,和相对位置,计算顶点法线在虚拟椭圆体上对应位置点的法线。

基于上述对植被模型顶点坐标进行处理后,可得到各顶点相对虚拟椭圆体的坐标了。

在一些实施例中,可基于得到的各顶点相对虚拟椭圆体的坐标、以及虚椭圆体的半径,计算各顶点的法线。

需要说明的是,本实施例中,对于顶点法线的计算,是通过计算椭圆面上任意点法线的计算方式计算得到,由于虚拟椭圆体上的各位置点与树叶模型中顶点相互对应,故计算得到的椭圆面上任意点的法线也即作为树叶模型中对应顶点的法线。

下面对椭圆面上任意点的法线的计算方法进行简单说明,推导过程大致如下:

对于任意三维空间下的曲面方程,假设为:F(x,y,z)=c;

曲面上任意点(x

该点的法线为:

即F在(x

现利用上式对虚拟椭圆体上各位置点的法线进行求解,假定有一中心在(x

代入曲线法线公式可得:

代入(x

由此可得到椭圆面上任意点(x

关于树叶模型中顶点法线椭圆体化的计算,相关的代码执行内容如下:

float ellipsoid_normal=float3((p_x*2)/(ellipsoid_radius_x*ellpsoid_radius _x),

(P_y*2)/(ellpsoid_radius_x*ellipsoid_radius_y),

(p_z*2)/(ellipsoid_radius_x*ellpsoid_radius_z));

关于代码中每个函数的相关解释,已在上述其他代码中进行了说明,可参照理解。

可选地,在计算得到虚拟椭圆体的椭圆上任意点的法线后,可通过虚拟椭圆体上各位置点与树叶模型中各顶点的对应关系,将虚拟椭圆体上各位置点的法线传递给树叶模型中各顶点,得到更新后的树叶模型的顶点法线。

通过自动更新虚拟椭圆面的法线代替植被模型中叶片的原始默认法线,对植被模型的渲染结果有较大的提升。

综上,本实施例提供的植被模型渲染方法包括:根据待渲染的植被模型的模型信息,构建植被模型的虚拟椭圆体;采用预设的植被模型的树叶顶点着色器,根据虚拟椭圆体,将植被模型中的树叶模型的顶点法线更新为虚拟椭圆体上对应位置点的法线,得到更新后的植被模型;对更新后的植被模型进行光照渲染,得到目标植被模型。本申请的方法基于待渲染的植被模型的信息,自动化的构建植被模型的虚拟椭圆体,可以有效降低人工构建所带来的时间成本的耗费,同时,使得构建的虚拟椭圆体的精度较高。另外,通过植被模型顶点进行虚拟椭圆体映射操作,可以使得得到的植被模型中树叶模型的各顶点法线的精确性较高,从而基于各顶点法线进行植被模型渲染,得到的目标植被模型效果真实性更高。

下述对用以执行本申请所提供的植被模型渲染方法的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。

图5为本申请实施例提供的一种植被模型渲染装置的示意图,该植被模型渲染装置实现的功能对应上述方法执行的步骤。该装置可以理解为上述的渲染设备,该渲染设备可以为服务器,或者服务器的处理器,也可以理解为独立于上述服务器或处理器之外的在服务器控制下实现本申请功能的组件,可选地,如图5所示,该装置可以包括:构建模块501、更新模块 502、渲染模块503;

构建模块501,用于根据待渲染的植被模型的模型信息,构建植被模型的虚拟椭圆体;

更新模块502,用于采用预设的植被模型的树叶顶点着色器,根据虚拟椭圆体,将植被模型中的树叶模型的顶点法线更新为虚拟椭圆体上对应位置点的法线,得到更新后的植被模型;

渲染模块503,用于对更新后的植被模型进行光照渲染,得到目标植被模型。

可选地,树叶顶点着色器中预设配置有椭圆体化法线的函数;

更新模块502,具体用于采用椭圆体化法线的函数,对虚拟椭圆体和树叶模型的顶点法线进行椭圆体化的计算,得到顶点法线在虚拟椭圆体上对应位置点的法线;将顶点法线更新为虚拟椭圆体上对应位置点的法线,得到更新后的植被模型。

图6为本申请实施例提供的另一种植被模型渲染装置的示意图,可选地,如图6所示,该装置还可包括:转换模块504;

转换模块504,用于将更新后的顶点法线转换到世界空间中;

渲染模块503,具体用于根据世界空间的光照信息,对更新后的植被模型进行光照渲染,得到目标植被模型。

可选地,树叶顶点着色器中还预设配置有世界向量变换矩阵;

转换模块504,具体用于采用世界向量变换矩阵,将更新后的顶点法线转换到世界空间。

可选地,转换模块504,具体用于将更新后的顶点法线,写入树叶模型的顶点世界法线信息中。

更新模块502,具体用于计算树叶模型的顶点位置与虚拟椭圆体的中心之间的相对位置;根据虚拟椭圆体的半径,和相对位置,计算顶点法线在虚拟椭圆体上对应位置点的法线。

可选地,构建模块501,具体用于以植被模型为中心,获取植被模型在多个方向的长度;根据植被模型在多个方向的长度,分别确定多个方向上的椭圆体半径;根据多个方向上的椭圆体半径,构建虚拟椭圆体。

上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。

以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称 FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。

需要说明的是,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(System-on-a-chip,简称SOC)的形式实现。

图7为本申请实施例提供的一种渲染设备的结构示意图,该渲染设备可以是具备数据处理功能的计算设备。

可选地,如图7所示,该设备可包括:处理器701、存储器702。

存储器702用于存储程序,处理器701调用存储器702存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。

可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文: Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

相关技术
  • 目标植被模型的渲染显示方法、装置、设备及存储介质
  • 植被渲染方法、装置、电子设备及可读存储介质
技术分类

06120112204984