The invention discloses a method for realizing a game in the fog of war, each according to the size of the obstacle to the addition of the box Collider, with the vision of the unit (as the center, game player) sight radius as the radius of physical obstacle detection, the detected obstacle point coordinates and view boundary sampling point coordinates are saved to a in the array, the array of point and point game player composed of triangles, these multiple triangle sum on the composition of the field in the game player, will be calculated for each unit of vision scope and vision of grid rendering to write 2D texture mapping, the fog effect. The invention can be applied to most game maps, and does not consume more game performance at the same time.
【技术实现步骤摘要】
一种游戏战争迷雾实现方法
本专利技术涉及游戏
,具体涉及一种游戏战争迷雾实现方法。
技术介绍
战争迷雾(FogofWar),在传统意义上是指战争中由于对敌人情报不清楚而无法确认除友军所在以外的大部分地区,敌人的分布及活动情况。而目前在游戏范围内,尤其是即时战略类游戏中,这个词语出现的频率更高一些也更被多数人所熟悉。它可以在友方单位不在的情况下,让该区域视野丢失,这可以大大加强游戏的趣味性和可玩性,例如可以偷袭,埋伏敌方单位。现在战争迷雾实现主要依靠两种方法来实现,一种是将地图以格子为单位绘制,将地图网格存储为二维数组,运用LOS视线检测算法计算出可见格子和不可见格子。通过已经保存的地图二位数组数据,把这些信息写入一张2D纹理,然后把这个纹理投影到整个地图中,对于多余的锯齿,在shader中针对视野内和视野外使用不同的着色方式,达到模糊效果。这种方式存在一定局限性,地图必须是基于格子形成的拼接地图,这样不能用于大多数游戏地图当中。另一种则采用射线检测方式来探测出视线范围内障碍物,把相邻的射线命中点和原点连成三角形,最后组成一个网格模型,该网格形成的区域就是可视范围。通过shader对该区域进行渲染就能达到迷雾效果。这种做法虽然视觉效果好,但是它的效率非常慢,因为它需要大量射线检测,尤其是对于射线探测遇到被探测物边界时候,需要在这一块区域,运用密集的射线进行迭代探测,以便找到足够精确的交点,再加上对探测交点进行实时组装网格,这些都是低效率的操作。所以它的实用性虽然强,但是效率不高。当人物在移动时候,视野范围都发生了变化,这需要重新计算可视区域,如何大量单 ...
【技术保护点】
一种游戏战争迷雾实现方法,其特征在于,包括如下步骤:S1在地图上找到所有可能阻挡视野的对象,依次给每个对象加上一个盒子碰撞检测器,盒子碰撞器大小和物体本身的大小一致;S2将拥有视野的玩家放入到地图当中,首先以玩家为中心,以玩家的视野半径为半径进行圆形物理碰撞检测;S3记下碰撞检测到盒子碰撞器的坐标,确定每个盒子碰撞器四个顶点位置,创建一个坐标数组,将每个盒子碰撞器四个顶点坐标存入到这个坐标数组中;S4再以玩家为中心,以玩家的视野半径为半径生成一个圆,在这个圆上按照一定间隔取边界点,将这些取到的边界点存入所述坐标数组中;S5将玩家探测得到坐标数组中的每个点和该玩家所在坐标点之间连线与玩家x坐标轴正方向之间夹角计算出来,将这些点按照夹角大小顺序进行排序,存入到排序坐标点集合中;S6每次取排序坐标点集合中相邻两个点和玩家所在坐标点,这三个点形成一个三角形,将每次形成的三角形的顶点存入到三角形顶点数组当中;S7创建一个网格模型,网格模型顶点参数由排序坐标点集合组成,网格模型中三角形顶点集合由三角形顶点数组提供,这样形成了一个新的网格模型,网格模型范围就是迷雾范围;S8将得到的新的网格模型渲染到 ...
【技术特征摘要】
1.一种游戏战争迷雾实现方法,其特征在于,包括如下步骤:S1在地图上找到所有可能阻挡视野的对象,依次给每个对象加上一个盒子碰撞检测器,盒子碰撞器大小和物体本身的大小一致;S2将拥有视野的玩家放入到地图当中,首先以玩家为中心,以玩家的视野半径为半径进行圆形物理碰撞检测;S3记下碰撞检测到盒子碰撞器的坐标,确定每个盒子碰撞器四个顶点位置,创建一个坐标数组,将每个盒子碰撞器四个顶点坐标存入到这个坐标数组中;S4再以玩家为中心,以玩家的视野半径为半径生成一个圆,在这个圆上按照一定间隔取边界点,将这些取到的边界点存入所述坐标数组中;S5将玩家探测得到坐标数组中的每个点和该玩家所在坐标点之间连线与玩家x坐标轴正方向之间夹角计算出来,将这些点按照夹角大小顺序进行排序,存入到排序坐标点集合中;S6每次取排序坐标点集合中相邻两个点和玩家所在坐标点,这三个点形成一个三角形,将每次形成的三角形的顶点存入到三角形顶点数组当中;S7创建一个网格模型,网格模型顶点参数由排序坐标点集合组成,网格模型中三角形顶点集合由三角形顶点数组提供,这样形成了一个新的网格模型,网格模型范围就是迷雾范围;S8将得到的新的网格模型渲染到一张2D纹理贴图中得到渲染贴图,除网格以外部分alpha值都为1,运用shader着色器编程,将这张渲染贴图的alpha通道和游戏画面alpha通道混合,就可以实现迷雾效果。2.根据权利要求1所述的游戏战争迷雾实现方法,其特征在于,由于不同时刻玩家位置会发生改变,从而视野范围会发生改变,因此迷...
【专利技术属性】
技术研发人员:杨鹏,陆利坤,李业丽,
申请(专利权)人:北京印刷学院,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。