基于Unity引擎地形系统的道路网格创建方法及装置制造方法及图纸

技术编号:20005285 阅读:35 留言:0更新日期:2019-01-05 17:49
一种基于Unity引擎地形系统的道路网格创建方法及装置,所述方法包括步骤:从场景中获取采样点,创建道路曲线;获取分段网格的顶点,创建顶点预备数组;创建分段网格的顶点的包围盒及切割面;创建次级顶点预备数组;创建次级顶点预备数组的三角形索引数组;采用切割面切割次级顶点预备数组得到子级顶点预备数组,以及重新组织三角形索引数组得到子级三角形索引数组;基于切割面,得到子级顶点预备数组的UV数组;采用子级顶点预备数组、子级三角形索引数组,以及UV数组,创建道路网格。本发明专利技术的基于Unity引擎地形系统的道路网格创建方法及装置,能够创建出完全贴合Unity引擎地形系统的道路模型。

Road Grid Creation Method and Device Based on Unity Engine Terrain System

A road grid creation method and device based on Unity engine terrain system is presented. The method includes steps: acquiring sampling points from scene and creating road curve; acquiring vertices of segmented grid and creating vertex reserve array; creating bounding boxes and cutting surfaces of vertices of segmented grid; creating secondary vertex reserve array; creating triangular index number of secondary vertex reserve array. Sublevel vertex reserve array is obtained by cutting secondary vertex reserve array on cutting surface, and sublevel triangle index array is reorganized to obtain sublevel triangle index array; based on cutting surface, sublevel vertex reserve array is obtained by UV array; sublevel vertex reserve array, sublevel triangle index array and UV array are used to create road grid. The road grid creation method and device based on the Unity engine terrain system of the invention can create a road model that fully fits the Unity engine terrain system.

【技术实现步骤摘要】
基于Unity引擎地形系统的道路网格创建方法及装置
本专利技术涉及图像建模
,特别是涉及一种基于Unity引擎地形系统的道路网格创建方法及装置。
技术介绍
Unity是由UnityTechnologies公司开发的一个让开发者创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型三维图形引擎。当前的其他游戏引擎,比如CryENGINE3引擎、虚幻4引擎等,都提供了基于Unity引擎地形系统的创建道路的编辑工具,但是Unity引擎并未给开发者提供基于Unity引擎地形系统的创建道路的编辑工具。创建道路的编辑工具,是一个可以在虚拟三维空间创建模拟现实世界道路模型的工具。创建道路的编辑工具的功能,一般包括,自定义道路的起始点和结束点,调整道路的宽度和高度,调整道路模型的精度,以及将道路模型贴合目标模型等。当前的一些游戏引擎中,使用的在地形上创建道路的方法,主要为延迟渲染、投影器和创建网格的方法。其中,延迟渲染的方法,通过在延迟渲染阶段采样道路贴图绘制到地形上,但是该方法并不支持在移动设备上实现;投影器的方法,则无法渲染自定义的形状;创建网格的方法,则使用依据路径采样点生成网格方法,在地形系统上设置采样点,采样地形的高度,生成道路模型,但该方法也存在着不能完全的贴合地形,以及道路网格的精细度不够的缺陷。
技术实现思路
为了解决现有技术存在的不足,本专利技术的目的在于提供一种基于Unity引擎地形系统的道路网格创建方法及装置,能够创建出完全贴合Unity引擎地形系统的道路模型。为实现上述目的,本专利技术提供的基于Unity引擎地形系统的道路网格创建方法,包括以下步骤:从场景中获取采样点,创建道路曲线;获取分段网格的顶点,创建顶点预备数组;创建分段网格的顶点的包围盒及切割面;创建次级顶点预备数组;创建次级顶点预备数组的三角形索引数组;采用切割面切割次级顶点预备数组得到子级顶点预备数组,以及重新组织三角形索引数组得到子级三角形索引数组;基于切割面,得到子级顶点预备数组的UV数组;采用子级顶点预备数组、子级三角形索引数组,以及UV数组,创建道路网格。所述获取分段网格的顶点,创建顶点预备数组的步骤,进一步包括步骤:根据道路曲线的总长度和道路网格的构建步长,确定道路网格的网格总段数;根据每一分段网格的中心点的位置、副切线数据和网格宽度信息,计算出每一分段网格的中心点的正副切线方向的顶点位置数据,并将顶点位置数据存储到顶点预备数组。所述创建次级顶点预备数组的步骤,进一步包括步骤:根据包围盒的最小点和最大点的位置数据,以及采样步长,确定采样面的起始点、结束点和执行步长,采用Unity引擎地形系统中的GetInterpolatedHeight()方法从场景中获得采样点的位置数据,并将采样点的位置数据存储到次级顶点预备数组。进一步地,所述采用切割面切割次级顶点预备数组得到子级顶点预备数组的步骤是,使用切割面,并采用裁剪三角面的方法,将次级顶点预备数组中不在切割面内的顶点剔除并生成新的顶点,得到子级顶点预备数组。所述基于切割面,得到子级顶点预备数组的UV数组的步骤,进一步包括步骤:计算子级顶点预备数组中每个顶点到顶点所在分段网格对应的切割面的纵向上、横向上的距离,其中,纵向上的距离与顶点所在分段网格对应的切割面纵向长度的比值作为网格UV坐标数据中的V值;横向上的距离与顶点所在分段网格对应的切割面横向长度的比值用作差值t,顶点所在分段网格的分段数与分段网格的总段数的比值记作为B1,以及顶点所在分段网格的下一分段网格与分段网格的总段数的比值记作为B2,采用算式(1-t)*B1+t*B2,计算出网格UV坐标数据中的U值;将得到的顶点的U值和V值存储为UV数组。进一步地,所述的基于Unity引擎地形系统的道路网格创建方法,还包括步骤:创建实现所述基于Unity引擎地形系统的道路网格创建方法的核心脚本,并为核心脚本编写编辑器脚本。进一步地,所述的基于Unity引擎地形系统的道路网格创建方法,还包括步骤:调整采样点的位置,并检测是否对采样点进行了调整,是则对道路网格进行更新。为实现上述目的,本专利技术提供的基于Unity引擎地形系统的道路网格创建装置,用于实现上述任一项所述的方法,包括:关联变量定义单元,以及数据处理及交互单元,其中,所述关联变量定义单元,用于定义创建道路网格的关联变量;所述数据处理及交互单元,用于根据外界输入的控制信息,处理创建道路网格的关联变量的编辑数据。进一步地,所述创建道路网格的关联变量包括:对地形碰撞器的引用、采样间距、采样宽度、网格的段数、采样步长、抬高高度,以及采样点列表。所述数据处理及交互单元,进一步用于存储或者清空编辑数据,保存动态编辑数据,实时更新编辑数据,以及导出静态网格的模型数据。包括:本专利技术的基于Unity引擎地形系统的道路网格创建方法及装置,能够创建出完全贴合Unity引擎地形系统的道路模型,并且能够实时动态地编辑创建的道路网格,改变网格的起始点和结束点,调整网格的宽度和高度,调整网格的精度,调整网格对地形的贴合程度,以及调整网格的平滑度。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,并与本专利技术的实施例一起,用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为根据本专利技术的基于Unity引擎地形系统的道路网格创建方法流程图;图2为根据本专利技术的基于Unity引擎地形系统的道路网格创建方法应用于具体场景的实施例的流程图;图3为根据本专利技术的基于Unity引擎地形系统的道路网格创建装置结构图。具体实施方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。本专利技术的实施方式可以实现为一种系统、装置、设备、方法或者计算机程序产品。因此,本专利技术的具体实现形式包括:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,并不仅限定为下述具体的实施方式。本专利技术的基本思想在于:改进了现有的依据路径采样点生成网格的方法,将采样点扩展为采样面,使得采样点的数量足够多,达到可以完全贴合地形的效果。下面通过具体的实施方式,详细地阐述本专利技术的工作原理。图1为根据本专利技术的基于Unity引擎地形系统的道路网格创建方法流程图,下面将参考图1,对本专利技术的基于Unity引擎地形系统的道路网格创建方法进行详细描述。在步骤101,获取地形上每个采样点P1的位置数据,以及根据采样点P1的数量和位置数据,创建道路曲线。在步骤102,基于道路曲线和预生成的道路网格的步长,创建顶点预备数组Q1。该步骤中,根据道路曲线的总长度和预生成的道路网格的步长,确定预生成道路网格的步数,以及确定对道路曲线的拟合程度。根据预生成的道路网格的步数从道路曲线上,获得每一步预生成的网格的中心点P2的位置、法线、切线,及副切线数据,以及确定每一步预生成的网格首尾两端的顶点Alpha值,并将每个中心点P2的正副切线方向的两个点的位置数据储存到顶点预备数组Q1,作为分段网格的顶点。在步骤103,根据顶点预备数组Q1的顶点数据,创建每个中本文档来自技高网...

【技术保护点】
1.一种基于Unity引擎地形系统的道路网格创建方法,其特征在于,包括以下步骤:从场景中获取采样点,创建道路曲线;获取分段网格的顶点,创建顶点预备数组;创建分段网格的顶点的包围盒及切割面;创建次级顶点预备数组;创建次级顶点预备数组的三角形索引数组;采用切割面切割次级顶点预备数组得到子级顶点预备数组,以及重新组织三角形索引数组得到子级三角形索引数组;基于切割面,得到子级顶点预备数组的UV数组;采用子级顶点预备数组、子级三角形索引数组,以及UV数组,创建道路网格。

【技术特征摘要】
1.一种基于Unity引擎地形系统的道路网格创建方法,其特征在于,包括以下步骤:从场景中获取采样点,创建道路曲线;获取分段网格的顶点,创建顶点预备数组;创建分段网格的顶点的包围盒及切割面;创建次级顶点预备数组;创建次级顶点预备数组的三角形索引数组;采用切割面切割次级顶点预备数组得到子级顶点预备数组,以及重新组织三角形索引数组得到子级三角形索引数组;基于切割面,得到子级顶点预备数组的UV数组;采用子级顶点预备数组、子级三角形索引数组,以及UV数组,创建道路网格。2.根据权利要求1所述的基于Unity引擎地形系统的道路网格创建方法,其特征在于,所述获取分段网格的顶点,创建顶点预备数组的步骤,进一步包括步骤:根据道路曲线的总长度和道路网格的构建步长,确定道路网格的网格总段数;根据每一分段网格的中心点的位置、副切线数据和网格宽度信息,计算出每一分段网格的中心点的正副切线方向的顶点位置数据,并将顶点位置数据存储到顶点预备数组。3.根据权利要求1所述的基于Unity引擎地形系统的道路网格创建方法,其特征在于,所述创建次级顶点预备数组的步骤,进一步包括步骤:根据包围盒的最小点和最大点的位置数据,以及采样步长,确定采样面的起始点、结束点和执行步长,采用Unity引擎地形系统中的GetInterpolatedHeight()方法从场景中获得采样点的位置数据,并将采样点的位置数据存储到次级顶点预备数组。4.根据权利要求1所述的基于Unity引擎地形系统的道路网格创建方法,其特征在于,所述采用切割面切割次级顶点预备数组得到子级顶点预备数组的步骤是,使用切割面,并采用裁剪三角面的方法,将次级顶点预备数组中不在切割面内的顶点剔除并生成新的顶点,得到子级顶点预备数组。5.根据权利要求1所述的基于Unity引擎地形系统的道路网格创建方法,其特征在于,所述基于切割面,得到子级顶点预备数组...

【专利技术属性】
技术研发人员:陈童
申请(专利权)人:苏州蜗牛数字科技股份有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1