一种自动生成场景植被系统的方法与流程

文档序号:15461579发布日期:2018-09-18 18:17阅读:230来源:国知局

本发明涉及游戏引擎开发技术领域,特别涉及一种自动生成场景植被系统的方法。



背景技术:

在3D引擎项目中,花草是一个场景的基本元素。传统的种植花草方法,通过鼠标在有地面显示的地方点击或拖拽种植,当场景尺寸过大数量过多,多种地理气候时,生产效率极低。传统种植方法的密度控制,多种花草混合种植,边缘稀疏处理,等这些问题都需要美术相当多的工作量。传统种植方法种植的花草,一旦种植就记录存档,如需修改必须先删除再次种植。

大多游戏为了节省资源,提高游戏渲染效率,使用公告板技术渲染花草。公告板渲染出的花草,表现效果虚假。

在传统的地形制作的过程中,美工按照规划的需求制作地形材质贴图,花草材质贴图,场景模型及贴图。场景编辑人员制作地形高度数据,刷制地形材质数据,种植地形花草数据,摆放地形物件对象五个步骤。



技术实现要素:

为了解决现有技术存在的不足,本发明的目的在于提供一种自动生成场景植被系统的方法。

为实现上述目的,本发明提供的一种自动生成场景植被系统的方法,其特征在于,包括以下步骤:

1)编辑地表材质的花草属性;

2)保存生成花草配置表;

3)加载花草配置表;

4)遍历地形最小单元,根据地形材质的权重、绘制植被的密度图、植被组信息的密度值调用花草创建接口并根据花草创建接口返回结果判断是否能在所述地形最小单元创建植被。

进一步地,所述花草属性包含全局属性、组属性和花草模型资源的材质属性;所述全局属性包含显示范围、阴影淡出起点、阴影淡出范围;所述组属性包含花草模型资源、密度值、LOD切换属性、随机角度缩放开关、贴地开关、坡度系数。

进一步地,步骤1)所述编辑地表材质的花草属性,包括增加和设置植被属性,创建组,并设置组属性。

进一步地,所述花草创建接口接收当前遍历单元的属性值,对材质的权重值进行卡值判断,如果材质的权重值小于0.4F,则判断所述地形最小单元不能种植植被;如果材质的权重值大于或等于0.4F,则计算种植概率并对种植概率进行判断。

进一步地,所述种植概率=Random(1.0F)+植被的权重值(植被的密度值)+密度图密度值,其中,密度图密度值的值域为[-1.0F, 1.0F]。

进一步地,如果种植概率小于1,则返回失败,判断所述地形最小单元不能种植植被;如果种植概率大于或等于1,则计算所述地形最小单元的倾斜程度并对其进行判断。

进一步地,所述地形最小单元的倾斜程度=1.0F - (地形法线向量 dot 竖直向上向量)。

进一步地,如果所述地形最小单元的倾斜程度大于花草的坡度系数,则返回失败,判断所述地形最小单元不能种植植被;如果所述地形最小单元的倾斜程度小于或等于花草的坡度系数,则返回成功。

进一步地,如果调用植被种植接口返回成功,则种植位置为(Random(0.5F)+nx,ny,Random(0.5F)+nz),其中地形最小单元的坐标为(nx,ny,nz)。

本发明提供一种解决传统的花草种植效率低下,公告板渲染效果较差,整体效果难以调整,不支持二次编辑等技术问题的方法。本发明的关键点在于绘制地形与种植花草的相结合,然后再使用合理的优化算法,既提高生产效率又提高渲染效果。

另外,本发明中批量种植的花草,支持几何实例化绘制,进一步的提升了渲染效率。

本发明具有以下有益效果:

(1)提高种植效率

在制作地形的过程中,预先配置(或后续修改)好材质匹配的花草模型(一种或多种),设置好密度、大小等参数。接着在刷制地形材质时自动就种植了花草,切换刷地形材质时,也会自动切换种植花草的类型。种植花草与刷制地形材质同步进行,省去了花草制作的工序。

(2)丰富场景整体效果

根据地形材质灵活配置花草种类、数量、密度,在刷制地形的过程中,当前地形材质的混合强度也会作为花草密度的控制因子。因此,地形多材质的混合、边界淡出过渡等密度的变化,都能影响花草的分布,较传统的手动控制种植密度分布更加合理。

(3)方便修改

本方法支持任何时候修改地形的花草的配置参数,包括增删、更换、稀疏处理、大小处理等。而且支持地形的更改,比如地形需要高低起伏修改,花草完全可以自动适配,传统种植的花草,需要手动删除,重新制作,大面积更改非常困难。

(4)支持真实的花草模型

自动种植花草,花草即为场景普通的模型文件。此处的模型文件可以是花、草、树、石头、贝壳、农作物等场景物件,美术可以任意制作,不受限制,花草的表现效果,取决于美术的设计及制作。

本发明是对刷制地形材质数据和种植地形花草数据进行的优化操作和提升生产效果的一种方法。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:

图1为根据本发明的一种自动生成场景植被系统的方法的流程图;

图2为根据本发明的实施方式的花草创建接口的流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1为根据本发明的一种自动生成场景植被系统的方法的流程图,图2为根据本发明的实施方式的花草创建接口的流程图。下面将参考图1和图2,对本发明的自动生成场景植被系统的方法进行详细描述。

首先,在步骤101,编辑地表材质的花草属性。花草属性包含全局属性(例如,显示范围、阴影淡出起点、阴影淡出范围等)、组属性(例如,花草模型资源、密度值、LOD切换属性、随机角度缩放开关、贴地开关、坡度系数等)、花草模型资源的材质属性,其中一种地表材质对应多组花草。

在该步骤中,需要先编辑地表材质,如贴图,Ambient,Diffuse,Specular等。在此基础上,可以增加和设置一些花草属性,其中流程为:创建组,然后设置组属性,如上所述,组属性包括模型、密度、大小等。可以为每组材质增加多组花草,在刷制地形材质时多组花草会同时按照自己的属性种植。

在步骤102,保存生成花草配置表。当配置好地形材质的花草属性时,就建立好了地形材质与花草播种参数的关联信息,许多的这些关联信息,存储在一个映射表中,构成了我们花草种植系统的控制信息。当场景保持时,该信息表就存储成配置文件。

在步骤103,加载花草配置表。当加载场景时,会执行加载该配置表,载入至内存中,作为创建花草的控制信息。

自动生成的花草布局效果大多情况已经满足生成需求。但是如果仍对分布效果有更高的要求,希望局部的调整或更改,本发明的技术方案对此提供支持。本技术方案提供一种手动刷制密度的技术,直接控制花草的密度分布。所谓手动刷制密度,就像刷制地形材质一样的操作,设置密度值,刷制操作,调整密度值,继续刷制,直到满足需求。在后台我们会将该刷制操作生成一种花草的密度图或者叫mask图,用以记录手动调整的密度信息。没有手动刷制的区域为不会生成该密度图。

在步骤104-106,将遍历地形最小单元,调用花草创建接口,并根据调用花草创建接口的返回结果决定是否种植花草。

其中,遍历到某一地形最小单元时并执行到创建花草步骤时(此时地形材质数据已经加载),获取地形地表材质的列表和各材质的权重信息,然后逐单元(地形最小单元)取材质索引,材质权重,当前世界坐标,密度图信息,然后将这些参数传递给创建花草接口,接口返回成功则进行步骤106给出需要创建的位置、方位、大小等信息,返回失败表示不需要创建,继续步骤107。

图1的步骤105中描述的花草创建接口的功能是判断能否能在当前遍历单元内种植花草。下面结合图2详细描述图1的步骤105中涉及的花草创建接口的工作过程:首先在步骤201,获取当前遍历单元的属性值,然后在步骤202对地形单元材质的权重值进行判断:当材质的自身的权重值小于0.4F,则直接判断为不能种植;当材质的自身的权重值大于等于0.4F时,则进行下一步骤,即步骤203,其中,F为浮点数值。在步骤203中,计算种植概率,通过种植概率(密度)来控制能够种植,种植概率=Random(1.0F) + 花草的权重值 +密度图密度值。其中,密度图密度值可以是负值和正直,当负值时表示的是减少种植概率(最终目的是降低种植密度),当正值时表示增加种植概率(最终目的是增加种植密度)。在步骤204,对种植概率进行判断:当种植概率小于1时,则返回失败,表示此处不能种植花草;当种植概率大于等于1时,则进行下一步骤,即步骤205,其中,Random(x)表示从0-x区间取一个随机浮点数。在步骤205,计算地形单元的倾斜程度,地形最小单元的倾斜程度=1.0F -(地形法线向量 dot 竖直向上向量)。在步骤206,根据在步骤205中计算得到的当前地形最小单元的单元面的倾斜程度与花草的坡度系数进行判断,如果地形最小单元的倾斜程度小于或等于花草的坡度系数,则表示此区域可以种植花草,返回成功;反之,如果地形最小单元的倾斜程度大于花草的坡度系数,则表示此区域不可以种植花草,返回失败。

返回参考图1,如果步骤105返回成功,则在步骤106种植花草。设地形的最小单元为u,该单元的世界坐标为(nx,ny,nz),则返回的种植位置=(Random(0.5F) + nx,ny,Random(0.5F) + nz)。其它方位信息、旋转信息同理执行随机函数产生。这里用到了随机数,需要在调用随机函数前,设置好固定的随机种子,这里以该单元的世界坐标作为播放种子。以世界坐标作为随机种子的好处是,既保证了不同单元内的随机数有差异,又能保证每次创建时位置不变。

如果步骤106返回失败,则表示该单元计算出来的种植概率较小,不满足种植要求。

可以看出,是否在每个单元种植上花草,受地形材质的权重,绘制的密度图,花草组信息的密度值三个因素影响。

在种植花草的过程中,当种植花草区域是陡峭的斜面,如果种植的花草始终向上,则会导致花草模型有穿插斜面内部的问题。本方案中会预计算种植的目标点的斜面的朝向,然后以当前斜面的朝向作为花草的垂直方向,保证花草始终是贴于地面,背向地面生长,从而解决花草模型穿插斜面问题。

生成的花草在渲染方面采用的时几何实例化渲染。关于几何实例化渲染,请参照相关说明文档。因而每棵花草在程序内部仅记录了坐标信息,无需创建出大量的场景对象。

可以像传统刷制地形材质一样执行本发明的刷制工序。刷制地形材质时就会实时的更新显示花草。当然,也可以选择关闭刷制时显示花草。

在上述实施例中,对于植被为花草的情形进行了描述,但是应该理解的是,花草可以为场景植被系统中的其它任何模型。

本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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