CN111744178A - 一种共享资源方法 - Google Patents

一种共享资源方法 Download PDF

Info

Publication number
CN111744178A
CN111744178A CN202010455869.0A CN202010455869A CN111744178A CN 111744178 A CN111744178 A CN 111744178A CN 202010455869 A CN202010455869 A CN 202010455869A CN 111744178 A CN111744178 A CN 111744178A
Authority
CN
China
Prior art keywords
original
resource
prefabricated
prefabricated body
preform
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.)
Pending
Application number
CN202010455869.0A
Other languages
English (en)
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.)
Guangzhou Zunyou Software Technology Co ltd
Original Assignee
Guangzhou Zunyou Software Technology 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 Guangzhou Zunyou Software Technology Co ltd filed Critical Guangzhou Zunyou Software Technology Co ltd
Priority to CN202010455869.0A priority Critical patent/CN111744178A/zh
Publication of CN111744178A publication Critical patent/CN111744178A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种共享资源方法,S1.获取资源组合预制体,导出资源组合预制体中的原预制体的信息;S2.向资源池发送需要显示原预制体的申请以及原预制体的信息;S3.资源池通过判断资源池内是否已有所述步骤S2的原预制体对应的资源组合预制体以及所述资源组合预制体的空闲状况,如果存在空闲的原预制体对应的资源组合预制体,则返回原预制体对应的资源,否则加载资源组合预制体,然后创建并返回原预制体对应的资源;S4.显示原预制体,原预制体在显示结束后由资源池进行回收,终止原预制体对应的异步加载。本发明的优点在于,避免重复读取资源组合预制体,使得资源利用率最大化,同时采用低CPU性能成本的多层次细节技术。

Description

一种共享资源方法
技术领域
本发明涉及信息技术领域,更具体地,涉及一种共享资源方法。
背景技术
在当今各种类型的游戏运行的过程中,都会涉及大量的资源加载需要。在大多数的情况下,资源的需求都是动态而非固定情况下发生,导致游戏程序频繁的加载增加资源去满足画面显示的需要,同时也就增加了对游戏运行的效率影响。如果游戏采用世界地图的话,除了大量的资源加载负担外,还会有很高的渲染负担,例如同屏幕的资源数量很高。现有的技术方案是利用所用游戏引擎提供的资源预制体机制,经过美术手段准备好资源组合预制体,再结合技术手段去建立游戏运行时的资源池,以最大程度提高资源复用率,也减少资源被反复生成的目的。
现有的预制体经常由多个部分组成,而资源池在对预制体回收时,地图可能仍然要展示与预制体的其中一部分相同的模型,但此时由于预制体被完全回收,导致该部分无法被利用,除非预制体再次被重新加载到地图中。典型的现有技术如专利申请(申请号:201811359443.4,发明名称:一种预制体开发方法、装置、设备及介质)所记载,将美术资源组合为目标预制体后,按类型将预制体存储至相应的存储路径下,在调用时直接根据预制体类型在存储路径下获取预制体,不对已读取的资源进行重复利用,导致资源利用率不高。
在专利申请(申请号:201710777986.7,发明名称:一种超大地图场景资源的存储方法及存储装置)中,通过获取地图场景资源和将其分类,并以地图索引筛查出被调用的地图场景预制体,并将它们进行保存。该专利申请同样是根据分类进行预制体的存储和读取,在存储方面进行优化,而运行时仍然采用一般的按需读取方式。
现有的技术方案还利用多层次细节(Level Of Detail)技术,当玩家视角对应的摄像机距离地图较远时,采用低精度的版本渲染资源,反之则采用精度高的版本渲染资源,以此去降低同屏幕需要渲染的顶点数量。如果多层次细节技术直接与预制体机制搭配使用,则要在预制体组合里,增加在不同层级上应该要显示的模型版本,然后通过游戏引擎提供的多层次细节组件控制实现。这会增加预制体的文件大小、读取时间及内存占用,而且引入的控制组件也会增加实时性能上的负担。
发明内容
本发明为克服上述现有技术所述的缺陷,提高预制体的资源利用率,降低多层次细节技术带来的性能负担,提供一种将资源利用率最大化的共享资源方法。
为解决上述技术问题,本发明的技术方案如下:
一种共享资源方法,包括以下步骤:
S1.获取资源组合预制体,导出资源组合预制体中的原预制体的信息;
S2.向资源池发送需要显示原预制体的申请以及原预制体的信息;
S3.资源池通过判断资源池内是否已有所述步骤S2的原预制体对应的资源组合预制体以及所述资源组合预制体的空闲状况,如果存在空闲的原预制体对应的资源组合预制体,则返回原预制体对应的资源,否则加载资源组合预制体,然后创建并返回原预制体对应的资源;
S4.显示原预制体,原预制体在显示结束后由资源池进行回收,终止原预制体的异步加载。
上述方法的原理为:首先重组资源组合预制体的相关数据至每个原预制体的信息;游戏在进行时,尤其是最初加载和用户移动视角时,需要加载新的原预制体,因此向资源池发出相关的需求申请;资源池首先判断其中有无可供使用的资源组合预制体,用于直接向游戏的上层应用返回资源组合预制体,否则进行新的加载,然后根据设定的流程创建原预制体以供显示;原预制体在显示完成后,即可由资源池回收至资源组合预制体,该操作可被通知至游戏程序的其他部分,尤其是终止正在进行的、原预制体对应的加载。
进一步地,所述原预制体的信息包括网格、材质、贴图、预制组合内的位置、旋转角度和尺寸。
进一步地,所述资源池在加载资源组合预制体时,如果资源组合预制体中存在已加载的原预制体,则仅加载指向已加载的原预制体的索引。
进一步地,所述步骤S3中显示创建原预制体对应的资源的具体过程如下:
向资源池申请空闲模型,根据先前加载的资源组合预制体以及预制组合内的位置、旋转角度和尺寸信息,在空闲模型上创建原预制体。
进一步地,所述步骤S4中显示结束的判断条件是:如果原预制体显示超出预设时间并且原预制体没有被通过索引而引用显示在其他地方,则原预制体被认定为显示结束。
进一步地,在所述步骤S3中创建并返回原预制体对应的资源后,终止原预制体对应的异步加载。
进一步地,在终止原预制体对应的异步加载之前,检测是否存在相同的原预制体正在进行的异步加载、或者是否存在基于需要显示相同的原制体申请而进行的、没有其他原预制体显示需求的资源组合预制体的异步加载,如果是,则终止异步加载
进一步地,终止异步加载是强制终止正在进行的异步加载的进程。
进一步地,原预制体的信息还包括多层次细节信息,其中,所述多层次细节信息以索引的方式包括每个层次所展示的模型资源信息,所述层次是摄像头与地表之间的距离的范围。
进一步地,当原预制体被加载时,根据摄像机与地表之间的距离判断当前所处的层次,根据与层次对应的模型资源信息加载模型;
当摄像机相对于地表而移动时,如果摄像机与地表之间的距离超过先前所处的层次,则归还先前的模型至资源池,根据与当前所处的层次对应的模型资源信息加载模型。
进一步地,被归还到资源池的模型分配到不被渲染的渲染层,用于避免触发代码逻辑组件、动画组件和粒子组件。
进一步地,所述原预制体的信息和资源组合预制体的信息采用json数据格式。
与现有技术相比,本发明技术方案的有益效果是:
本发明利用含有预制体的资源组合预制体,首先导出预制体本身以及在资源组合预制体中的相关信息,在需要显示时,向资源池发出申请,资源池可优先从其中查看是否有空闲的预制体并返回,避免重复读取资源组合预制体,使得资源利用率最大化;另一方面,在资源利用率最大化的前提下,通过索引的方式记录原预制体在多层次细节下与各个距离对应的模型,并且使得暂时不需使用的模型避免消耗CPU算力,降低性能成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为共享资源方法的流程示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
一种共享资源方法,如图1所示,首先获取资源组合预制体,导出资源组合预制体中的原预制体的信息,其中原预制体的信息包括网格、材质、贴图、预制组合内的位置、旋转角度和尺寸。
以基于Unity3D的游戏为例,当游戏需要显示原预制体时,创建以SharedAsset(共享资源)为基类的资源池管理器,游戏的上层应用通过创建以RecycleUnit(回收单元)为基类的物件实现资源显示的需要,其中,基类RecycleUnit(回收单元)提供对外功能方法如Reuse(复用)、Recycle(回收)、Transform(总体位置角度大小编辑)。
基类RecycleUnit(回收单元)内部地向资源池发送需要显示的、以SharedAsset(共享资源)为基类的原预制体的申请以及原预制体的信息,或者归还不需要显示的、以SharedAsset(共享资源)为基类的原预制体。
资源池在接受需要显示原预制体的申请后,首先判断资源池内是否已有在先前游戏进程中已归还的、原预制体对应的资源组合预制体以及其空闲状况,如果该资源组合预制体可以使用,则返回原预制体;否则加载资源组合预制体,然后向资源池申请空闲模型,根据先前加载的资源组合预制体以及预制组合内的位置、旋转角度和尺寸信息,在空闲模型上创建以SharedAsset(共享资源)为基类的新原预制体;其中,如果资源组合预制体中存在已加载的原预制体,则仅加载指向已加载的原预制体的索引。
具体的,以SharedAsset(共享资源)为基类的原预制体还至少提供以下功能:1.创建后自动添加到TbJobSystem(工作队列器)并加入到异步加载原预制体自身的资源的队列;2.在原预制体自身的资源加载完成后终止异步加载队列中创建或等待的工作指令,根据自身被游戏所需要的情况设置显示状态并进入渲染过程。
原预制体在渲染过程完成后进行显示。原预制体在显示结束后由资源池进行回收,如果在回收时检测到相同的原预制体正在异步加载或基于需要显示相同的原制体申请而进行的、没有其他原预制体显示需求的资源组合预制体的异步加载,则强制终止正在进行的异步加载的进程。具体的,显示结束的判断条件是:如果原预制体显示超出预设时间并且原预制体没有被通过索引而引用显示在其他地方,则原预制体被认定为显示结束。
在一种实施的方式中,原预制体的信息还包括多层次细节信息,其中,所述多层次细节信息以索引的方式包括每个层次所展示的模型信息,所述层次是摄像头与地表之间的距离的范围。
当原预制体被加载时,首先加载与当前层次对应对应的模型;当摄像机与地表之间的距离超出该层次后,上述模型被归还至资源池,对于此时仍需显示的原预制体,加载与当前距离的层次对应的新模型,将此时不需显示的原预制体归还至资源池。具体的,被归还到资源池的模型分配到不被渲染的渲染层,用于避免触发代码逻辑组件、动画组件和粒子组件。可选地,模型也可分配到资源池中其他避免触发上述组件的位置上。
在以上所有的实施方式中,所述原预制体的信息和资源组合预制体的信息采用json数据格式。本发明不局限于此,原预制体的信息和资源组合预制体的信息也可采用xml或其他的数据存储格式。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (10)

1.一种共享资源方法,其特征在于,包括以下步骤:
S1.获取资源组合预制体,导出资源组合预制体中的原预制体的信息;
S2.向资源池发送需要显示原预制体的申请以及原预制体的信息;
S3.资源池通过判断资源池内是否已有所述步骤S2的原预制体对应的资源组合预制体以及所述资源组合预制体的空闲状况,如果存在空闲的原预制体对应的资源组合预制体,则返回原预制体对应的资源,否则加载资源组合预制体,然后创建并返回原预制体对应的资源;
S4.显示原预制体,原预制体在显示结束后由资源池进行回收,终止原预制体对应的异步加载。
2.根据权利要求1所述的共享资源方法,其特征在于,所述原预制体的信息包括网格、材质、贴图、预制组合内的位置、旋转角度和尺寸。
3.根据权利要求2所述的共享资源方法,其特征在于,所述资源池在加载资源组合预制体时,如果资源组合预制体中存在已加载的原预制体,则仅加载指向已加载的原预制体的索引。
4.根据权利要求2所述的共享资源方法,其特征在于,所述步骤S3中显示创建原预制体对应的资源的具体过程如下:
向资源池申请空闲模型,根据先前加载的资源组合预制体以及预制组合内的位置、旋转角度和尺寸信息,在空闲模型上创建原预制体。
5.根据权利要求1所述的共享资源方法,其特征在于,所述步骤S4中显示结束的判断条件是:如果原预制体显示超出预设时间并且原预制体没有被通过索引而引用显示在其他地方,则原预制体被认定为显示结束。
6.根据权利要求1所述的共享资源方法,其特征在于,在所述步骤S3中创建并返回原预制体对应的资源后,终止原预制体对应的异步加载。
7.根据权利要求1或6所述的共享资源方法,其特征在于,在终止原预制体对应的异步加载之前,检测是否存在相同的原预制体正在进行的异步加载、或者是否存在基于需要显示相同的原制体申请而进行的、没有其他原预制体显示需求的资源组合预制体的异步加载,如果是,则终止异步加载。
8.根据权利要求1所述的共享资源方法,其特征在于,原预制体的信息还包括多层次细节信息,其中,所述多层次细节信息以索引的方式包括每个层次所展示的模型资源信息,所述层次是摄像头与地表之间的距离的范围。
9.根据权利要求8所述的共享资源方法,其特征在于,当原预制体被加载时,根据摄像机与地表之间的距离判断当前所处的层次,根据与层次对应的模型资源信息加载模型;
当摄像机相对于地表而移动时,如果摄像机与地表之间的距离超过先前所处的层次,则归还先前的模型至资源池,根据与当前所处的层次对应的模型资源信息加载模型。
10.根据权利要求9所述的共享资源方法,其特征在于,被归还到资源池的模型分配到不被渲染的渲染层,用于避免触发消耗CPU计算的组件。
CN202010455869.0A 2020-05-26 2020-05-26 一种共享资源方法 Pending CN111744178A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010455869.0A CN111744178A (zh) 2020-05-26 2020-05-26 一种共享资源方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010455869.0A CN111744178A (zh) 2020-05-26 2020-05-26 一种共享资源方法

Publications (1)

Publication Number Publication Date
CN111744178A true CN111744178A (zh) 2020-10-09

Family

ID=72673833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010455869.0A Pending CN111744178A (zh) 2020-05-26 2020-05-26 一种共享资源方法

Country Status (1)

Country Link
CN (1) CN111744178A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1842063A (zh) * 2005-03-30 2006-10-04 广州市领华科技有限公司 一种即时通信方法
CN107038044A (zh) * 2017-03-27 2017-08-11 长沙趣动文化科技有限公司 基于Unity3D的游戏资源离散加载方法及系统
CN107526636A (zh) * 2016-10-26 2017-12-29 腾讯科技(深圳)有限公司 资源识别方法及装置
CN110147237A (zh) * 2019-05-20 2019-08-20 深圳市腾讯网域计算机网络有限公司 一种冗余资源去除方法和装置
CN110152299A (zh) * 2018-11-22 2019-08-23 腾讯科技(深圳)有限公司 一种游戏资源的构建方法和装置
US20190275429A1 (en) * 2017-01-05 2019-09-12 Tencent Technology (Shenzhen) Company Limited Information processing method and apparatus and server

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1842063A (zh) * 2005-03-30 2006-10-04 广州市领华科技有限公司 一种即时通信方法
CN107526636A (zh) * 2016-10-26 2017-12-29 腾讯科技(深圳)有限公司 资源识别方法及装置
US20190275429A1 (en) * 2017-01-05 2019-09-12 Tencent Technology (Shenzhen) Company Limited Information processing method and apparatus and server
CN107038044A (zh) * 2017-03-27 2017-08-11 长沙趣动文化科技有限公司 基于Unity3D的游戏资源离散加载方法及系统
CN110152299A (zh) * 2018-11-22 2019-08-23 腾讯科技(深圳)有限公司 一种游戏资源的构建方法和装置
CN110147237A (zh) * 2019-05-20 2019-08-20 深圳市腾讯网域计算机网络有限公司 一种冗余资源去除方法和装置

Similar Documents

Publication Publication Date Title
US8026910B2 (en) Offline optimization pipeline for 3D content in embedded devices
WO2017084497A1 (zh) 一种实现多模式应用页面的终端、方法及系统
CN102541605A (zh) 基于Android系统的图片加载方法和装置
CN102609218B (zh) 并行闪存转换层方法与系统
CN105247478A (zh) 命令指令管理
CN108984244A (zh) 浏览器页面渲染方法、电子装置及计算机可读存储介质
CN115964131A (zh) 支持多仿真引擎的仿真模型管理系统和仿真模型调度方法
CN109683858A (zh) 数据处理方法及装置
US9324299B2 (en) Atlasing and virtual surfaces
CN102396022B (zh) 图形存储器的非图形使用
CN103677893B (zh) 开机的映像文件的大小缩减方法及运算装置
CN111744178A (zh) 一种共享资源方法
CN109558187B (zh) 一种用户界面渲染方法及装置
US8578368B2 (en) Injecting a file from the bios into an operating system
CN111522659B (zh) 一种空间使用方法和装置
KR101460684B1 (ko) 프리 로딩 기반 영상 처리 장치 및 방법, 비동기 로딩 기반 영상 처리 장치 및 방법
CN115828007A (zh) 一种页面展示的方法、装置、系统、电子设备及介质
CN113485776B (zh) 一种在多线程渲染中实体的处理方法及装置
CN110704157B (zh) 一种应用启动方法、相关装置及介质
CN112784188B (zh) 一种页面渲染方法及装置
US20080034022A1 (en) System and method for updating references when incrementally compacting a heap
CN102081517A (zh) 用户界面显示方法和用户界面显示装置
CN107479837A (zh) 云数据系统中虚拟机扩容的方法和装置
CN111476910A (zh) 智能建筑bim的3d模型显示方法、系统、介质及显示终端
CN110750495A (zh) 文件管理方法、装置、存储介质以及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination