一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种3D游戏对象简略信息的显示方法及系统与流程

2022-09-14 22:06:57 来源:中国专利 TAG:

一种3d游戏对象简略信息的显示方法及系统
技术领域
1.本发明属于游戏渲染领域,具体涉及一种3d游戏对象简略信息的显示方法及系统。


背景技术:

2.当前游戏领域显示游戏对象简略信息的主要方式是通过在游戏模型上设置一个虚拟点,当要显示游戏对象的名称、血条和状态图标等简略信息时将进行以下几个步骤,1.根据角色虚拟点的三维世界坐标和当前的摄像机设置计算出该点在游戏窗口中的窗口坐标值,该坐标值作为该对象简略信息显示系统的坐标原点;2.结合对象简略信息系统的显示设计构造网格顶点数据并将其写入到顶点缓冲区,同时也生成相应的材质数据;3.将顶点缓冲区和材质属性更新到渲染硬件对应的渲染状态然后提交渲染指令。渲染硬件执行一次渲染指令通常是将指定顶点缓冲区中的网格数据和其他一些渲染状态和参数(如图元类型、顶点格式、着色模式、纹理采样模式、顶点着色程序和像素着色程序等)输出像素到显示缓冲区。渲染引擎最终渲染一个物体就是更新渲染硬件的渲染状态然后提交渲染操作指令这么一个循环。相对来说渲染状态的切换和缓冲区的更新是一种非常耗时的操作指令,游戏引擎设计中必须尽量减少渲染状态的切换和缓冲区的更新操作。传统方式显示游戏对象简略信息会对每一个对象的每一种显示信息执行一次顶点缓冲区更新、顶点缓冲区状态设置、纹理状态设置和一个渲染指令,这样在同屏显示玩家数量增加后引起了大量的渲染状态切换和渲染指令操作,严重降低了渲染硬件的渲染能力从而导致游戏帧率的下降。


技术实现要素:

3.本发明解决在同屏显示游戏对象数量很多的情况下因显示对象简略信息引起渲染状态切换操作和渲染提交次数过多导致游戏引擎渲染性能急剧下降,降低游戏显示帧率的问题,具体方案如下:
4.一种3d游戏对象简略信息的显示方法,包括以下步骤:
5.s1:对象获取模块获取显示对象并生成列表,并遍历对象列表,获取每个对象用于显示简略信息的虚拟点世界坐标并将其转换到当前摄像机坐标系坐标,将获取对象和摄像机坐标系坐标值作为数据项存入列表,生成数据列表,并对生成的数据列表按坐标值的深度值进行排序;
6.s2:顶点缓冲区管理模块清空顶点缓冲区,并遍历s1中排序后的数据列表,通过对象引用获取对象所有需要显示的简略信息;
7.s3:如果s2中显示简略信息是文字纹理缓存数据,则文字纹理数据缓存模块从文字纹理缓存数据获取纹理坐标,计算文字顶点坐标值,生成文字渲染顶点数据,将生成的顶点数据写入到顶点缓冲区管理模块;
8.s4:如果s2中显示简略信息是图标集纹理数据,则图标集纹理数据模块从图标集纹理数据获取纹理坐标,计算图片顶点坐标值,生成图片渲染顶点数据,将生成的顶点数据
写入到顶点缓冲区管理模块;
9.s5:顶点缓冲区管理模块根据文字渲染顶点数据设置文字纹理渲染状态,根据图片渲染顶点数据设置图集纹理渲染状态;
10.s6:渲染模块对顶点缓冲区管理模块中的文字纹理、图集纹理进行渲染。
11.进一步地,步骤s1中:
12.对象获取模块生成当前游戏窗口中所有可见对象且有信息需要显示的对象列表,对象获取模块遍历所有在客户端活动的游戏对象,如果该对象在可见范围内且有信息需要显示,获取每个对象用于显示简略信息的虚拟点世界坐标并将其转换到当前摄像机坐标系坐标,将获取对象和摄像机坐标系坐标值作为数据项存入列表,生成数据列表;
13.进一步地,步骤s2中:
14.顶点缓冲区管理模块用于管理在s1中使用的顶点缓冲区,在游戏启动时创建一个默认大小的顶点缓冲区并设置好扩展策略,当显示元素增多到当前顶点缓冲区不能满足的情况下销毁当前缓冲区根据扩展策略重新创建一个更大的顶点缓冲区。
15.进一步地,步骤s3中:
16.文字纹理数据缓存模块首先根据文字的编码值去缓存数据,获取该文字占用的纹理坐标,如果获取失败则使用字库渲染程序生成文字像素图片,再将像素数据写入到文字缓存纹理并根据写入位置计算出纹理坐标,最后将文字编码值作为键值,映射纹理坐标,生成文字渲染顶点数据,将生成的顶点数据写入到顶点缓冲区管理模块;
17.进一步地,步骤s4中:
18.图标集纹理数据模块将在简略信息中显示的图标全部存贮到一张大的纹理上,生成相应的图标名称和询纹理坐标映射数据。
19.具体地,本发明提供一种3d游戏对象简略信息的显示系统,包括对象获取模块、顶点缓冲区管理模块、文字纹理数据缓存模块、图标集纹理数据模块、渲染模块;
20.所述对象获取模块用于获取显示对象并生成数据列表,所述顶点缓冲区管理模块与所述对象获取模块通讯连接,且能够遍历所述对象获取模块的数据列表,并通过对象引用获取对象所有需要显示的简略信息,所述文字纹理数据缓存模块与所述顶点缓冲区管理模块通讯连接,能够缓存顶点缓冲区管理模块中的文字纹理缓存数据,并生成文字渲染顶点数据写入顶点缓冲区管理模块,所述图标集纹理数据模块与所述点缓冲区管理模块通讯连接,能够缓存顶点缓冲区管理模块中的图标集纹理数据,并生成图片渲染顶点数据写入顶点缓冲区管理模块,所述顶点缓冲区管理模块能够根据文字渲染顶点数据和图片渲染顶点数据设置文字纹理渲染状态和图集纹理渲染状态,所述渲染模块与所述顶点缓冲区管理模块通讯连接,并能够对顶点缓冲区管理模块中的文字纹理、图集纹理进行渲染。
21.本发明的有益效果是:
22.通过将所有对象简略信息的顶点数据生成到一个足够大到能容纳本帧所需的所有顶点数量的顶点缓冲区;将简略信息中要显示的文字动态缓存到一张纹理之上;将简略信息中所有会用到的图标制作到一张大纹理上;这三个主要操作来达到所有角色的简略信息渲染完成只用一个顶点缓冲区,每一帧只需要更新一次顶点缓冲区、设置一次其所需的硬件渲染状态、提交一次渲染请求,避免了大量耗时的缓冲区更新、渲染状态设置操作和渲染请求。这样,当同屏显示角色数量非常多时,显示角色简略信息只占用很少的渲染硬件资
源,对整个渲染系统的影响基本可以忽略。
附图说明
23.图1为一种3d游戏对象简略信息的显示方法流程图;
24.图2为一种3d游戏对象简略信息显示系统模块连接示意图。
具体实施方式
25.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
26.如图1所示,一种3d游戏对象简略信息的显示方法,包括以下步骤:
27.s1:对象获取模块获取显示对象并生成列表,并遍历对象列表,获取每个对象用于显示简略信息的虚拟点世界坐标并将其转换到当前摄像机坐标系坐标,将获取对象和摄像机坐标系坐标值作为数据项存入列表,生成数据列表,并对生成的数据列表按坐标值的深度值进行排序;
28.s2:顶点缓冲区管理模块清空顶点缓冲区,并遍历s1中排序后的数据列表,通过对象引用获取对象所有需要显示的简略信息;
29.s3:如果s2中显示简略信息是文字纹理缓存数据,则文字纹理数据缓存模块从文字纹理缓存数据获取纹理坐标,计算文字顶点坐标值,生成文字渲染顶点数据,将生成的顶点数据写入到顶点缓冲区管理模块;
30.s4:如果s2中显示简略信息是图标集纹理数据,则图标集纹理数据模块从图标集纹理数据获取纹理坐标,计算图片顶点坐标值,生成图片渲染顶点数据,将生成的顶点数据写入到顶点缓冲区管理模块;
31.s5:顶点缓冲区管理模块根据文字渲染顶点数据设置文字纹理渲染状态,根据图片渲染顶点数据设置图集纹理渲染状态;
32.s6:渲染模块对顶点缓冲区管理模块中的文字纹理、图集纹理进行渲染。
33.该步骤s1中:对象获取模块生成当前游戏窗口中所有可见对象且有信息需要显示的对象列表,对象获取模块遍历所有在客户端活动的游戏对象,如果该对象在可见范围内且有信息需要显示,获取每个对象用于显示简略信息的虚拟点世界坐标并将其转换到当前摄像机坐标系坐标,将获取对象和摄像机坐标系坐标值作为数据项存入列表,生成数据列表;
34.该步骤s2中:顶点缓冲区管理模块用于管理在s1中使用的顶点缓冲区,在游戏启动时创建一个默认大小的顶点缓冲区并设置好扩展策略,当显示元素增多到当前顶点缓冲区不能满足的情况下销毁当前缓冲区根据扩展策略重新创建一个更大的顶点缓冲区。
35.该步骤s3中:文字纹理数据缓存模块首先根据文字的编码值去缓存数据,获取该文字占用的纹理坐标,如果获取失败则使用字库渲染程序生成文字像素图片,再将像素数据写入到文字缓存纹理并根据写入位置计算出纹理坐标,最后将文字编码值作为键值,映射纹理坐标,生成文字渲染顶点数据,将生成的顶点数据写入到顶点缓冲区管理模块;
36.该步骤s4中:图标集纹理数据模块将在简略信息中显示的图标全部存贮到一张大的纹理上,生成相应的图标名称和询纹理坐标映射数据。
37.如图2所示,一种3d游戏对象简略信息的显示系统,包括对象获取模块、顶点缓冲区管理模块、文字纹理数据缓存模块、图标集纹理数据模块、渲染模块;
38.对象获取模块用于获取显示对象并生成数据列表,顶点缓冲区管理模块与对象获取模块通讯连接,且能够遍历对象获取模块的数据列表,并通过对象引用获取对象所有需要显示的简略信息,文字纹理数据缓存模块与顶点缓冲区管理模块通讯连接,能够缓存顶点缓冲区管理模块中的文字纹理缓存数据,并生成文字渲染顶点数据写入顶点缓冲区管理模块,图标集纹理数据模块与点缓冲区管理模块通讯连接,能够缓存顶点缓冲区管理模块中的图标集纹理数据,并生成图片渲染顶点数据写入顶点缓冲区管理模块,顶点缓冲区管理模块能够根据文字渲染顶点数据和图片渲染顶点数据设置文字纹理渲染状态和图集纹理渲染状态,渲染模块与顶点缓冲区管理模块通讯连接,并能够对顶点缓冲区管理模块中的文字纹理、图集纹理进行渲染。
39.上述中:通过将所有对象简略信息的顶点数据生成到一个足够大到能容纳本帧所需的所有顶点数量的顶点缓冲区;将简略信息中要显示的文字动态缓存到一张纹理之上;将简略信息中所有会用到的图标制作到一张大纹理上;这三个主要操作来达到所有角色的简略信息渲染完成只用一个顶点缓冲区,每一帧只需要更新一次顶点缓冲区、设置一次其所需的硬件渲染状态、提交一次渲染请求,避免了大量耗时的缓冲区更新、渲染状态设置操作和渲染请求。这样,当同屏显示角色数量非常多时,显示角色简略信息只占用很少的渲染硬件资源,对整个渲染系统的影响基本可以忽略。
40.在本发明的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
41.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献