一种游戏地形道路生成方法和装置的制作方法

文档序号:6368487阅读:183来源:国知局
专利名称:一种游戏地形道路生成方法和装置的制作方法
技术领域
本发明涉及3D游戏设计技术领域,尤其涉及一种游戏地形道路生成方法和装置。
背景技术
为了使游戏表现的更加真实,游戏中的场景需要与现实世界更加接近。道路场景在游戏中非常常见,你时常能看到各种道路。但是这些路大多是乡间小道,很少有现代的边界明晰的道路的样子 ,即使有,基本上也都是笔直的,很少有弯曲的道路,而且现实中一条弯曲的道路是很常见的。对于一些现代题材的游戏来说,实现一种能够快速铺设现代道路的方法,就显的很重要了。现在大多数的铺路方式是对地形的渲染使用多纹理混合的方式,当需要铺路的时候,美术人员在地形编辑器中设置他想要绘制为道路的地形的纹理为道路的纹理,然后在道路与地形边缘进行alpha混合,使之自然的进行过渡。现有方法存在以下缺点(1)因为原有的改变贴图纹理的铺路方法完全由人为的控制,铺设过程比较困难;(2)道路边缘比较柔和,不能更加真实的表现现代道路界限分明的特点;(3)对于道路的一些细节,如道路的中线(琼玛卡若线),难以表现。

发明内容
本发明的目的在于提出一种游戏地形道路生成方法和装置,提供了一种在现代题材游戏中铺设道路的解决方案,使美术人员能够在地形编辑器中快速、方便的铺设道路。为达此目的,本发明采用以下技术方案一种游戏地形道路生成方法,包括以下步骤A、输入至少4个地形上的坐标点作为三次样条曲线的关键点;B、对每两个相邻的关键点进行样条插值,计算插值点的坐标;C、根据第i+1插值点和当前第i插值点生成道路的边界点,根据边界点生成道路顶点,将道路顶点保存在顶点数组中并生成顶点索引数组;D、根据顶点数组和顶点索引数组生成道路并进行渲染。步骤B中进一步包括以下步骤BI、计算当前关键点Pk与下一关键点Pk+1的直线距离D,则所述两个关键点之间的插值次数RT = [2*D],插值比Rtl = I/RT ;B2、当前插值次数为M时,计算当前插值比u = M*R0 ;B3、通过Cardinal三次样条曲线函数计算当前插值点的坐标并保存,所述函数公式为P(u) = Ph (_su3+2su2_su)+Pk[ (2_s) U3+(s_3) u2+l]+Pk+1 [ (s_2) U3+(3_2s)u2+su]+Pk+2(su3-su3),其中S为曲线的张力系数;B4、判断当前插值次数M是否小于RT ;若小于,将M值加I并返回步骤B2,否则进入步骤B5 ;
B5、判断当前关键点Pk是否为最后一个关键点Pn ;若是则进入步骤C,否则将M值复位为I并返回步骤BI。步骤C中,进一步包括以下步骤Cl、第i+1个插值点减去当前第i个插值点,得到向量L ;C2、令向量L的Y坐标为0,得到向量L在XZ平面内的投影向量Lxz,计算Lxz的在XZ平面内的垂直向量LXZ1,对所述垂直向量LXZ1进行向量标准化后乘以预设的道路宽度d得到向量L’ ;C3、令当前第i个插值点的Y坐标为0,加减向量L’,得到两个在XZ平面内的道路边界点;C4、判断当前插值点是否为第一个插值点;若是,则进入步骤C6,否则进入步骤 C5 ;C5、根据边界点生成道路顶点,将道路顶点保存在顶点数组并生成顶点索引数组。C6、保存当前采样点产生的两个边界点。步骤C5中,进一步包括以下步骤C501、读取当前生成的两个边界点和上一次生成的两个边界点所包围的矩形区域中所有点的坐标;C502、取所有点的坐标中X的最小值和最大值以及Z的最小值和最大值,并以X的最小值和Z的最小值作为初始的当前坐标;C503、根据当前坐标的X和Z判断顶点数组中是否包含具有相同X和Z坐标的顶点;若包含,则进入步骤C504,否则进入步骤C506 ;C504、判断当前坐标的Z值是否为Z的最大值;若是,则将X值加1,Z值复位为最小值并进入步骤C505,否则将Z值加I并返回步骤C503 ;C505、判断当前坐标的X值是否为X的最大值;若是,则进入步骤C6,否则返回步骤 C503 ;C506、根据X和Z判断顶点数组中是否包含与当前坐标周围8个点中的任意一点具有相同X和Z坐标的顶点;若包含,则从顶点数组中读取该顶点的Y坐标值作为当前坐标的Y值并进入步骤C508,否则进入步骤C507 ;C507、从地形数据中读取与当前坐标具有相同X值和Z值的点的Y坐标值作为当前坐标的Y值;C508、当前坐标减去当前第i插值点得到向量V,计算当前坐标到第i+1插值点和当前第i插值点之间连线的垂直距离t ;C509、向量L与向量V进行叉乘,判断Y值是否为正;若为正,则计算贴图坐标V =(道路宽度d-垂直距离t)/道路宽度d*2,若为负,则计算贴图坐标V =(道路宽度d+垂直距离t) /道路宽度d*2 ;C510、计算当前坐标周围的8个点在向量L上的投影长度tl,贴图坐标U = tl*R,其中R为预设的贴图比例;C511、保存当前坐标至顶点数组,生成顶点索引数组,保存贴图坐标U和V并返回步骤C504。所述游戏地形道路生成方法还包括,步骤C结束后判断当前生成的两个边界点的向量与上次生成的两个边界点的向量是否交叉;若交叉,则进入步骤D,否则返回步骤C ;所述判断进一步包括以下步骤当前生成的两个边界点与上次生成的两个边界点中,分别将位于道路同侧的边界点相减,得到两个边界向量;对两个边界向量分别进行向量标准化操作后进行点乘;判断点乘结果是否为负值;若为负值,则交叉,若为正值,则不交叉。一种游戏地形道路生成装置,包括输入模块,插值模块,处理模块和道路生成模块;其中,输入模块,用于输入至少4个地形上的坐标点作为三次样条曲线的关键点;插值模块,对每4个相邻的关键点进行样条插值,计算插值点的坐标;处理模块,用于根据第i + 1插值点和当前第i插值点生成道路的边界点,根据边界点生成道路顶点,将顶点保存在顶点数组中并生成顶点索引数组;道路生成模块,用于根据顶点数组和顶点索引数组生成道路并进行渲染。在所述处理模块和道路生成模块之间还包括判断模块,所述判断模块用于判断处理模块当前生成的两个边界点的向量与上次生成的两个边界点的向量是否交叉;若交叉,则所述道路生成模块根据顶点数组和顶点索引数组生成道路并进行渲染;否则,所述处理模块将根据下一个插值点继续生成道路边界点和顶点。
采用本发明的技术方案,提供了一种在现代题材游戏中铺设道路的解决方案,使美术人员能够在地形编辑器中快速、方便的铺设道路,并且可以充分的表现现代道路的特点和细节,使游戏中的虚拟世界更加逼真。


图I是本发明具体实施方式
提供的游戏地形道路生成方法的流程示意图。图2是本发明具体实施方式
中根据输入的关键点进行插值的流程示意图。图3是本发明具体实施方式
中根据插值点生成道路边界点的流程示意图。图4是本发明具体实施方式
中生成顶点数组和顶点索引数组的流程示意图。图5是本发明具体实施方式
中判断边界向量是否交叉的流程示意图。图6是本发明具体实施方式
提供的游戏地形道路生成装置的结构示意图。
具体实施例方式下面结合附图并通过具体实施方式
来进一步说明本发明的技术方案。图I是本发明具体实施方式
提供的游戏地形道路生成方法的流程示意图。如图I所示,该方法包括步骤S101,输入至少4个地形上的坐标点作为三次样条曲线的关键点。在地形编辑器上通过鼠标点选的方式输入至少4个地形上的坐标点作为三次样条曲线的关键点。所述关键点的点选,需要依据地形设计中出现道路的位置和方向在三维坐标系下选取,选取的关键点为具有X、Y、Z坐标的三维坐标点。步骤S102,对每两个相邻的关键点进行样条插值,计算插值点的坐标。由于需要使用三次样条曲线函数进行插值计算,所以每次插值计算需要代入4个关键点的坐标值来计算插值点坐标,分别为当前关键点pk、与其相邻的上一个关键点Plri和与其相邻的下两个关键点Pk+1、Pk+2。如图2所示,所述插值过程进一步包括以下步骤步骤S201,计算当前关键点Pk与下一关键点Pk+1的直线距离D,则所述两个关键点之间的插值次数RT= [2*D],插值比Rtl = 1/RT。依据关键点输入的顺序,从第一个关键点开始,通过坐标计算当前关键点与下一个关键点之间的直线距离D,则两个关键点之间的插值次数RT = [2*D],即将所述直线距离乘以2后取整,作为插值次数,插值比Rtl = 1/RT。步骤S202,当前插值次数为M时,计算当前插值比u = M*R。。步骤S203,通过Cardinal三次样条曲线函数计算当前插值点的坐标并保存,所述函数公式为P(U) = Ph (_su3+2su2_su)+Pk[ (2_s) U3+(s_3) u2+l]+Pk+1 [ (s_2) U3+(3_2s)u2+su]+Pk+2(SU3-SU3);其中Pk-pPpPk+i和Pk+2为相邻的四个关键点;s为曲线的张力系数,S控制Cardinal样条与输入的关键点之间的松紧程度。步骤S204,判断当前插值次数M是否小于RT ;若小于,将M值加I并返回步骤S202,否则进入步骤S205 ;步骤S205,判断当前关键点Pk是否为最后一个关键点Pn ;若是则进入步骤S103,否则将M值复位为I并返回步骤S201。上述步骤S201至S205完成了对每两个相邻的关键点通过Cardinal三次样条曲线进行样条插值并得到插值点坐标的工作。步骤S103,根据第i+1个插值点和当前第i个插值点生成道路的边界点,i为大于等于I的正整数且初始值为1,根据边界点生成道路顶点,将顶点保存在顶点数组,并生成顶点索引数组。利用获得的所有插值点,来生成道路的边界点,再根据边界点生成顶点保存在顶点数组中,进而生成顶点索引数组,具体步骤如图3所示,包括步骤S301,第i+1个插值点减去第i个插值点,得到具有X、Y、Z坐标的三维向量L ;步骤S302,令向量L的Y坐标为0,得到向量L在XZ平面内的投影向量Lxz ;计算Lxz在XZ平面内的垂直向量Lxz I,现已知投影向量Lxz的三维坐标为U,ZlJ,令Lxz在XZ平面内的垂直向量Lxz丄的X坐标Xljiz ± = ZLxz, Z坐标Zuz ± = -Xlxz,则得到垂直向量Lxz丄的三维坐标为(ZUz,0,-XUz)。再对所述垂直向量Lxzi进行向量标准化后乘以预设的道路宽度d得到向量L’ ;步骤S303,当前插值点加减向量L’,则分别得到两个道路网格边界点;当前插值点的坐标加上向量L’,相当于当前插值点在XZ平面内沿向量L’的方向进行位移,位移的距离为向量L’的模;当前插值点的坐标减去向量L’,相当于当前插值点在XZ平面内沿向 量L’的相反方向进行位移,位移的距离为向量L’的模;此时得到在XZ平面内分别位于道路两侧的边界点各一个。步骤S304,判断当前插值点是否为第一个插值点;若是,则进入步骤S306,否则进入步骤S305。即判断i值是否为1,此时第一个插值点只生成了两个边界点,而每次进入步骤S305生成顶点时需要四个边界点,所以此时需要跳过步骤S305并保存这最先得到两个边界点。
步骤S305,根据边界点生成道路顶点,顶点保存在顶点数组并生成顶点索引数组;步骤S306,保存当前插值点产生的两个边界点。其中步骤S305中根据边界点生成道路顶点,将顶点保存在顶点数组并生成顶点索引数组的过程如图4所示, 进一步包括以下步骤步骤S305a,读取当前生成的两个边界点和上一次生成的两个边界点所包围的矩形区域中所有点的坐标。前后两次生成的四个边界点,在XZ平面内合围成一个矩形区域,读取该矩形区域内所有点的坐标。步骤S305b,取所有点的坐标中X的最小值Xmin和最大值Xmax以及Z的最小值Zmin和最大值Zmax,并以Xmin和Zmin作为初始的当前坐标,则当前坐标的初始值为(Xmin,0,Zmin)。步骤S305c,根据当前坐标的X和Z判断顶点数组中是否包含具有相同X和Z坐标的顶点;若包含,则进入步骤S305d,否则进入步骤S305f。步骤S305d,判断当前坐标的Z值是否为Z的最大值Zmax ;若是,则将X值加1,Z值复位为最小值Zmin并进入步骤S305e,否则将Z值加I并返回步骤S305C。步骤S305e,判断当前坐标的X值是否为X的最大值;若是,则进入步骤S306,否则返回步骤S305c。上述步骤S305c至S305e通过X值和Z值的分别递增,达到遍历所述矩形区域内所有点的目的。步骤S305f,根据X和Z判断顶点数组中是否包含与当前坐标周围8个点中的任意一点具有相同X和Z坐标的顶点;若包含,则从顶点数组中读取该顶点的Y坐标值作为当前坐标的Y值并进入步骤S305h,否则进入步骤S305g。步骤S305g,从地形数据中读取与当前坐标具有相同X值和Z值的点的Y坐标值作为当前坐标的Y值;获取的Y值如果不为0,则表示该顶点在实际地形中具有地形高度,该段道路在实际游戏地形中不是平坦路段,会出现一定坡度或者坑洼不平的情形。。步骤S305h,当前坐标减去当前第i插值点得到向量V,计算当前坐标到第i+1插值点和当前第i插值点之间连线的垂直距离t。步骤S305i,向量L与向量V进行叉乘,判断Y值是否为正;若为正,则计算贴图坐标V=(道路宽度d-垂直距离t)/道路宽度d*2,若为负,则计算贴图坐标V =(道路宽度d+垂直距离t)/道路宽度d*2。步骤S305j,计算当前坐标周围的8个点在向量L上的投影长度tl,则贴图坐标U=t i*R,其中R为预设的贴图比例。所述投影长度tl为当前坐标周围的8个点在向量L上的8个投影点连接成的线段的长度。步骤S305j,保存当前坐标至顶点数组,生成顶点索引数组,保存贴图坐标U和V并返回步骤S305f。将当前坐标作为道路顶点的坐标信息保存在顶点数组中,用于后面的道路生成。顶点数组为一个保存VERTEX的vector类型的容器,并记录这些顶点的索引。以各个顶点的序号作为相应顶点的索引,索引为简单的int类型,将索引添加到道路的顶点索引数组。同时保存贴图坐标U和V,用于确定后期的纹理贴图在模型上的位置,并返回步骤S305fo所有的图象文件都是二维的一个平面。水平方向是U,垂直方向是V,通过这个平面的、二维的UV坐标系,我们可以定位图象上的任意一个象素。把这个二维的平面贴到三维的多边形模型表面时,多边形为了贴图就额外引进了一个UV坐标,以便把多边形的顶点和图象文件上的象素对应起来,这样才能在多边形表面上定位纹理贴图。所以多边形的顶点除了具有三维的空间坐标外。还具有二维的UV坐标。对于纹理贴图而言,一张贴图的U和V坐标的数值范围都是O到I,而不管他的实际分辨率是多少,程序会自动把UV纹理坐标换算成贴图的象素坐标。由于在上述过程中明确计算出了道路顶点的三维坐标并保存在顶点数组中,从而使生成的道路具有明晰的边界,与采用道路与地形边缘进行alpha混合进行过渡的方式相t匕,铺设的道路边界很清晰,更具真实感。步骤S104,根据顶点数组和顶点索引数组生成道路并进行渲染。顶点数组就是将原来由一系列的Vertex指定的顶点放在一个数组中(其意思就是顶点数据组成的数组)由顶点数组处理函数一次性指定。事实上,顶点数据中还包含着其他系列的信息,比如用于表面发现的贴图坐标U、V,RGBA颜色,辅助颜色等。顶点索引数组由各个顶点的索引组成,其中的每个索引指向相对应的顶点数据。此外,生成一段道路后,还可以判断此段道路是否在场景可见范围内,如果在可见范围内,再进行渲染。上述游戏地形生成道路的方法,可以进一步包括步骤C结束后判断当前生成的两个边界点的向量与上次生成的两个边界点的向量是否交叉。该步骤的主要目的在于判断是否需要对道路进行分段。如果交叉,表明道路的方向会产生变化,此时根据已生成的边界点以及计算出的顶点数据,生成一段道路。再根据后面的新生成的边界点继续计算下一段道路的顶点数据,直至下一次所述的两个向量发生交叉。判断所述两个向量是否交叉时,如图5所示,进一步包括以下步骤步骤S501,当前生成的两个边界点与上次生成的两个边界点中,分别将位于道路同侧的边界点相减,得到两个边界向量;凡是用插值点减去向量L’而得到的边界点视为同处于道路的一侧,用插值点加上向量L’而得到的边界点处于道路的另一侧,此时共4个边界点,将位于道路同侧的两个点分别相减,得到两个边界向量。步骤S502,对两个边界向量分别进行向量标准化操作后,进行点乘;步骤S503,判断点乘结果是否为负值;若为负值,则交叉,进入步骤D,表明道路在此分段,先生成前一段道路;若为正值,则不交叉,返回步骤C,表明道路在此还未分段,可以继续生成后面的边界点并计算顶点数据。图6是本发明具体实施方式
提供的游戏地形道路生成装置结构示意图。如图6所示,该装置包括输入模块601,插值模块602,处理模块603,和道路生成模块604。所述输入模块601,用于输入至少4个地形上的坐标点作为三次样条曲线的关键点。所述插值模块602,用于对每两个相邻的关键点进行样条插值,计算插值点的坐标。所述处理模块603,用于处理模块,用于根据第i+1插值点和当前第i插值点生成道路的边界点,根据边界点生成道路顶点,将顶点保存在顶点数组中并生成顶点索引数组。

所述道路生成模块604,用于根据顶点数组和顶点索引数组生成道路并进行渲染。所述游戏地形道路生成装置,在所述处理模块和道路生成模块之间还可以包括判断模块,所述判断模块用于判断处理模块当前生成的两个边界点的向量与上次生成的两个边界点的向量是否交叉;若交叉,则所述道路生成模块根据顶点数组和顶点索引数组生成道路并进行渲染;否则,所述处理模块将根据下一个插值点继续生成道路边界点和顶点。采用本发明的技术方案,提供了一种在现代题材游戏中铺设道路的解决方案,使美术人员能够在地形编辑器中快速、方便的铺设道路,并且可以充分的表现现代道路的特点和细节,使游戏中的虚拟世界更加逼真。 以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种游戏地形道路生成方法,其特征在于,包括以下步骤 A、输入至少4个地形上的坐标点作为三次样条曲线的关键点; B、对每两个相邻的关键点进行样条插值,计算插值点的坐标; C、根据第i+Ι插值点和当前第i插值点生成道路的边界点,根据边界点生成道路顶点,将道路顶点保存在顶点数组中并生成顶点索引数组; D、根据顶点数组和顶点索引数组生成道路并进行渲染。
2.根据权利要求I所述的游戏地形道路生成方法,其特征在干,步骤B中进ー步包括以下步骤 BI、计算当前关键点Pk与下一关键点Pk+1的直线距离D,则所述两个关键点之间的插值次数 RT = [2*D],插值比 R0 = I/RT ; B2、当前插值次数为M时,计算当前插值比u = M*R0 ; B3、通过Cardinal三次样条曲线函数计算当前插值点的坐标并保存,所述函数公式为P (u) = Pk_1 (_su3+2su2_su) +Pk[ (2_s) u3+ (s_3) u2 +1] +Pk+1 [ (s_2) u3+ (3_2s)u2+su]+pk+2(su3-su3),其中S为曲线的张カ系数; B4、判断当前插值次数M是否小于RT ;若小于,将M值加I并返回步骤B2,否则进入步骤B5 ; B5、判断当前关键点Pk是否为最后ー个关键点Pn ;若是则进入步骤C,否则将M值复位为I并返回步骤BI。
3.根据权利要求I或2所述的游戏地形道路生成方法,其特征在于,步骤C中,进ー步包括以下步骤 Cl、第i+Ι个插值点减去当前第i个插值点,得到向量L ; C2、令向量L的Y坐标为O,得到向量L在XZ平面内的投影向量Lxz,计算Lxz的在XZ平面内的垂直向量Lxzi,对所述垂直向量Lxzi进行向量标准化后乘以预设的道路宽度d得到向量じ; C3、令当前第i个插值点的Y坐标为O,加減向量L’,得到两个在XZ平面内的道路边界点; C4、判断当前插值点是否为第一个插值点;若是,则进入步骤C6,否则进入步骤C5 ; C5、根据边界点生成道路顶点,将道路顶点保存在顶点数组并生成顶点索引数组。
C6、保存当前采样点产生的两个边界点。
4.根据权利要求3所述的游戏地形道路生成方法,其特征在干,步骤C5中,进ー步包括以下步骤 C501、读取当前生成的两个边界点和上一次生成的两个边界点所包围的矩形区域中所有点的坐标; C502、取所有点的坐标中X的最小值和最大值以及Z的最小值和最大值,并以X的最小值和Z的最小值作为初始的当前坐标; C503、根据当前坐标的X和Z判断顶点数组中是否包含具有相同X和Z坐标的顶点;若包含,则进入步骤C504,否则进入步骤C506 ; C504、判断当前坐标的Z值是否为Z的最大值;若是,则将X值加1,Z值复位为最小值并进入步骤C505,否则将Z值加I并返回步骤C503 ;C505、判断当前坐标的X值是否为X的最大值;若是,则进入步骤C6,否则返回步骤C503 ; C506、根据X和Z判断顶点数组中是否包含与当前坐标周围8个点中的任意一点具有相同X和Z坐标的顶点;若包含,则从顶点数组中读取该顶点的Y坐标值作为当前坐标的Y值并进入步骤C508,否则进入步骤C507 ; C507、从地形数据中读取与当前坐标具有相同X值和Z值的点的Y坐标值作为当前坐标的Y值; C508、当前坐标减去当前第i插值点得到向量V,计算当前坐标到第i+Ι插值点和当前第i插值点之间连线的垂直距离t ; C509、向量L与向量V进行叉乘,判断Y值是否为正;若为正,则计算贴图坐标V=(道路宽度d-垂直距离t)/道路宽度d*2,若为负,则计算贴图坐标V =(道路宽度d+垂直距离t)/道路宽度d*2 ; C510、计算当前坐标周围的8个点在向量L上的投影长度tl,贴图坐标U = tl*R,其中R为预设的贴图比例; C511、保存当前坐标至顶点数组,生成顶点索引数组,保存贴图坐标U和V并返回步骤C504。
5.根据权利要求I或2所述的游戏地形道路生成方法,其特征在于,所述方法还包括,步骤C结束后判断当前生成的两个边界点的向量与上次生成的两个边界点的向量是否交叉;若交叉,则进入步骤D,否则返回步骤C ;所述判断进ー步包括以下步骤 当前生成的两个边界点与上次生成的两个边界点中,分别将位于道路同侧的边界点相减,得到两个边界向量; 对两个边界向量分别进行向量标准化操作后进行点乘; 判断点乘结果是否为负值;若为负值,则交叉,若为正值,则不交叉。
6.根据权利要求4所述的游戏地形道路生成方法,其特征在于,所述方法还包括,步骤C结束后判断当前生成的两个边界点的向量与上次生成的两个边界点的向量是否交叉;若交叉,则进入步骤D,否则返回步骤C ;所述判断进ー步包括以下步骤 当前生成的两个边界点与上次生成的两个边界点中,分别将位于道路同侧的边界点相减,得到两个边界向量; 对两个边界向量分别进行向量标准化操作后进行点乘; 判断点乘结果是否为负值;若为负值,则交叉,若为正值,则不交叉。
7.一种游戏地形道路生成装置,其特征在于,包括输入模块,插值模块,处理模块,和道路生成模块;其中, 输入模块,用于输入至少4个地形上的坐标点作为三次样条曲线的关键点; 插值模块,对每4个相邻的关键点进行样条插值,计算插值点的坐标; 处理模块,用于根据第i+Ι插值点和当前第i插值点生成道路的边界点,根据边界点生成道路顶点,将顶点保存在顶点数组中并生成顶点索引数组; 道路生成模块,用于根据顶点数组和顶点索引数组生成道路并进行渲染。
8.根据权利要求7所述的游戏地形道路生成装置,其特征在干,在所述处理模块和道路生成模块之间还包括判断模块,所述判断模块用于判断处理模块当前生成的两个边界点的向量与上次生成的两个边界点的向量是否交叉;若交叉,则所述道路生成模块根据顶点数组和顶点索引数组生成道路并进行渲染;否则,所述处理模块将根据下ー个插值点继续生成道路边界点和顶点。全文摘要
本发明公开了一种游戏地形道路生成方法和装置,对输入的关键点利用三次样条曲线函数进行插值计算得到插值点,根据插值点确定道路的边界点和顶点数据,根据顶点数据在地形上生成道路。本发明的技术方案,提供了一种在现代题材游戏中铺设道路的解决方案,使美术人员能够在地形编辑器中快速、方便的铺设道路,并且使道路边界更加清晰,使游戏中的虚拟世界更加逼真。
文档编号G06T15/04GK102663802SQ201210119508
公开日2012年9月12日 申请日期2012年4月20日 优先权日2012年4月20日
发明者张明阳 申请人:北京像素软件科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1