CN106296786B - 游戏场景可见区域的确定方法及装置 - Google Patents

游戏场景可见区域的确定方法及装置 Download PDF

Info

Publication number
CN106296786B
CN106296786B CN201610649889.5A CN201610649889A CN106296786B CN 106296786 B CN106296786 B CN 106296786B CN 201610649889 A CN201610649889 A CN 201610649889A CN 106296786 B CN106296786 B CN 106296786B
Authority
CN
China
Prior art keywords
view
scene
game
camp
region
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610649889.5A
Other languages
English (en)
Other versions
CN106296786A (zh
Inventor
刘羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201610649889.5A priority Critical patent/CN106296786B/zh
Publication of CN106296786A publication Critical patent/CN106296786A/zh
Application granted granted Critical
Publication of CN106296786B publication Critical patent/CN106296786B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种游戏场景可见区域的确定方法及装置。其中,该方法包括:根据游戏场景地图创建第一视图,其中,第一视图用于描述游戏场景地图中的视野遮挡区域;获取第一视图中场景元素的视野信息和游戏角色的可视范围;通过视野信息和可视范围确定第一视图中的可见区域。本发明解决了相关技术中的游戏场景在二维迷雾笼罩下的可见区域没有与游戏场景的地图地形相结合,降低用户游戏体验的技术问题。

Description

游戏场景可见区域的确定方法及装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种游戏场景可见区域的确定方法及装置。
背景技术
战争迷雾(Fog of War),在传统意义上是指战争中由于对敌人情报不清楚而无法确认除友军所在区域以外的大部分地区,敌人的分布及活动情况。而目前在游戏范围内,尤其是即时战略和多人在线战术竞技游戏(MOBA)中,这个词语出现的频率更高,愈发被更多的玩家所熟知。在战争迷雾的游戏中,玩家只能观察到自身基地及单位周围极小的范围,而绝大多数地图区域均被黑色迷雾覆盖。当友方单位向黑暗区域移动后,其所途径的区域会被自动开启,由此游戏地图变得逐步可见,其可以包括但不限于:该区域的地形/敌人活动情况。
目前,相关技术中关于战争迷雾的实施方案记载较少,其通常采用屏幕遮罩方式,即,将二维迷雾图片整合至二维屏幕上。图1是根据相关技术的在游戏显示画面中出现黑色迷雾的示意图。如图1所示,迷雾图案的生成通常采用地图拼接方式,根据地图大小,对地图进行网格化处理,然后再根据人物位置和视野距离计算可见区域,并将可见区域拼接成纹理,再进一步与地图底图混合。然而,虽然这种方式所采用的计算方式较为简单,计算速度相对较快。但是生成的二维迷雾缺乏立体感,过渡生硬。而且,最为重要的是,二维迷雾没有与地图地形相结合。例如:在MOBA地图中,草丛、山、树木会遮挡视野,而站在草丛中会穿透草丛视野。这些特征可以为游戏玩家提供更加全面的游戏体验,但是,在目前的二维迷雾中无法得到体现。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种游戏场景可见区域的确定方法及装置,以至少解决相关技术中的游戏场景在二维迷雾笼罩下的可见区域没有与游戏场景的地图地形相结合,降低用户游戏体验的技术问题。
根据本发明实施例的一个方面,提供了一种游戏场景可见区域的确定方法,包括:根据游戏场景地图创建第一视图,其中,第一视图用于描述游戏场景地图中的视野遮挡区域;获取第一视图中场景元素的视野信息和游戏角色的可视范围;通过视野信息和可视范围确定第一视图中的可见区域。
可选地,根据游戏场景地图创建第一视图包括:在游戏场景地图中确定视野遮挡模型所在区域;将第一视图中与视野遮挡模型所在区域的对应部分设置为第一颜色,以及将视野遮挡模型所在区域对应部分之外的其余部分设置为第二颜色。
可选地,获取场景元素的视野信息包括:获取游戏场景地图中设置的多个阵营;从多个阵营中确定场景元素的归属阵营;利用场景元素归属的部分阵营确定视野信息。
可选地,从多个阵营中确定场景元素的归属阵营包括:分别将预先为多个阵营中的每个阵营配置的十六进制参数值转化为二进制参数值;当多个阵营中存在部分或全部阵营对应的二进制参数值进行按位逻辑或运算操作得到场景元素的二进制参数值时,则将部分或全部阵营确定为场景元素的归属阵营。
可选地,获取游戏角色的可视范围包括:获取游戏角色在游戏场景地图中所处的位置;根据游戏角色的初始化视野在第一视图中确定可视范围。
可选地,在通过视野信息和可视范围确定可见区域之后,还包括:创建与第一视图相同的纹理,其中,纹理中的每个像素均包括:第一颜色通道和第二颜色通道;将相邻两次确定的可见区域交替采样至第一颜色通道和第二颜色通道,分别得到第二视图和第三视图;根据生成第二视图与生成第三视图之间的时间差进行调整,得到过渡视图;对过渡视图中的可见区域边缘进行高斯模糊处理,得到待渲染视图;将待渲染视图与游戏场景地图进行融合,得到待显示视图。
可选地,将待渲染视图与游戏场景地图进行融合,得到待显示视图包括:将待渲染视图中与当前游戏画面对应的待显示部分的空间坐标转换为屏幕坐标;将屏幕坐标转换为世界坐标;通过世界坐标获取与当前游戏画面对应的可见区域和非可见区域;将获取到的可见区域和非可见区域融合至游戏场景地图,得到待显示视图。
根据本发明实施例的另一方面,还提供了一种游戏场景可见区域的确定装置,包括:第一创建模块,用于根据游戏场景地图创建第一视图,其中,第一视图用于描述游戏场景地图中的视野遮挡区域;获取模块,用于获取第一视图中场景元素的视野信息和游戏角色的可视范围;确定模块,用于通过视野信息和可视范围确定第一视图中的可见区域。
可选地,第一创建模块包括:第一确定单元,用于在游戏场景地图中确定视野遮挡模型所在区域;设置单元,用于将第一视图中与视野遮挡模型所在区域的对应部分设置为第一颜色,以及将视野遮挡模型所在区域对应部分之外的其余部分设置为第二颜色。
可选地,获取模块包括:第一获取单元,用于获取游戏场景地图中设置的多个阵营;第二确定单元,用于从多个阵营中确定场景元素的归属阵营;第三确定单元,用于利用场景元素归属的部分阵营确定视野信息。
可选地,第二确定单元包括:转换子单元,用于分别将预先为多个阵营中的每个阵营配置的十六进制参数值转化为二进制参数值;确定子单元,用于当多个阵营中存在部分或全部阵营对应的二进制参数值进行按位逻辑或运算操作得到场景元素的二进制参数值时,则将部分或全部阵营确定为场景元素的归属阵营。
可选地,获取模块包括:第二获取单元,用于获取游戏角色在游戏场景地图中所处的位置;第四确定单元,用于根据游戏角色的初始化视野在第一视图中确定可视范围。
可选地,上述装置还包括:第二创建模块,用于创建与第一视图相同的纹理,其中,纹理中的每个像素均包括:第一颜色通道和第二颜色通道;采样模块,用于将相邻两次确定的可见区域交替采样至第一颜色通道和第二颜色通道,分别得到第二视图和第三视图;调整模块,用于根据生成第二视图与生成第三视图之间的时间差进行调整,得到过渡视图;处理模块,用于对过渡视图中的可见区域边缘进行高斯模糊处理,得到待渲染视图;融合模块,用于将待渲染视图与游戏场景地图进行融合,得到待显示视图。
可选地,融合模块包括:第一转换单元,用于将待渲染视图中与当前游戏画面对应的待显示部分的空间坐标转换为屏幕坐标;第二转换单元,用于将屏幕坐标转换为世界坐标;第三获取单元,用于通过世界坐标获取与当前游戏画面对应的可见区域和非可见区域;融合单元,用于将获取到的可见区域和非可见区域融合至游戏场景地图,得到待显示视图。
在本发明实施例中,采用根据游戏场景地图创建用于描述游戏场景地图中的视野遮挡区域的第一视图的方式,通过第一视图中场景元素的视野信息和游戏角色的可视范围确定第一视图中的可见区域,达到了在渲染游戏场景的迷雾效果的过程中充分考虑游戏场景地图地形的目的,从而实现了增强迷雾效果的立体感和真实感的技术效果,进而解决了相关技术中的游戏场景在二维迷雾笼罩下的可见区域没有与游戏场景的地图地形相结合,降低用户游戏体验的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的在游戏显示画面中出现黑色迷雾的示意图;
图2是根据本发明实施例的游戏场景可见区域的确定方法的流程图;
图3是根据本发明优选实施例的在草丛中视野穿透示意图;
图4是根据本发明实施例的游戏场景可见区域的确定装置的结构框图;
图5是根据本发明优选实施例的游戏场景可见区域的确定装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种游戏场景可见区域的确定方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的游戏场景可见区域的确定方法的流程图,如图2所示,该方法包括如下步骤:
步骤S20,根据游戏场景地图创建第一视图,其中,第一视图用于描述游戏场景地图中的视野遮挡区域;
步骤S22,获取第一视图中场景元素的视野信息和游戏角色的可视范围;
步骤S24,通过视野信息和可视范围确定第一视图中的可见区域。
通过上述步骤,采用根据游戏场景地图创建用于描述游戏场景地图中的视野遮挡区域的第一视图的方式,通过第一视图中场景元素的视野信息和游戏角色的可视范围确定第一视图中的可见区域,达到了在渲染游戏场景的迷雾效果的过程中充分考虑游戏场景地图地形的目的,从而实现了增强迷雾效果的立体感和真实感的技术效果,进而解决了相关技术中的游戏场景在二维迷雾笼罩下的可见区域没有与游戏场景的地图地形相结合,降低用户游戏体验的技术问题。
可选地,在步骤S20中,根据游戏场景地图创建第一视图可以包括以下执行步骤:
步骤S201,在游戏场景地图中确定视野遮挡模型所在区域;
步骤S202,将第一视图中与视野遮挡模型所在区域的对应部分设置为第一颜色,以及将视野遮挡模型所在区域对应部分之外的其余部分设置为第二颜色。
在优选实施例中,可以对游戏场景地图进行二维网格化处理,以一个MOBA场景地图为例,假设坐标范围为:x∈(-230,230),z∈(-140,140),忽略y值,其可以包括但不限于:道路等不遮挡视野模型,以及草丛、石头、树等视野遮挡模型,在场景中会标记出遮挡视野的区域。根据游戏场景地图的大小,可以建立N*M的二维矩阵的图形化(相当于上述第一视图),N=460,M=280,以对应场景地图;另外,再根据地图上是否位于阻挡视野区域,将上述二维矩阵赋值为0-1矩阵,其中,0表示没有阻挡,在图形化二维矩阵中采用黑色表示(相当于上述第一颜色),1表示有阻挡,在图形化二维矩阵中采用白色表示(相当于上述第二颜色)。
可选地,在步骤S22中,获取场景元素的视野信息可以包括以下执行步骤:
步骤S221,获取游戏场景地图中设置的多个阵营;
步骤S222,从多个阵营中确定场景元素的归属阵营;
步骤S223,利用场景元素归属的部分阵营确定视野信息。
假设在游戏中有三个阵营(其分别为:近卫、天灾、野怪),这里可以使用一个二维的字节(byte)数组来记录各自的视野信息,数组的尺寸与场景地图相同,同样为460*280,其中,每一个byte有8比特(bit),采用每个bit的取值来表示每个阵营是否可见,可选地,采用0表示阵营不可见,采用1表示阵营可见。因为每一个阵营需要占用1bit,所以,该数组最多可以支持8个阵营。假设每个阵营对应的值(采用十六进制表示)依次为:
近卫:0x01,即00000001;
天灾:0x02,即00000010;
野怪:0x04,即00000100;
如果数组的特定元素(相当于上述场景元素)对应的区域在近卫阵营的视野范围内,则将这个元素值加上0x01;如果该特定元素在天灾阵营的视野范围内,则将这个元素值加上0x02;如果该特定元素在野怪阵营的视野范围内,则将这个元素值加上0x04,因此,可以根据数组元素值确定其所归属的阵营视野。
可选地,在步骤S222中,从多个阵营中确定场景元素的归属阵营可以包括以下执行步骤:
步骤S2221,分别将预先为多个阵营中的每个阵营配置的十六进制参数值转化为二进制参数值;
步骤S2222,当多个阵营中存在部分或全部阵营对应的二进制参数值进行按位逻辑或运算操作得到场景元素的二进制参数值时,则将部分或全部阵营确定为场景元素的归属阵营。
假设一个数组元素的取值为0x03,首先,需要将十六进制转为二进制的结果如下:
0x03=0000000000000011
0x01=0000000000000001
0x02=0000000000000010
其次,将上述二进制结果按位执行或操作,即0|0=0,0|1=1,1|0=1,因此,0x03=0x01|0x02,其表示这个数组元素对应的场景区域可以被近卫阵营和天灾阵营看到,而不能被野怪阵营看到。
可选地,在步骤S22中,获取游戏角色的可视范围可以包括以下执行步骤:
步骤S224,获取游戏角色在游戏场景地图中所处的位置;
步骤S225,根据游戏角色的初始化视野在第一视图中确定可视范围。
每个单位都有视野范围限制,即,每个单位在没有任何遮挡情况下,能够看到的最远距离。另外,视野是可以共享的。如果一个友方单位能够看到的目标,那么该目标在所有同一阵营单位的视野内。通过显示特定游戏单位(例如:英雄)在游戏场景地图中的具***置,其可视范围由特定形状(例如:圆形)标记,结合上述第一视图,便可计算得到该特定游戏单位的可视区域。
在优选实施例中,采用Recursive shadowcasting的镜头视角(FOV)算法计算视野表,该算法将全图分为八个象限,每个象限循环递归计算,表1为场景试图中的视野结果统计表,如表1所示:
表1
····ssssss·····ss 16 @=starting cell
····ssss#··s··ss 15 #=blocking cell
···ssss#··s··ss 14 ·=non-blocking cell
···ss##··#··## 13 s=shadowed cells
····##········ 12
············ 11
··········· 10
·········· 9
········· 8
········ 7
······· 6
······ 5
····· 4
···· 3
··· 2
·· 1
@
其中,“@”表示英雄所在位置,“#”表示阻挡视野单位,数字表示行号,计算结果中的“·”表示可见单位,那么从英雄(@)的位置观察,阻挡视野单位“#”后面的位置即为不可见单位,即采用“s”表示不可见单位。而对于可见单位,则需要在视野矩阵相应的位置加上代表改阵营的值。
另外,需要说明的是,在上述场景模型中,草丛的本质可以理解为一个单面玻璃,位于草丛区域内的单位可以观察到草丛区域外的目标,但是,位于草丛区域外的单位则无法观察到草丛区域内的目标,即,草丛虽然可以阻挡视野,但是在同一片草丛区域内视野能够穿透。
因为草丛是特殊的视野遮挡单位,在草丛中视野可以穿透,所以将连续的草丛对应的格子连通拼接在一起,并生成唯一的草丛标识(ID),那么在同一个草丛ID里的视野便可以穿透。图3是根据本发明优选实施例的在草丛中视野穿透示意图。如图3所示,方格表示草丛区域,并且他们互相连通,当英雄(黑色圆点)不在草丛范围内时,如图3左侧所示,草丛区域会阻挡视野(采用阴影表示);当英雄(黑色圆点)进入草丛区域后,如图3右侧所示,便可以取消原有阴影表示的草丛视野遮挡,进而计算该片可视区域。
需要说明的是,服务端与客户端均需要采用上述视野算法,其中,服务端得到的计算结果用于判断可见性,便于可见区域(AOI)数据的传输,客户端根据视野计算结果执行操作渲染,生成迷雾效果。
可选地,在步骤S24,通过视野信息和可视范围确定可见区域之后,还可以包括以下执行步骤:
步骤S25,创建与第一视图相同的纹理,其中,纹理中的每个像素均包括:第一颜色通道和第二颜色通道;
步骤S26,将相邻两次确定的可见区域交替采样至第一颜色通道和第二颜色通道,分别得到第二视图和第三视图;
步骤S27,根据生成第二视图与生成第三视图之间的时间差进行调整,得到过渡视图;
步骤S28,对过渡视图中的可见区域边缘进行高斯模糊处理,得到待渲染视图;
步骤S29,将待渲染视图与游戏场景地图进行融合,得到待显示视图。
第二视图和第三视图分别表示迷雾计算的视野矩阵结果采样到两个通道的R通道(相当于上述第一颜色通道)与G通道(相当于上述第二颜色通道)中,采样的过程如下:创建与上述第一视图大小相同的纹理(texture),该纹理的宽度(width)为460像素,高度(height)为280像素,每个像素存储A8R8G8B8,即存在ARGB通道且每个通道存储8bit数据。
如果第一视图中的场景元素view_matrix[i][j]为可视状态,那么texture[i][j]的R通道或G通道将被赋值为255,否则被赋值为0,即第0次写入R通道中,第1次写入G通道中,第2次写入R通道(覆盖第0次的写入结果)中,第3次写入G通道(覆盖第1次的写入结果),以此类推。在优选实施过程中,可以采用第一颜色(例如:白色)表示可见视野,还可以采用第二颜色(例如:黑色)表示不可见视野。
另外,为了提升迷雾渲染的效率,可以按照每间隔预设时长(0.5s)更新一次迷雾计算,那么便会出现迷雾跳变的现象。为了解决这个问题,可以将相邻两次的计算结果写入纹理的R、G通道,然后在shader中按照时间进行差值过渡,例如:一块区域原来不可见(即全部显示为黑色),而在英雄移动后变为可见(即全部显示为透明),在这个过程中,将由黑色逐步转换为完全透明,因此,需要根据时间进行过渡,其具体计算过程如下:
float c_red=R通道的值(0-1);
float c_green=G通道的值(0-1);
float blend_val=根据时间计算融合值(0-1);
float color=(1.0-blend_val)*c_red+blend_val*c_green;
在着色器中的颜色值会映射为[0,1]区间,255对应1,0对应0,c_red,c_green为采样得到的RG通道的值,其分别代表连续两次视野计算的结果,假设c_red=0.2,c_green=1,则根据blend_val(相当于上述过渡视图)变化得到的结果如表2所示:
表2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0.2 0.28 0.36 0.44 0.52 0.6 0.68 0.76 0.84 0.92 1.0
这样便可以解决迷雾跳变问题,使得迷雾过渡平滑自然。
待渲染视图表示将过渡视图进行M×N(例如:3×3)高斯模糊处理之后得到的纹理。为达到边缘模糊过渡效果,再进一步对边缘进行高斯模糊处理,而由于迷雾纹理中大部分像素点及其周围像素点全部是可见或者不可见的,所以只需要针对边缘进行模糊处理,以提高计算率。边缘检测的方式为:
为了检测像素点texture[i][j]是否位于迷雾边缘(可见区域与不可见区域的交界处),可以选取texture[i][j]周围的texture[i+1][j],texture[i+2][j],texture[i-1][j],texture[i-2][j],texture[i][j+1],texture[i][j+2],texture[i][j-1],texture[i][j-2]八个像素点,如果这九个像素点的像素值相同,则表示像素点texture[i][j]不在迷雾边缘,否则,表示像素点texture[i][j]在迷雾边缘,需要对像素texture[i][j]进行高斯模糊处理。
需要说明的是,上述选取的texture[i][j]周围的八个像素点也可以改为选取4个点或者多于八个像素点。然而,如果选取的像素点过多则会降低检测效率;如果选取的像素点过少则会影响检测检测准确率。优选地,本发明实施例选取8个像素点,不需要进行重新采样。
假设高斯模糊参数为blurweight[9],其为长度为9的数组,分别对应上面9个像素值的权重,其中,参数具体值“9”可以根据参照模糊效果进行实时调整,模糊方程为:
blurcolor=texture[i][j]*blurweight[0];
blurcolor+=texture[i-1][j-1]*blurweight[1];
blurcolor+=texture[i-1][j]*blurweight[2];
blurcolor+=texture[i-1][j+1]*blurweight[3];
blurcolor+=texture[i][j-1]*blurweight[4];
blurcolor+=texture[i][j+1]*blurweight[5];
blurcolor+=texture[i+1][j-1]*blurweight[6];
blurcolor+=texture[i+1][j]*blurweight[7];
blurcolor+=texture[i+1][j+1]*blurweight[8];
在渲染的后处理(post process)阶段,便已经得到当前屏幕视图下渲染的三维场景,那么将迷雾纹理(相当于上述待渲染视图)与游戏场景地图融合在一起,即可得到最终的战争迷雾效果(相当于上述待显示视图)。
可选地,在步骤S29中,将待渲染视图与游戏场景地图进行融合,得到待显示视图可以包括以下执行步骤:
步骤S291,将待渲染视图中与当前游戏画面对应的待显示部分的空间坐标转换为屏幕坐标;
步骤S292,将屏幕坐标转换为世界坐标;
步骤S293,通过世界坐标获取与当前游戏画面对应的可见区域和非可见区域;
步骤S294,将获取到的可见区域和非可见区域融合至游戏场景地图,得到待显示视图。
迷雾纹理是基于整个三维场景创建的,而屏幕显示的只是场景的一小部分,所以需要计算出屏幕场景对应的迷雾纹理区域。这是相对复杂的计算过程,如果在中央处理器(CPU)中进行计算,会增加整个渲染过程的时间。为此,在优选实施例中,将该过程转到图形处理器(GPU)中进行计算,通过屏幕坐标→世界坐标→迷雾坐标的具体计算过程如下:
游戏模型最终显示到屏幕上需要经过完整的渲染流程,其中,大部分操作由显卡自动完成,主要由顶点着色器(vertex shader)和像素着色器(pixel shader)来完成。在vertex shader中,最重要的便是顶点变化,即将模型的模型空间坐标通过坐标变换继而转换成屏幕坐标,该过程被称为世界(world)-观察(view)-投影(project)矩阵变换,即采用如下公式通过矩阵变换将模型坐标(x,y,z)转换为屏幕坐标(x1,y1):
(x1,y1,z1)=(x,y,z)*world*view*project;
其中,(x1,y1)为屏幕坐标,z1为深度坐标,将其存储至深度纹理(depthtexture)中,world为世界变换矩阵,view为观察矩阵,project为投影矩阵,这些矩阵都是由游戏引擎预先设置完成的。
其次,在post process阶段,坐标的深度值通过depthtexture获得z1
再次,通过下面公式计算得到世界坐标:
float z=texture2D(depthtexture,xy).x;
float4sPos=vec4(xy*2.0-1.0,z,1.0);
float4pos=inv_proj_view_mat*sPos;
其中,texture2D表示采样函数,xy表示屏幕坐标,depthtexture为深度纹理,sPos为加入深度屏幕坐标,根据上述公式可知,由屏幕坐标得到世界坐标,需要乘以投影-观察矩阵的逆(inv_proj_view_mat),即为:
(x1,y1,z1)=(x,y,z)*world*view*project;
(x1,y1,z1)*inv_proj_view=(x,y,z)*world*view*project*inv_proj_view;
(x1,y1,z1)*inv_proj_view=(x,y,z)*world;
其中,pos=(x,y,z)*world即为世界坐标。然后通过:
然后,再通过以下公式来获得屏幕坐标对应的迷雾坐标:
float x=(pos.x+width/2)/width;
float y=(pos.y+height/2)/height;
其中,width为场景宽度460,height为场景高度280。
由此,便可以获得了屏幕坐标对应的迷雾坐标,进而将经过高斯模糊处理的迷雾纹理与场景图相互融合,得到最终的游戏显示画面。
根据本发明实施例,提供了一种游戏场景可见区域的确定装置的实施例。图4是根据本发明实施例的游戏场景可见区域的确定装置的结构框图,如图4所示,该装置可以包括:第一创建模块10,用于根据游戏场景地图创建第一视图,其中,第一视图用于描述游戏场景地图中的视野遮挡区域;获取模块20,用于获取第一视图中场景元素的视野信息和游戏角色的可视范围;确定模块30,用于通过视野信息和可视范围确定第一视图中的可见区域。
可选地,图5是根据本发明优选实施例的游戏场景可见区域的确定装置的结构框图,如图5所示,第一创建模块10可以包括:第一确定单元100,用于在游戏场景地图中确定视野遮挡模型所在区域;设置单元102,用于将第一视图中与视野遮挡模型所在区域的对应部分设置为第一颜色,以及将视野遮挡模型所在区域对应部分之外的其余部分设置为第二颜色。
可选地,如图5所示,获取模块20可以包括:第一获取单元200,用于获取游戏场景地图中设置的多个阵营;第二确定单元202,用于从多个阵营中确定场景元素的归属阵营;第三确定单元204,用于利用场景元素归属的部分阵营确定视野信息。
可选地,第二确定单元202可以包括:转换子单元(图中未示出),用于分别将预先为多个阵营中的每个阵营配置的十六进制参数值转化为二进制参数值;确定子单元(图中未示出),用于当多个阵营中存在部分或全部阵营对应的二进制参数值进行按位逻辑或运算操作得到场景元素的二进制参数值时,则将部分或全部阵营确定为场景元素的归属阵营。
可选地,获取模块20可以包括:第二获取单元206,用于获取游戏角色在游戏场景地图中所处的位置;第四确定单元208,用于根据游戏角色的初始化视野在第一视图中确定可视范围。
可选地,如图5所示,上述装置还可以包括:第二创建模块40,用于创建与第一视图相同的纹理,其中,纹理中的每个像素均包括:第一颜色通道和第二颜色通道;采样模块50,用于将相邻两次确定的可见区域交替采样至第一颜色通道和第二颜色通道,分别得到第二视图和第三视图;调整模块60,用于根据生成第二视图与生成第三视图之间的时间差进行调整,得到过渡视图;处理模块70,用于对过渡视图中的可见区域边缘进行高斯模糊处理,得到待渲染视图;融合模块80,用于将待渲染视图与游戏场景地图进行融合,得到待显示视图。
可选地,如图5所示,融合模块80包括:第一转换单元800,用于将待渲染视图中与当前游戏画面对应的待显示部分的空间坐标转换为屏幕坐标;第二转换单元802,用于将屏幕坐标转换为世界坐标;第三获取单元804,用于通过世界坐标获取与当前游戏画面对应的可见区域和非可见区域;融合单元806,用于将获取到的可见区域和非可见区域融合至游戏场景地图,得到待显示视图。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种游戏场景可见区域的确定方法,其特征在于,包括:
根据游戏场景地图创建第一视图,其中,所述第一视图用于描述所述游戏场景地图中的视野遮挡区域;
获取所述第一视图中场景元素的视野信息和游戏角色的可视范围;
通过所述视野信息和所述可视范围确定所述第一视图中的可见区域;
其中,在通过所述视野信息和所述可视范围确定所述可见区域之后,还包括:创建与所述第一视图相同的纹理,其中,所述纹理中的每个像素均包括:第一颜色通道和第二颜色通道;将相邻两次确定的可见区域交替采样至所述第一颜色通道和所述第二颜色通道,分别得到第二视图和第三视图;根据生成所述第二视图与生成所述第三视图之间的时间差进行调整,得到过渡视图;对所述过渡视图中的可见区域边缘进行高斯模糊处理,得到待渲染视图;将所述待渲染视图与所述游戏场景地图进行融合,得到待显示视图。
2.根据权利要求1所述的方法,其特征在于,根据所述游戏场景地图创建所述第一视图包括:
在所述游戏场景地图中确定视野遮挡模型所在区域;
将所述第一视图中与视野遮挡模型所在区域的对应部分设置为第一颜色,以及将视野遮挡模型所在区域对应部分之外的其余部分设置为第二颜色。
3.根据权利要求1所述的方法,其特征在于,获取所述场景元素的所述视野信息包括:
获取所述游戏场景地图中设置的多个阵营;
从所述多个阵营中确定所述场景元素的归属阵营;
利用所述场景元素归属的部分阵营确定所述视野信息。
4.根据权利要求3所述的方法,其特征在于,从所述多个阵营中确定所述场景元素的归属阵营包括:
分别将预先为所述多个阵营中的每个阵营配置的十六进制参数值转化为二进制参数值;
当所述多个阵营中存在部分或全部阵营对应的二进制参数值进行按位逻辑或运算操作得到所述场景元素的二进制参数值时,则将所述部分或全部阵营确定为所述场景元素的归属阵营。
5.根据权利要求1所述的方法,其特征在于,获取所述游戏角色的所述可视范围包括:
获取所述游戏角色在所述游戏场景地图中所处的位置;
根据所述游戏角色的初始化视野在所述第一视图中确定所述可视范围。
6.根据权利要求1所述的方法,其特征在于,将所述待渲染视图与所述游戏场景地图进行融合,得到所述待显示视图包括:
将所述待渲染视图中与当前游戏画面对应的待显示部分的空间坐标转换为屏幕坐标;
将所述屏幕坐标转换为世界坐标;
通过所述世界坐标获取与所述当前游戏画面对应的可见区域和非可见区域;
将获取到的可见区域和非可见区域融合至所述游戏场景地图,得到所述待显示视图。
7.一种游戏场景可见区域的确定装置,其特征在于,包括:
第一创建模块,用于根据游戏场景地图创建第一视图,其中,所述第一视图用于描述所述游戏场景地图中的视野遮挡区域;
获取模块,用于获取所述第一视图中场景元素的视野信息和游戏角色的可视范围;
确定模块,用于通过所述视野信息和所述可视范围确定所述第一视图中的可见区域;
其中,所述装置还包括:第二创建模块,用于创建与所述第一视图相同的纹理,其中,所述纹理中的每个像素均包括:第一颜色通道和第二颜色通道;采样模块,用于将相邻两次确定的可见区域交替采样至所述第一颜色通道和所述第二颜色通道,分别得到第二视图和第三视图;调整模块,用于根据生成所述第二视图与生成所述第三视图之间的时间差进行调整,得到过渡视图;处理模块,用于对所述过渡视图中的可见区域边缘进行高斯模糊处理,得到待渲染视图;融合模块,用于将所述待渲染视图与所述游戏场景地图进行融合,得到待显示视图。
8.根据权利要求7所述的装置,其特征在于,所述第一创建模块包括:
第一确定单元,用于在所述游戏场景地图中确定视野遮挡模型所在区域;
设置单元,用于将所述第一视图中与视野遮挡模型所在区域的对应部分设置为第一颜色,以及将视野遮挡模型所在区域对应部分之外的其余部分设置为第二颜色。
9.根据权利要求7所述的装置,其特征在于,所述获取模块包括:
第一获取单元,用于获取所述游戏场景地图中设置的多个阵营;
第二确定单元,用于从所述多个阵营中确定所述场景元素的归属阵营;
第三确定单元,用于利用所述场景元素归属的部分阵营确定所述视野信息。
10.根据权利要求9所述的装置,其特征在于,所述第二确定单元包括:
转换子单元,用于分别将预先为所述多个阵营中的每个阵营配置的十六进制参数值转化为二进制参数值;
确定子单元,用于当所述多个阵营中存在部分或全部阵营对应的二进制参数值进行按位逻辑或运算操作得到所述场景元素的二进制参数值时,则将所述部分或全部阵营确定为所述场景元素的归属阵营。
11.根据权利要求7所述的装置,其特征在于,所述获取模块包括:
第二获取单元,用于获取所述游戏角色在所述游戏场景地图中所处的位置;
第四确定单元,用于根据所述游戏角色的初始化视野在所述第一视图中确定所述可视范围。
12.根据权利要求7所述的装置,其特征在于,所述融合模块包括:
第一转换单元,用于将所述待渲染视图中与当前游戏画面对应的待显示部分的空间坐标转换为屏幕坐标;
第二转换单元,用于将所述屏幕坐标转换为世界坐标;
第三获取单元,用于通过所述世界坐标获取与所述当前游戏画面对应的可见区域和非可见区域;
融合单元,用于将获取到的可见区域和非可见区域融合至所述游戏场景地图,得到所述待显示视图。
CN201610649889.5A 2016-08-09 2016-08-09 游戏场景可见区域的确定方法及装置 Active CN106296786B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610649889.5A CN106296786B (zh) 2016-08-09 2016-08-09 游戏场景可见区域的确定方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610649889.5A CN106296786B (zh) 2016-08-09 2016-08-09 游戏场景可见区域的确定方法及装置

Publications (2)

Publication Number Publication Date
CN106296786A CN106296786A (zh) 2017-01-04
CN106296786B true CN106296786B (zh) 2019-02-15

Family

ID=57667535

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610649889.5A Active CN106296786B (zh) 2016-08-09 2016-08-09 游戏场景可见区域的确定方法及装置

Country Status (1)

Country Link
CN (1) CN106296786B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106730844B (zh) * 2017-01-10 2019-09-24 网易(杭州)网络有限公司 一种场景运行时间测试方法及装置
CN108905212B (zh) * 2017-03-27 2019-12-31 网易(杭州)网络有限公司 游戏画面的显示控制方法及装置、存储介质、电子设备
CN107358579B (zh) * 2017-06-05 2020-10-02 北京印刷学院 一种游戏战争迷雾实现方法
CN107198876B (zh) * 2017-06-07 2021-02-05 北京小鸟看看科技有限公司 游戏场景的加载方法及装置
CN107469351B (zh) * 2017-06-20 2021-02-09 网易(杭州)网络有限公司 游戏画面显示方法及装置、存储介质、电子设备
CN109658495B (zh) * 2017-10-10 2022-09-20 腾讯科技(深圳)有限公司 环境光遮蔽效果的渲染方法、装置及电子设备
CN107875630B (zh) * 2017-11-17 2020-11-24 杭州电魂网络科技股份有限公司 渲染区域确定方法及装置
CN108031117B (zh) * 2017-12-06 2021-03-16 北京像素软件科技股份有限公司 区域雾效实现方法及装置
CN108196765A (zh) * 2017-12-13 2018-06-22 网易(杭州)网络有限公司 显示控制方法、电子设备及存储介质
CN108257103B (zh) * 2018-01-25 2020-08-25 网易(杭州)网络有限公司 游戏场景的遮挡剔除方法、装置、处理器及终端
CN108389245B (zh) * 2018-02-13 2022-11-04 鲸彩在线科技(大连)有限公司 动画场景的渲染方法、装置、电子设备和可读存储介质
GB2571306A (en) * 2018-02-23 2019-08-28 Sony Interactive Entertainment Europe Ltd Video recording and playback systems and methods
CN109360263B (zh) * 2018-10-09 2019-07-19 温州大学 一种面向资源受限移动设备的实时软阴影生成方法及装置
CN111841010A (zh) * 2019-04-26 2020-10-30 网易(杭州)网络有限公司 城市路网的生成方法、装置、存储介质、处理器及终端
CN110251940A (zh) * 2019-07-10 2019-09-20 网易(杭州)网络有限公司 一种游戏画面显示的方法和装置
CN110415320A (zh) * 2019-07-25 2019-11-05 上海米哈游网络科技股份有限公司 一种场景预烘焙方法、装置、存储介质及电子设备
CN111111172B (zh) * 2019-12-02 2023-05-26 网易(杭州)网络有限公司 游戏场景的地表处理方法、装置、处理器及电子装置
CN111111189A (zh) * 2019-12-16 2020-05-08 北京像素软件科技股份有限公司 游戏aoi的管理方法、装置及电子设备
CN112516592A (zh) * 2020-12-15 2021-03-19 网易(杭州)网络有限公司 游戏中的视野模式处理方法、装置、存储介质及终端设备
CN112822397B (zh) * 2020-12-31 2022-07-05 上海米哈游天命科技有限公司 游戏画面的拍摄方法、装置、设备及存储介质
CN112717390A (zh) * 2021-01-12 2021-04-30 腾讯科技(深圳)有限公司 虚拟场景显示方法、装置、设备以及存储介质
CN113192208A (zh) * 2021-04-08 2021-07-30 北京鼎联网络科技有限公司 三维漫游方法及装置
CN113827960B (zh) * 2021-09-01 2023-06-02 广州趣丸网络科技有限公司 一种游戏视野生成方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677395A (zh) * 2015-12-28 2016-06-15 珠海金山网络游戏科技有限公司 一种游戏场景像素消隐的***和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4671196B2 (ja) * 2006-10-31 2011-04-13 株式会社スクウェア・エニックス ネットワークゲームシステム、ネットワークゲーム用端末装置、ゲーム画面の表示方法、並びにプログラム及び記録媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677395A (zh) * 2015-12-28 2016-06-15 珠海金山网络游戏科技有限公司 一种游戏场景像素消隐的***和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于HTML5的即时战略游戏的设计与实现;杨元超;《中国优秀硕士学位论文全文数据库信息科技辑》;20160315(第03期);第I138-5642页

Also Published As

Publication number Publication date
CN106296786A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN106296786B (zh) 游戏场景可见区域的确定方法及装置
CN106780642B (zh) 迷雾遮罩贴图的生成方法及装置
US20190299097A1 (en) Method and apparatus for enhanced graphics rendering in a video game environment
CN106157354B (zh) 一种三维场景切换方法及***
CN109685909A (zh) 图像的显示方法、装置、存储介质和电子装置
CN107154032B (zh) 一种图像数据处理方法和装置
CN107638690B (zh) 增强现实的实现方法、装置、服务器及介质
CN106898051A (zh) 一种虚拟角色的视野剔除方法和服务器
CN105913476B (zh) 植被图像的渲染方法和装置
CN108421257A (zh) 不可见元素的确定方法、装置、存储介质和电子装置
CN112102492B (zh) 游戏资源的制作方法及装置、存储介质、终端
WO2016098690A1 (ja) テクスチャ生成システム
CN112669448A (zh) 基于三维重建技术的虚拟数据集开发方法、***及存储介质
CN112675545A (zh) 地表仿真画面的显示方法和装置、存储介质及电子设备
CN113457133B (zh) 游戏显示方法、装置、电子设备及存储介质
CN108230430A (zh) 云层遮罩图的处理方法及装置
CN112200899B (zh) 一种采用实例化渲染实现模型业务交互的方法
CN116402931A (zh) 体积渲染方法、装置、计算机设备和计算机可读存储介质
Whelan et al. Formulated silhouettes for sketching terrain
CN115272628A (zh) 一种三维模型的渲染方法、装置、计算机设备及存储介质
CN113313796B (zh) 场景生成方法、装置、计算机设备和存储介质
CN112037292B (zh) 天气***的生成方法及装置、设备
CN111462343B (zh) 数据处理方法、装置、电子设备及存储介质
CN112791396B (zh) 一种拍摄画面的生成方法、装置、电子设备及存储介质
CN116832434B (zh) 一种游戏场景中虚拟天空的渲染方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant