System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 对象渲染方法、装置、介质及设备制造方法及图纸_技高网

对象渲染方法、装置、介质及设备制造方法及图纸

技术编号:41068850 阅读:3 留言:0更新日期:2024-04-24 11:24
本申请实施例提供一种对象渲染方法、装置、存储介质及电子设备,该方法包括通过第一游戏引擎对基于第二游戏引擎生成的第一待渲染对象进行加载,获取第一待渲染对象的第一节点树,第一节点树中包括第一渲染节点;遍历第一节点树中各第一渲染节点,将渲染节点数据从第一格式转换为与第一游戏引擎对应的第二格式,生成第二渲染节点;通过第一游戏引擎根据第二渲染节点进行渲染绘制,得到渲染数据;通过第一游戏引擎根据渲染数据将第一待渲染对象绘制在预设的前端界面上。本申请通过将第一待渲染对象中的各第一渲染节点转换为数据格式与第一游戏引擎对应的第二渲染节点,再通过第一游戏引擎基于第二渲染节点完成对第一待渲染对象的跨引擎渲染。

【技术实现步骤摘要】

本申请涉及电子通信,尤其涉及一种对象渲染,特别涉及一种对象渲染方法、装置、介质及设备


技术介绍

1、游戏引擎是指一个已经编写好的可编辑的电脑游戏系统,也可以指一些交互式实时图像应用程序的核心组件,游戏引擎可以为游戏开发者提供游戏开发所需的各种工具,降低游戏开发的复杂度,让开发者更简便快速地制作游戏。目前,市场上主流的引擎主要有unity引擎、白鹭引擎(egret)、cocos creator引擎、虚幻引擎、起源引擎、iw引擎等。不同的游戏引擎有各自的优缺点,例如白鹭引擎适用于处理大量的2d图形和动画,而cocoscreator引擎则更适合处理3d图形和物理引擎。若能够将不同的游戏引擎实现跨引擎混合,例如让白鹭引擎开发的游戏程序转成用cocos creator引擎进行渲染,便能够实现在白鹭引擎快速生成游戏程序后在cocos creator引擎得到更加精美的游戏画面效果。

2、常见的现有混合方案包括基于renderbuffer(渲染缓冲区,用于分配和存储渲染资源)方式混合,这种混合方式是将另外的引擎渲染到离屏canvas(画布)中,先通过获取离屏的canvas的纹理再渲染到主canvas中。但是上述方式的问题在于无法做到渲染节点穿插,相当不灵活,并且相当于两个游戏引擎的渲染都在运行,使用离屏canvas的渲染方式会带来更大的性能消耗。


技术实现思路

1、本申请实施例提供一种对象渲染方法、装置、介质及设备,以解决目前跨引擎渲染时存在效率低、性能消耗大的问题。

2、本申请实施例一方面提供了一种对象渲染方法,所述方法包括:

3、通过第一游戏引擎对基于第二游戏引擎生成的第一待渲染对象进行加载,获取所述第一待渲染对象的第一节点树,所述第一节点树中包括第一渲染节点,所述第一渲染节点中的渲染节点数据格式为与第二游戏引擎对应的第一格式;

4、遍历所述第一节点树中各第一渲染节点,将所述渲染节点数据从所述第一格式转换为与所述第一游戏引擎对应的第二格式,生成第二渲染节点;

5、通过所述第一游戏引擎根据所述第二渲染节点进行渲染绘制,得到渲染数据;

6、通过所述第一游戏引擎根据所述渲染数据将所述第一待渲染对象绘制在预设的前端界面上,得到渲染完成的目标对象。

7、在本申请实施例所述的对象渲染方法中,在所述将所述渲染节点数据从所述第一格式转换为与所述第一游戏引擎对应的第二格式之前,所述方法还包括:

8、创建用于执行将所述渲染节点数据从所述第一格式转换为与所述第一游戏引擎对应的第二格式的节点适配器,所述节点适配器中配置有用于将第一渲染节点中的渲染节点数据从第一格式转换为第二格式的转换策略,及所述第一渲染节点与转换策略之间的映射关系。

9、在本申请实施例所述的对象渲染方法中,在所述将所述渲染节点数据从所述第一格式转换为与所述第一游戏引擎对应的第二格式之前,所述方法还包括:

10、在存储所述第一游戏引擎的第一脚本代码的文件夹根目录中新增空文件夹;

11、将所述第二游戏引擎的第二脚本代码存入所述空文件夹中,同时删除所述第二脚本代码中用于执行在前端界面上渲染绘制第一待渲染对象的渲染逻辑代码。

12、在本申请实施例所述的对象渲染方法中,在所述得到渲染完成的目标对象之后,所述方法还包括:

13、响应于针对所述目标对象在前端界面上的预设操作,记录所述目标对象受所述预设操作影响后更新的第二渲染节点;

14、根据所述更新的第二渲染节点在第一渲染树中标记对应的第一渲染节点,同时将所述目标对象其他不受所述预设操作影响的第二渲染节点缓存到所述节点适配器中的缓存区域,以实现第二渲染节点数据在所述目标对象进行周期性渲染操作时能够被复用。

15、在本申请实施例所述的对象渲染方法中,在所述遍历所述第一节点树中各第一渲染节点之后,所述方法还包括:

16、判断所述各第一渲染节点中是否存在被标记的目标渲染节点,若存在目标渲染节点,则所述目标渲染节点中的渲染节点数据从与第一游戏引擎对应的第一格式转换为与第二游戏引擎对应的第二格式,生成第二渲染节点后缓存到所述节点适配器缓存区域中替换相应的历史的第二渲染节点。

17、在本申请实施例所述的对象渲染方法中,在所述遍历所述第一节点树中各第一渲染节点之后,所述方法还包括:

18、判断所述第一渲染节点对应所述前端界面的渲染层级关系,根据所述渲染层级关系将所述第一渲染节点转换成第二渲染节点后新增到与所述第二游戏引擎对应的第二节点树中;

19、所述渲染层级关系包括所述第一渲染节点位于预设的第三渲染节点上方、或所述第一渲染节点位于预设的第三渲染节点下方、或所述第一渲染节点位于预设的第三渲染节点中间,所述第三渲染节点用于渲染由所述第一游戏引擎生成的第二待渲染对象。

20、在本申请实施例所述的对象渲染方法中,所述根据所述渲染层级关系将所述第一渲染节点转换成第二渲染节点后新增到与所述第二游戏引擎对应的第二节点树中,包括:

21、当所述渲染层级关系为所述第一渲染节点位于预设的第三渲染节点上方、或所述第一渲染节点位于预设的第三渲染节点下方时,通过在预设的第三渲染节点上方或下方新增一个空白的第一新增节点,将所述第一渲染节点转换成第二渲染节点后新增至所述第一新增节点中,以将所述第二渲染节点新增至第二节点树中。

22、在本申请实施例所述的对象渲染方法中,所述根据所述渲染层级关系将所述第一渲染节点转换成第二渲染节点后新增到与所述第二游戏引擎对应的第二节点树中,包括:

23、当所述渲染层级关系为所述第一渲染节点位于预设的第三渲染节点中间时,根据所述第三渲染节点与所述第一渲染节点之间的渲染顺序在所述第一节点树中插入空白的第二新增渲染节点;

24、获取所述第三渲染节点的节点引用信息写入对应的所述第二新增渲染节点;

25、遍历所述第一节点树中各渲染节点;

26、当识别到第一渲染节点时将所述第一渲染节点转换成第二渲染节点后新增到与所述第二游戏引擎对应的第二节点树中;

27、当识别到所述第二新增渲染节点时根据其中存储的引用信息返回对应的第三渲染节点至所述第二节点树。

28、相应的,本申请实施例另一方面还提供了一种对象渲染装置,所述对象渲染装置包括:

29、获取模块,用于通过第一游戏引擎对基于第二游戏引擎生成的第一待渲染对象进行加载,获取所述第一待渲染对象的第一节点树,所述第一节点树中包括第一渲染节点,所述第一渲染节点中的渲染节点数据格式为与第二游戏引擎对应的第一格式;

30、转换模块,用于遍历所述第一节点树中各第一渲染节点,将所述渲染节点数据从所述第一格式转换为与所述第一游戏引擎对应的第二格式,生成第二渲染节点;

31、渲染模块,用于通过所述第一游戏引擎根据所述第二渲染节点进行渲染绘制,得到渲染数据;

本文档来自技高网...

【技术保护点】

1.一种对象渲染方法,其特征在于,包括:

2.如权利要求1所述的对象渲染方法,其特征在于,在所述将所述渲染节点数据从所述第一格式转换为与所述第一游戏引擎对应的第二格式之前,所述方法还包括:

3.如权利要求2所述的对象渲染方法,其特征在于,在所述将所述渲染节点数据从所述第一格式转换为与所述第一游戏引擎对应的第二格式之前,所述方法还包括:

4.如权利要求3所述的对象渲染方法,其特征在于,在所述得到渲染完成的目标对象之后,所述方法还包括:

5.如权利要求4所述的对象渲染方法,其特征在于,在所述遍历所述第一节点树中各第一渲染节点之后,所述方法还包括:

6.如权利要求1所述的对象渲染方法,其特征在于,在所述遍历所述第一节点树中各第一渲染节点之后,所述方法还包括:

7.如权利要求6所述的对象渲染方法,其特征在于,所述根据所述渲染层级关系将所述第一渲染节点转换成第二渲染节点后新增到与所述第二游戏引擎对应的第二节点树中,包括:

8.如权利要求6所述的对象渲染方法,其特征在于,所述根据所述渲染层级关系将所述第一渲染节点转换成第二渲染节点后新增到与所述第二游戏引擎对应的第二节点树中,包括:

9.一种对象渲染装置,其特征在于,所述对象渲染装置包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至8任一项所述的对象渲染方法。

11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有多条指令,所述处理器加载所述指令以执行权利要求1至8任一项所述的对象渲染方法。

...

【技术特征摘要】

1.一种对象渲染方法,其特征在于,包括:

2.如权利要求1所述的对象渲染方法,其特征在于,在所述将所述渲染节点数据从所述第一格式转换为与所述第一游戏引擎对应的第二格式之前,所述方法还包括:

3.如权利要求2所述的对象渲染方法,其特征在于,在所述将所述渲染节点数据从所述第一格式转换为与所述第一游戏引擎对应的第二格式之前,所述方法还包括:

4.如权利要求3所述的对象渲染方法,其特征在于,在所述得到渲染完成的目标对象之后,所述方法还包括:

5.如权利要求4所述的对象渲染方法,其特征在于,在所述遍历所述第一节点树中各第一渲染节点之后,所述方法还包括:

6.如权利要求1所述的对象渲染方法,其特征在于,在所述遍历所述第一节点树中各第一渲染节点之后,所述方法还包括:

...

【专利技术属性】
技术研发人员:刘彦君
申请(专利权)人:广州博冠信息科技有限公司
类型:发明
国别省市:

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

1