一种在游戏场景中显示天空球的方法和装置制造方法及图纸

技术编号:14490991 阅读:35 留言:0更新日期:2017-01-29 13:47
本发明专利技术实施方式公开了一种在游戏场景中显示天空球的方法和装置。该方法包括:基于预定的游戏视野范围确定天空球半径,并建立顶点位于由该天空球半径所确定的球面上的正二十面体模型;对于所述正二十面体模型的每一个三角形执行多次递归细分以形成球体模型,其中每次递归细分包括:在三角形的每条边的中点处拆分,并将拆分点的平面坐标映射到球面上;针对球体模型执行纹理贴图以生成天空球,并在屏幕中透视投影展示所述天空球。本发明专利技术实施方式基于正二十面体递归细分构成球体模型,使之有均匀纹理密度,在纹理尺寸上节省更多的消耗,可以降低显存空间。

【技术实现步骤摘要】

本专利技术涉及图形
,特别涉及一种在游戏场景中显示天空球的方法和装置
技术介绍
随着计算机软、硬件突飞猛进的发展,计算机图形学在各个行业的应用也得到迅速普及和深入。目前,计算机图形学己进入三维时代,三维图形在人们周围无所不在。科学计算可视化、计算机动画和虚拟现实已经成为近年来计算机图形学的三大热门话题,而这三大热门话题的技术核心均为三维图形。天空是当前图形引擎场景制作中重要的一部分,通过它可以表达时间,天气,塑造气氛等等。目前,显示天空的方法包括天空盒和天空球两种。传统的天空球采用经纬线划分方法,有南北极和赤道部分。然而,在经纬线划分方法中,在对应纹理贴图时,整个球面的纹理密度是不统一的。在南北极部分纹理密度过大,会有堆积现象,在赤道部分纹理密度过小,会有拉伸现象。图1为现有技术中基于经纬线划分方法生成的球体模型。由图1可见,由于纹理密度不均匀,因此造成显卡负载过大。
技术实现思路
有鉴于此,本专利技术的目的是提供一种在游戏场景中显示天空球的方法和装置,提高纹理密度均匀度,从而降低显卡负载。一种在游戏场景中显示天空球的方法,该方法包括:基于预定的游戏视野范围确定天空球半径,并建立顶点位于由该天空球半径所确定的球面上的正二十面体模型;对于所述正二十面体模型的每一个三角形执行多次递归细分以形成球体模型,其中每次递归细分包括:在三角形的每条边的中点处拆分,并将拆分点的平面坐标映射到球面上;针对球体模型执行纹理贴图以生成天空球,并在屏幕中透视投影展示所述天空球。在一个实施方式中,所述多次递归细分为:四次递归细分。在一个实施方式中,所述在三角形的每条边的中点处拆分,并将拆分点的平面坐标映射到球面上包括:对于每个三角形,在每条边的中点处拆分并计算中点的平面坐标,并将平面坐标所表示的向量进行单位化;将所述向量乘以天空球半径,将平面坐标作为顶点映射到基于所述天空球半径确定的球面上。在一个实施方式中,针对球体模型执行纹理贴图以生成天空球包括:针对球体模型执行512×512分辨率的纹理贴图以生成天空球。一种在游戏场景中显示天空球的装置,该装置包括:模型建立模块,用于基于预定的游戏视野范围确定天空球半径,并建立顶点位于由该天空球半径所确定的球面上的正二十面体模型;递归模块,用于对于所述正二十面体模型的每一个三角形执行多次递归细分以形成球体模型,其中每次递归细分包括:在三角形的每条边的中点处拆分,并将拆分点的平面坐标映射到球面上;展示模块,用于针对球体模型执行纹理贴图以生成天空球,并在屏幕中透视投影展示所述天空球。在一个实施方式中,所述多次递归细分为:四次递归细分。在一个实施方式中,递归模块,用于对于每个三角形,在每条边的中点处拆分并计算中点的平面坐标,并将平面坐标所表示的向量进行单位化;将所述向量乘以天空球半径,将平面坐标作为顶点映射到基于所述天空球半径确定的球面上。在一个实施方式中,展示模块,用于针对球体模型执行512×512分辨率的纹理贴图以生成天空球。从上述技术方案可以看出,在本专利技术实施方式中:基于预定的游戏视野范围确定天空球半径,并建立顶点位于由该天空球半径所确定的球面上的正二十面体模型;对于所述正二十面体模型的每一个三角形执行多次递归细分以形成球体模型,其中每次递归细分包括:在三角形的每条边的中点处拆分,并将拆分点的平面坐标映射到球面上;针对球体模型执行纹理贴图以生成天空球,并在屏幕中透视投影展示所述天空球。可见,本专利技术实施方式基于正二十面体递归细分构成球体模型,使之有均匀纹理密度,在纹理尺寸上节省更多的消耗,可以降低显存空间。附图说明以下附图仅对本专利技术做示意性说明和解释,并不限定本专利技术的范围。图1为现有技术中经纬线划分法生成的球体模型示意图。图2为根据本专利技术在游戏场景中显示天空球的方法流程图。图3为根据本专利技术正二十面体模型的示意图。图4为根据本专利技术对三角形的递归细分示意图。图5为根据本专利技术基于正二十面体递归划拆分的球体模型示意图。图6为根据本专利技术在游戏场景中显示天空球的装置结构图。具体实施方式为了对专利技术的技术特征、目的和效果有更加清楚的理解,现对照附图说明本专利技术的具体实施方式,在各图中相同的标号表示相同的部分。在本文中,“示意性”表示“充当实例、例子或说明”,不应将在本文中被描述为“示意性”的任何图示、实施方式解释为一种更优选的或更具优点的技术方案。为使图面简洁,各图中的只示意性地表示出了与本专利技术相关部分,而并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在一些大型的3D游戏中,有几个必不可少的元素,比如说天空和大地,这些元素的存在可以增加3D场景的真实感。天空其实就是一个很大的容器,把整个世界都罩在下面,大地就是一个平面,场景中所有的元素都显示在二者所包围的空间中。三维天空的技术主要包括三种类型:一种是平面型天空(SkyPlane),仅用一个平面盖在所有元素的头顶。这种技术有点弱,很容易被识破,真实感也很低,有时还需要用雾来覆盖远景以增加真实感,但是效果和技术含量依然很低。一种是天空穹庐(SkyDome),有时也称为天空球,即放到场景元素头顶上的是一个曲面,通常都会为一个半球,这种技术的真实性和立体感强;另外一种是天空盒子(SkyBox),即把天空做成一个立方体,所有的元素都罩在其下。现有技术的天空球采用经纬线划分方法。然而,在经纬线划分方法中,在对应纹理贴图时,整个球面的纹理密度是不统一的。在南北极部分纹理密度过大,会有堆积现象,在赤道部分纹理密度过小,会有拉伸现象。在本专利技术实施方式中,基于正二十面体递归细分构成球体模型,使之有均匀纹理密度。图2为根据本专利技术在游戏场景中显示天空球的方法流程图。如图2所示,该方法包括:步骤201:基于预定的游戏视野范围确定天空球半径,并建立顶点位于由该天空球半径所确定的球面上的正二十面体模型。在这里,首先基于预定的游戏视野范围确定天空球半径,而且可以建立顶点位于由该天空球半径所确定的球面上的正二十面体模型。图3为根据本专利技术正二十面体模型的示意图。如图3所示,正二十面体模型是由20个等边三角形所组成的正多面体,共有12个顶点,30条棱,20个面。步骤202:对于正二十面体模型的每一个三角形执行多次递归细分以形成球体模型,其中每次递归细分包括:在三角形的每条边的中点处拆分,并将拆分点的平面坐标映射到球面上。在这里,对于对正二十面体模型中的每一个等边三角形,在每条边的中点之间拆分,最后把新生成的顶点坐标所表示的向量进行单位化,将此向量乘以球的半径,将新生成的顶点坐标映射球面上。图4为根据本专利技术对三角形的递归细分示意图。如图4所示,以正二十面体模型中的一个三角形P0P1P2为例进行说明,三角形P0P1P2各个顶点的坐标分别为P0、P1和P2。该三角形P0P1P2具有三条等边,分别为P0P1、P0P2和P1P2。第一次递归细分包括:首先,计算三角形P0P1P2的三条等边的各自中点坐标。具体地,计算等边P0P1的中点坐标,假定中点为P01,则P01=(P0+P1)/2;计算等边P0P2的中点坐标,假定中点为P20,则P20=(P0+P2)/2;计算等边P1P2的中点坐标,假定中本文档来自技高网...
一种在游戏场景中显示天空球的方法和装置

【技术保护点】
一种在游戏场景中显示天空球的方法,其特征在于,该方法包括:基于预定的游戏视野范围确定天空球半径,并建立顶点位于由该天空球半径所确定的球面上的正二十面体模型;对于所述正二十面体模型的每一个三角形执行多次递归细分以形成球体模型,其中每次递归细分包括:在三角形的每条边的中点处拆分,并将拆分点的平面坐标映射到球面上;针对球体模型执行纹理贴图以生成天空球,并在屏幕中透视投影展示所述天空球。

【技术特征摘要】
1.一种在游戏场景中显示天空球的方法,其特征在于,该方法包括:基于预定的游戏视野范围确定天空球半径,并建立顶点位于由该天空球半径所确定的球面上的正二十面体模型;对于所述正二十面体模型的每一个三角形执行多次递归细分以形成球体模型,其中每次递归细分包括:在三角形的每条边的中点处拆分,并将拆分点的平面坐标映射到球面上;针对球体模型执行纹理贴图以生成天空球,并在屏幕中透视投影展示所述天空球。2.根据权利要求1所述的在游戏场景中显示天空球的方法,其特征在于,所述多次递归细分为:四次递归细分。3.根据权利要求1所述的在游戏场景中显示天空球的方法,其特征在于,所述在三角形的每条边的中点处拆分,并将拆分点的平面坐标映射到球面上包括:对于每个三角形,在每条边的中点处拆分并计算中点的平面坐标,并将平面坐标所表示的向量进行单位化;将所述向量乘以天空球半径,将平面坐标作为顶点映射到基于所述天空球半径确定的球面上。4.根据权利要求1所述的在游戏场景中显示天空球的方法,其特征在于,针对球体模型执行纹理贴图以生成天空球包括:针对球体模型执行512×512分辨率的纹...

【专利技术属性】
技术研发人员:苗雨壮
申请(专利权)人:北京像素软件科技股份有限公司
类型:发明
国别省市:北京;11

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

1