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

渲染图像的方法、装置、存储介质及电子设备与流程

2022-06-05 03:06:42 来源:中国专利 TAG:


1.本公开涉及图像渲染领域,具体地,涉及一种渲染图像的方法、装置、存储介质及电子设备。


背景技术:

2.随着计算机体系结构的不断演进与发展,gpu(graphics processing unit,图形处理器)因其高效的众核计算能力逐步应用于通用计算领域,例如数值分析、三维建模和游戏等场景,在建模和游戏等应用场景中,gpu主要负责图像渲染功能,接收客户应用程序发起的图像渲染指令和图像数据,渲染出目标图像,然后显示在客户屏幕上。
3.相关技术中为了解放终端本地的gpu资源限制,可以进行远程的图像渲染,在远程图像渲染场景中,终端应用程序的图像渲染指令转发到具备gpu资源的服务器上执行,服务器执行完成图像渲染操作后,将渲染出的图像回传至终端应用程序,并显示在终端的屏幕上,也就是说目前存在的远程图像渲染技术,还是基于原始的图像渲染方式,图像的渲染效率较低,从而影响图像的渲染性能。


技术实现要素:

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.可选地,所述装置还包括:第四发送模块,用于向所述服务器发送资源删除指令,所述资源删除指令用于指示所述服务器将所述目标图像对象对应的图像渲染数据删除。
32.为了实现上述目的,本公开提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所述方法的步骤。
33.为了实现上述目的,本公开提供一种电子设备,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以本公开第一方面所述方法的步骤。
34.为了实现上述目的,本公开提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第二方面所述方法的步骤。
35.为了实现上述目的,本公开提供一种电子设备,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第二方面所述方法的步骤。
36.通过上述技术方案,服务器接收终端发送的图像渲染指令和图像渲染数据,所述图像渲染数据为已渲染好的图像对象对应的渲染数据;根据所述图像渲染数据通过执行所述图像渲染指令渲染得到目标图像对象;将所述目标图像对象发送至所述终端,以便所述终端能够显示所述目标图像对象对应的目标图像,这样,已渲染好的图像对象对应的渲染数据可以作为共享资源数据,服务器侧的gpu可以使用已有的该共享资源数据完成图像远程渲染操作,无需再基于原始的图像渲染方式根据原始图像数据逐条计算各个图像元素,这在保证渲染目标结果正确性的同时也提升了图像渲染的效率,从而可以明显提高图像渲染性能。
37.本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
38.附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
39.图1是基于共享资源在本地进行图像渲染的示意图;
40.图2是根据一示例性实施例示出的第一种渲染图像的方法的流程图;
41.图3是根据一示例性实施例示出的第二种渲染图像的方法的流程图;
42.图4是根据一示例性实施例示出的第三种渲染图像的方法的流程图;
43.图5是根据一示例性实施例示出的一种基于共享资源进行远程图像渲染的架构示意图;
44.图6是根据一示例性实施例示出的第一种渲染图像的装置的框图;
45.图7是根据一示例性实施例示出的第二种渲染图像的装置的框图;
46.图8是根据一示例性实施例示出的第三种渲染图像的装置的框图;
47.图9是根据一示例性实施例示出的第四种渲染图像的装置的框图;
48.图10是根据一示例性实施例示出的第五种渲染图像的装置的框图;
49.图11是根据一示例性实施例示出的第六种渲染图像的装置的框图;
50.图12是根据一示例性实施例示出的一种电子设备的结构框图;
51.图13是根据一示例性实施例示出的一种电子设备的结构框图。
具体实施方式
52.以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
53.需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
54.首先对本公开的应用场景进行介绍,本公开主要应用于远程图像渲染场景中,在现有的远程图像渲染技术中,终端应用程序的图像渲染指令转发到具备gpu资源的服务器上执行,服务器执行完成图像渲染操作后,将渲染出的图像回传至终端应用程序,并显示在终端的屏幕上,但是目前存在的远程图像渲染技术,还是基于原始的图像渲染方式,即每次进行图像渲染时均要根据终端发送的原始图像数据逐条计算各个图像元素,图像的渲染效率较低,影响图像的渲染性能。
55.在基于本地节点(即终端)中的gpu进行图像渲染时,本地节点的应用程序通常会利用本地节点上的其他程序(跨进程/设备)已有的图像共享资源来渲染出目标图像对象(例如纹理对象texture、表面数据surface等),从而优化图像渲染操作,提升图像渲染性能,如图1所示,共享资源通常存储在终端本地的内存空间中,应用程序和其他程序均可通过修改共享资源来更新目标图像,即跨进程/设备可修改共享资源来更新应用程序的目标图像;应用程序也可以修改目标图像数据来更新共享资源,从而修改跨进程/设备的图像数据。
56.因此,为解决现有的远程图像渲染技术中图像渲染效率较低的问题,在本公开中,服务器可以接收终端发送的图像渲染指令和图像渲染数据,所述图像渲染数据为已渲染好的图像对象对应的渲染数据;根据所述图像渲染数据通过执行所述图像渲染指令渲染得到目标图像对象;将所述目标图像对象发送至所述终端,以便所述终端能够显示所述目标图像对象对应的目标图像,这样,已渲染好的图像对象对应的渲染数据可以作为共享资源数据,服务器侧的gpu可以使用已有的该共享资源数据完成图像远程渲染操作,无需再基于原始的图像渲染方式根据原始图像数据逐条计算各个图像元素,这在保证渲染目标结果正确性的同时也提升了图像渲染的效率,从而可以明显提高图像渲染性能。
57.本地节点上的跨进程/设备更新共享资源后,无法将此更新同步到服务器,导致图像数据不一致,从而引起终端应用程序的画面显示异常,针对该问题,终端可以向服务器发送更新目标图像对象对应的图像渲染数据的指令(即后文提到的第二指令),这样,服务器可以将第一地址对应的资源数据更新为所述图像渲染数据,所述第一地址为服务器上所述目标图像对象对应的资源数据存储地址,保证了终端与服务器侧共享资源数据的一致性。
58.另外,服务器更新共享资源后,无法将此更新同步到终端,导致其他进程/设备无法使用更新后的共享资源,造成其他进程/设备画面显示异常,针对该问题,服务器在接收到终端发送的图像资源同步指令后,可以根据该图像资源同步指令获取所述目标图像对象对应的所述图像渲染数据;然后将所述图像渲染数据发送至所述终端,这样也保证了共享资源数据的一致性,使得已有进程/设备和应用程序均可实时使用最新的共享资源,来渲染和加载图像数据。
59.下面结合附图对本公开的具体实施方式进行详细说明。
60.图2是根据一示例性实施例示出的一种渲染图像的方法的流程图,该方法应用于服务器,如图2所示,该方法包括:
61.在步骤s201中,接收终端发送的图像渲染指令和图像渲染数据,所述图像渲染数据为已渲染好的图像对象对应的渲染数据。
62.其中,该图像对象包括纹理对象、表面数据等,该图像渲染数据包括顶点数据、纹理数据、索引、着色器参数等,该图像渲染指令可以包括新建目标图像对象的第一指令(如directx中的createtexture())或者更新该目标图像对象对应的图像渲染数据的第二指令(如directx中的updatetexture())。
63.在步骤s202中,根据所述图像渲染数据通过执行所述图像渲染指令渲染得到目标图像对象。
64.服务器在接收到终端发送的该图像渲染指令后,在所述图像渲染指令为所述第一指令的情况下,可以从所述图像渲染指令中获取所述图像渲染数据对应的空间大小,然后根据所述空间大小存储所述图像渲染数据,这样,该目标图像对象对应的该图像渲染数据也可以作为共享资源数据,使得其他图像对象也可以基于该目标图像对象对应的图像渲染数据进行图像渲染,提高渲染效率。
65.为便于获取待渲染的各个图像对象分别对应的共享资源数据,服务器在根据所述图像渲染数据通过执行所述图像渲染指令渲染得到目标图像对象后,可以在服务器侧的第一预设数据库中记录目标图像对象与所述图像渲染数据的第一映射关系,从而在对其它图像对象进行渲染的过程中,方便根据该第一映射关系快速获取到需要的共享资源数据。
66.另外,服务器在接收到终端发送的该图像渲染指令后,并且在所述图像渲染指令为所述第二指令的情况下,由于该第二指令还指示服务器进行共享资源数据的更新,因此,服务器可以将第一地址对应的资源数据更新为所述图像渲染数据,所述第一地址为服务器上所述目标图像对象对应的资源数据存储地址。
67.在步骤s203中,将所述目标图像对象发送至所述终端,以便所述终端能够显示所述目标图像对象对应的目标图像。
68.考虑到在实际的图像渲染场景中,若要渲染得到一帧完整的图像,中间需要通过执行多条不同的渲染指令来渲染得到不同的图像对象,例如指令createtexture()用于新建纹理对象,指令updatetexture()用于更新纹理对象对应的共享资源数据后重新创建纹理对象,指令createsurface()用于新建表面数据等,因此,服务器在执行完渲染目标图像对应的全部渲染指令后,终端可以依次接收到执行不同渲染指令的执行结果,该执行结果包括不同的目标图像对象,此时,该目标图像渲染完毕,终端屏幕上可以正常显示该目标图像。
69.采用上述方法,已渲染好的图像对象对应的渲染数据可以作为共享资源数据,服务器侧的gpu可以使用已有的该共享资源数据完成图像远程渲染操作,无需再基于原始的图像渲染方式根据原始图像数据逐条计算各个图像元素,这在保证渲染目标结果正确性的同时也提升了图像渲染的效率,从而可以明显提高图像渲染性能。
70.图3是根据一示例性实施例示出的一种渲染图像的方法的流程图,该方法应用于终端,如图3所示,该方法包括以下步骤:
71.在步骤s301中,根据用户的触发操作获取图像渲染指令。
72.在实际的应用场景中,用户在应用程序运行(如游戏软件、视频剪辑软件等)的过程中,终端需要根据用户的触发操作进行实时画面显示,即在终端屏幕上显示目标图像(以用户正在使用视频剪辑软件进行视频剪辑为例,当用户触发了终端界面上的“视频生成”按钮之后,终端获取到用户的触发操作,然后向用户展示已经剪辑后的每一帧图片),可以理解的是,在显示该目标图像之前需要进行图像渲染,在这个过程中,应用程序可以通过调用opengl或者directx等图像应用编程接口中的函数(如directx中的createtexture()、updatetexture()等),然后将实际的图像数据(如顶点数据、纹理数据、索引、着色器参数等)作为调用函数的输入后生成该图像渲染指令。
73.另外,该图像渲染指令可以包括新建目标图像对象的第一指令(如directx中的createtexture())或者更新该目标图像对象对应的图像渲染数据的第二指令(如directx中的updatetexture()),其中,该目标图像对象为渲染该目标图像过程中需渲染的各个图像元素,例如,纹理对象、表面数据等。
74.在步骤s302中,根据所述图像渲染指令获取图像渲染数据,所述图像渲染数据为其它已经渲染好的图像对象对应的渲染数据;
75.在一种可能的实现方式中,该图像渲染指令中可以包括应用程序开发人员预先设置的第二存储地址,该第二存储地址为当前待渲染的目标图像对象对应的渲染数据(或者称之为共享资源数据)在客户端的存储地址,因此,终端在获取到该图像渲染指令后,可以根据图像渲染指令中是否包括该第二存储地址确定本地节点中是否已经存储有该目标图像对象对应的渲染数据。
76.因此,在本步骤中,在所述图像渲染指令为所述第一指令的情况下,可以从所述图像渲染指令中获取所述图像渲染数据的第二存储地址;然后根据所述第二存储地址从所述终端的内存中读取所述图像渲染数据。
77.示例地,该第一指令可以为以下形式:
78.createtexture(,

,paddress)
79.其中,paddress即为该第二存储地址。
80.在另一种可能的应用场景中,若本地节点的其它应用程序(跨进程/设备)修改了共享资源数据来更新应用程序的目标图像,此时,需要将更新后的共享资源数据在服务器侧进行更新,以保证终端与服务器存储的共享资源数据的一致性,更新后服务器再基于最新的图像渲染数据进行图像渲染得到目标图像对象,使得终端可以正常的显示画面,此种情况下,终端可以向服务器发送更新所述目标图像对象对应的图像渲染数据的第二指令。
81.在该图像渲染指令为该第二指令的情况下,本步骤可以根据所述图像渲染指令获取所述目标图像对象的标识信息;然后根据所述目标图像对象的标识信息通过查询第二预
设数据库获取所述目标图像对象对应的图像渲染数据的第三存储地址;从而根据所述第三存储地址从所述终端的内存中读取所述图像渲染数据。
82.其中,该第二预设数据库中存储有多个已经渲染好的图像对象及各自对应的渲染资源信息,该渲染资源信息包括该图像对象对应的图像渲染数据在终端内存中的存储地址以及占用空间大小等信息。
83.在步骤s303中,将所述图像渲染指令和所述图像渲染数据发送至服务器。
84.在步骤s304中,接收所述服务器根据所述图像渲染数据渲染得到的目标图像对象,以便所述终端能够显示所述目标图像对象对应的目标图像。
85.考虑到在实际的图像渲染场景中,若要渲染得到一帧完整的图像,中间需要通过执行多条不同的渲染指令来渲染得到不同的图像对象,例如指令createtexture()用于新建纹理对象,指令updatetexture()用于更新纹理对象对应的共享资源数据后重新创建纹理对象,指令createsurface()用于新建表面数据等,因此,服务器在执行完渲染目标图像对应的全部渲染指令后,终端可以依次接收到执行不同渲染指令的执行结果,该执行结果包括不同的目标图像对象,此时,该目标图像渲染完毕,终端屏幕上可以正常显示该目标图像。
86.采用上述方法,终端可以向服务器发送图像渲染指令和已渲染好的图像对象对应的渲染数据,这样,该渲染数据可以作为共享资源数据,服务器侧的gpu可以使用已有的该共享资源数据完成图像远程渲染操作,无需再基于原始的图像渲染方式根据原始图像数据逐条计算各个图像元素,这在保证渲染目标结果正确性的同时也提升了图像渲染的效率,从而可以明显提高图像渲染性能。
87.图4是根据一示例性实施例示出的一种渲染图像的方法的流程图,如图4所示,该方法包括以下步骤:
88.在步骤s401中,终端根据用户的触发操作获取图像渲染指令。
89.在实际的应用场景中,用户在应用程序运行(如游戏软件、视频剪辑软件等)的过程中,终端需要根据用户的触发操作进行实时画面显示,即在终端屏幕上显示目标图像(以用户正在使用视频剪辑软件进行视频剪辑为例,当用户触发了终端界面上的“视频生成”按钮之后,终端获取到用户的触发操作,然后向用户展示已经剪辑后的每一帧图片),可以理解的是,在显示该目标图像之前需要进行图像渲染,在这个过程中,应用程序可以通过调用opengl或者directx等图像应用编程接口中的函数(如directx中的createtexture()、updatetexture()等),然后将实际的图像数据(如顶点数据、纹理数据、索引、着色器参数等)作为调用函数的输入后生成该图像渲染指令。
90.另外,该图像渲染指令可以包括新建目标图像对象的第一指令(如directx中的createtexture())或者更新该目标图像对象对应的图像渲染数据的第二指令(如directx中的updatetexture()),其中,该目标图像对象为渲染该目标图像过程中需渲染的各个图像元素,例如,纹理对象、表面数据等。
91.在步骤s402中,终端根据所述图像渲染指令获取图像渲染数据,所述图像渲染数据为其它已经渲染好的图像对象对应的渲染数据。
92.一种可能的应用场景中,在渲染某帧图像的过程中,可以在远程服务器端新建该帧图像对应的目标图像对象,即由终端向服务器发送新建目标图像对象的第一指令,并且
终端可以自动识别当前待渲染的目标图像对象对应的渲染数据是否已经存在,即判断其它已经渲染好的图像对象在本地节点的历史渲染过程中,是否已经生成该目标图像对象对应的渲染数据,若确定已经生成该目标图像对象对应的渲染数据,可以将该渲染数据作为共享资源数据向服务器发送,以便服务器根据该共享资源数据快速渲染得到该目标图像对象。
93.在一种可能的实现方式中,该图像渲染指令中可以包括应用程序开发人员预先设置的第二存储地址,该第二存储地址为当前待渲染的目标图像对象对应的渲染数据(或者称之为共享资源数据)在客户端的存储地址,因此,终端在获取到该图像渲染指令后,可以根据图像渲染指令中是否包括该第二存储地址确定本地节点中是否已经存储有该目标图像对象对应的渲染数据。
94.因此,在本步骤中,在所述图像渲染指令为所述第一指令的情况下,可以从所述图像渲染指令中获取所述图像渲染数据的第二存储地址;然后根据所述第二存储地址从所述终端的内存中读取所述图像渲染数据。
95.示例地,该第一指令可以为以下形式:
96.createtexture(,

,paddress)
97.其中,paddress即为该第二存储地址。
98.在另一种可能的应用场景中,若本地节点的其它应用程序(跨进程/设备)修改了共享资源数据来更新应用程序的目标图像,此时,需要将更新后的共享资源数据在服务器侧进行更新,以保证终端与服务器存储的共享资源数据的一致性,更新后服务器再基于最新的图像渲染数据进行图像渲染得到目标图像对象,使得终端可以正常的显示画面,此种情况下,终端可以向服务器发送更新所述目标图像对象对应的图像渲染数据的第二指令。
99.在该图像渲染指令为该第二指令的情况下,本步骤可以根据所述图像渲染指令获取所述目标图像对象的标识信息;然后根据所述目标图像对象的标识信息通过查询第二预设数据库获取所述目标图像对象对应的图像渲染数据的第三存储地址;从而根据所述第三存储地址从所述终端的内存中读取所述图像渲染数据。
100.其中,该第二预设数据库中存储有多个已经渲染好的图像对象及各自对应的渲染资源信息,该渲染资源信息包括该图像对象对应的图像渲染数据在终端内存中的存储地址以及占用空间大小等信息。
101.在步骤s403中,终端将所述图像渲染指令和所述图像渲染数据发送至服务器。
102.在步骤s404中,服务器根据所述图像渲染数据通过执行所述图像渲染指令渲染得到目标图像对象。
103.需要说明的是,服务器在接收到终端发送的该图像渲染指令后,在所述图像渲染指令为所述第一指令的情况下,可以从所述图像渲染指令中获取所述图像渲染数据对应的空间大小,然后根据所述空间大小存储所述图像渲染数据,这样,该目标图像对象对应的该图像渲染数据也可以作为共享资源数据,使得其他图像对象也可以基于该目标图像对象对应的图像渲染数据进行图像渲染,提高渲染效率。
104.为便于获取待渲染的各个图像对象分别对应的共享资源数据,服务器在根据所述图像渲染数据通过执行所述图像渲染指令渲染得到目标图像对象后,可以在服务器侧的第一预设数据库中记录目标图像对象与所述图像渲染数据的第一映射关系,从而在对其它图
像对象进行渲染的过程中,方便根据该第一映射关系快速获取到需要的共享资源数据。
105.另外,服务器在接收到终端发送的该图像渲染指令后,并且在所述图像渲染指令为所述第二指令的情况下,由于该第二指令还指示服务器进行共享资源数据的更新,因此,服务器可以将第一地址对应的资源数据更新为所述图像渲染数据,所述第一地址为服务器上所述目标图像对象对应的资源数据存储地址。
106.示例地,图5是根据一示例性实施例示出的一种基于共享资源的远程图像渲染方案的架构示意图,如图5所示,该架构包括终端、服务器以及两者之间的通信模块,终端上的图像应用程序在运行的过程中,终端需要根据用户的触发操作在图像显示模块上进行实时画面显示,此时终端获取到用户的触发操作,应用程序可以通过调用opengl或者directx等图像应用编程接口中的函数(如directx中的createtexture()、updatetexture()等),将实际的图像数据(如顶点数据、纹理数据、索引、着色器参数等)作为调用函数的输入后生成该图像渲染指令,然后将该图像渲染指令发送给图像渲染指令转发模块,在该图像渲染指令为该第一指令(即新建目标图像对象的指令)的情况下,可以通过共享资源管理模块分析图像渲染指令,获取共享资源数据,终端将目标图像渲染指令与共享资源数据发送至服务器,服务器接收终端发来的第一指令,并在内存中分配对应大小的空间存储共享资源数据,服务器执行第一指令,创建出目标图像对象,并记录目标图像对象与共享资源数据的映射关系,服务器通过图像回传模块将创建好的目标图像对象发送至终端,终端接收到服务器发来的目标图像对象,并记录目标图像对象与共享资源数据的映射关系,并在接收到待显示的目标图像对应的全部图像对象后,将该目标图像显示在屏幕上。
107.继续以图5为例,在该图像渲染指令为该第二指令(即更新该目标图像对象对应的图像渲染数据的指令)的情况下,终端上的图像渲染指令转发模块拦截图像应用程序的图像渲染指令,终端通过查询目标图像对象与共享资源数据的映射关系,获取到共享资源数据,然后将图像渲染指令与共享资源数据发送至服务器,服务器接收到终端发来的图像渲染指令和共享资源数据后,更新该共享资源数据至本地内存空间,之后执行图像渲染指令得到渲染后的目标图像队形,并通过图像回传模块将创建好的目标图像对象发送至终端,终端在接收到待显示的目标图像对应的全部图像对象后,将该目标图像显示在屏幕上。
108.在步骤s405中,服务器将所述目标图像对象发送至所述终端。
109.终端在接收到服务器发送的该目标图像对象后,能够在终端屏幕上显示该目标图像对象对应的目标图像。
110.考虑到在实际的图像渲染场景中,若要渲染得到一帧完整的图像,中间需要通过执行多条不同的渲染指令来渲染得到不同的图像对象,例如指令createtexture()用于新建纹理对象,指令updatetexture()用于更新纹理对象对应的共享资源数据后重新创建纹理对象,指令createsurface()用于新建表面数据等,因此,服务器在执行完渲染目标图像对应的全部渲染指令后,终端可以依次接收到执行不同渲染指令的执行结果,该执行结果包括不同的目标图像对象,此时,该目标图像渲染完毕,终端屏幕上可以正常显示该目标图像。
111.在步骤s406中,终端记录所述目标图像对象与所述图像渲染数据的第二映射关系。
112.终端在接收到服务器根据该第一指令创建的该目标图像对象后,终端的第二预设
数据库中还未存储有新建的该目标图像对象与该图像渲染数据的对应关系,因此,为便于后续的渲染过程中终端可以快速获取到该目标图像对象对应的共享资源数据,可以在该第二预设数据库中记录该目标图像对象与所述图像渲染数据的第二映射关系。
113.在步骤s407中,在获取到图像资源同步指令的情况下,向所述服务器发送所述图像资源同步指令,所述图像资源同步指令用于指示所述服务器将所述目标图像对象对应的图像渲染数据发送至所述终端。
114.上述已经提到,当本地节点的其它应用程序(跨进程/设备)修改了共享资源数据来更新应用程序的目标图像时,需要将更新后的共享资源数据在服务器侧进行更新,以保证终端与服务器存储的共享资源数据的一致性,同样地,若服务器通过修改共享资源来更新目标图像后,也会导致终端侧的共享资源数据与服务器侧的共享资源数据不一致,跨进程/设备等其他应用程序也无法使用更新的共享资源,因此,终端在获取到该图像资源同步指令的情况下,可以向服务器发送该图像资源同步指令,以便服务器根据该图像资源同步指令将该目标图像对象对应的图像渲染数据同步至终端侧。
115.在步骤s408中,服务器根据所述图像资源同步指令获取所述目标图像对象对应的所述图像渲染数据,并将所述图像渲染数据发送至所述终端。
116.其中,该图像资源同步指令包括目标图像对象的标识信息。
117.在本步骤中,服务器可以根据所述图像资源同步指令获取所述目标图像对象的标识信息;根据所述目标图像对象的标识信息通过查询第一预设数据库获取所述目标图像对象对应的图像渲染数据的第一存储地址;根据所述第一存储地址获取所述目标图像对象对应的所述图像渲染数据。
118.其中,该第一预设数据库中存储有多个已经渲染好的图像对象及各自对应的渲染资源信息,该渲染资源信息包括该图像对象对应的图像渲染数据在服务器内存中的存储地址以及占用空间大小等信息。
119.在步骤s409中,终端将第二地址对应的资源数据更新为所述图像渲染数据,所述第二地址为终端上所述目标图像对象对应的资源数据存储地址。
120.终端在接收到服务器根据该图像资源同步指令发送的图像渲染数据后,可以将该图像渲染数据存储至终端上所述目标图像对象的资源数据存储地址对应的内存中,从而完成了服务器侧与终端侧共享资源数据的同步。
121.示例地,继续以图5为例,在将服务器侧的共享资源数据同步至终端的过程中,终端上的图像渲染指令转发模块拦截图像应用程序的图像资源同步指令,并将图像资源同步指令发送至服务器,服务器接收到终端发来的图像资源同步指令,并在本地执行,服务器查询目标图像对象与共享资源数据的映射关系,并获取目标图像对象关联的共享资源数据,服务器将操作结果与更新后的共享资源数据发送至终端,终端接收到服务器发来的共享资源数据后,更新本地共享资源信息,实现共享资源数据的同步。
122.在步骤s410中,终端向所述服务器发送资源删除指令,所述资源删除指令用于指示所述服务器将所述目标图像对象对应的图像渲染数据删除。
123.考虑到实际的应用场景中,在创建完成某一图像对象后,若该某一图像对象对应的共享资源数据在后续的渲染过程中不再需要,此种情况下,为了对存储空间进行高效利用,可以将该某一图像对象对应的共享资源数据从内存中删除,因此,在本步骤中,终端可
以向服务器发送资源删除指令,以便服务器可以根据该资源删除指令删除指令中指示的某一图像对象的图像渲染数据,实现对远程服务器空间的有效管理。
124.示例地,继续以图5为例,终端上的图像渲染指令转发模块拦截图像应用程序的资源删除指令,终端将资源删除指令发送至服务器,服务器接收到终端发来的资源删除指令,并通过图像渲染指令执行模块在本地执行该资源删除指令,具体地,服务器通过共享资源管理模块查询目标图像对象与共享资源数据的映射关系,并释放对应的共享资源内存空间,删除映射记录。
125.还需说明的是,在何种契机下删除哪一图像对象对应的图像渲染数据可以由应用程序的开发人员提前预设,例如可以将渲染某一图像的最后一条渲染指令设置为该资源删除指令,以便服务器在执行该资源删除指令后即删除该资源删除指令对应的图像对象的图像渲染数据,此处仅是举例说明,本公开对此不作限定。
126.在步骤s411中,服务器根据所述资源删除指令删除所述目标图像对象对应的图像渲染数据。
127.采用上述方法,已渲染好的图像对象对应的渲染数据可以作为共享资源数据,服务器侧的gpu可以使用已有的该共享资源数据完成图像远程渲染操作,无需再基于原始的图像渲染方式根据原始图像数据逐条计算各个图像元素,这在保证渲染目标结果正确性的同时也提升了图像渲染的效率,从而可以明显提高图像渲染性能。
128.另外,服务器还可以在接收到更新目标图像对象对应的图像渲染数据的指令后,将终端侧的共享资源数据更新至服务器侧,并且在服务器更新目标图像对象对应的图像渲染数据后,服务器可以根据终端发送的图像资源同步指令获取所述目标图像对象对应的所述图像渲染数据;然后将所述图像渲染数据发送至所述终端,这样也保证了服务器与终端共享资源数据的一致性,使得已有进程/设备、应用程序以及服务器均可实时使用最新的共享资源,来渲染和加载图像数据。
129.与此同时,终端可以向服务器发送资源删除指令,以便服务器可以根据该资源删除指令删除指令中指示的某一图像对象的图像渲染数据,实现对远程服务器空间的有效管理。
130.图6是根据一示例性实施例示出的一种渲染图像的装置的框图,应用于服务器,如图6所示,所述装置包括:
131.第一接收模块601,用于接收终端发送的图像渲染指令和图像渲染数据,所述图像渲染数据为已渲染好的图像对象对应的渲染数据;
132.渲染模块602,用于根据所述图像渲染数据通过执行所述图像渲染指令渲染得到目标图像对象;
133.第一发送模块603,用于将所述目标图像对象发送至所述终端,以便所述终端能够显示所述目标图像对象对应的目标图像。
134.可选地,所述图像渲染指令包括新建所述目标图像对象的第一指令,图7是根据图6所示实施例示出的一种渲染图像的装置的框图,如图7所示,所述装置还包括:
135.渲染数据存储模块604,用于在所述图像渲染指令为所述第一指令的情况下,从所述图像渲染指令中获取所述图像渲染数据对应的空间大小;根据所述空间大小存储所述图像渲染数据。
136.可选地,如图7所示,所述装置还包括:
137.第一映射关系记录模块605,用于记录所述目标图像对象与所述图像渲染数据的第一映射关系。
138.可选地,所述图像渲染指令包括更新所述目标图像对象对应的图像渲染数据的第二指令,图8是根据图6所示实施例示出的一种渲染图像的装置的框图,如图8所示,所述装置还包括:
139.第一更新模块606,用于在所述图像渲染指令为所述第二指令的情况下,将第一地址对应的资源数据更新为所述图像渲染数据,所述第一地址为服务器上所述目标图像对象对应的资源数据存储地址。
140.可选地,图9是根据图6所示实施例示出的一种渲染图像的装置的框图,如图9所示,所述装置还包括:
141.第二接收模块607,用于接收终端发送的图像资源同步指令,所述图像资源同步指令用于指示所述服务器将所述目标图像对象对应的图像渲染数据发送至所述终端;
142.图像资源同步模块608,用于根据所述图像资源同步指令获取所述目标图像对象对应的所述图像渲染数据;将所述图像渲染数据发送至所述终端。
143.可选地,所述图像资源同步模块608,用于根据所述图像资源同步指令获取所述目标图像对象的标识信息;根据所述目标图像对象的标识信息通过查询第一预设数据库获取所述目标图像对象对应的图像渲染数据的第一存储地址;根据所述第一存储地址获取所述目标图像对象对应的所述图像渲染数据。
144.可选地,如图9所示,所述装置还包括:
145.资源删除模块609,用于接收所述终端发送的资源删除指令,所述资源删除指令用于指示所述服务器将所述目标图像对象对应的图像渲染数据删除;根据所述资源删除指令删除所述目标图像对象对应的图像渲染数据。
146.图10是根据一示例性实施例示出的一种渲染图像的装置的框图,应用于终端,如图10所示,该装置包括:
147.第一获取模块1001,用于根据用户的触发操作获取图像渲染指令;
148.第二获取模块1002,用于根据所述图像渲染指令获取图像渲染数据,所述图像渲染数据为其它已经渲染好的图像对象对应的渲染数据;
149.第二发送模块1003,用于将所述图像渲染指令和所述图像渲染数据发送至服务器;
150.第三接收模块1004,用于接收所述服务器根据所述图像渲染数据渲染得到的目标图像对象,以便所述终端能够显示所述目标图像对象对应的目标图像。
151.可选地,所述图像渲染指令包括新建所述目标图像对象的第一指令,所述第一获取模块1001,用于在所述图像渲染指令为所述第一指令的情况下,从所述图像渲染指令中获取所述图像渲染数据的第二存储地址;根据所述第二存储地址从所述终端的内存中读取所述图像渲染数据。
152.可选地,图11是根据图10所示实施例示出的一种渲染图像的装置的框图,如图11所示,所述装置还包括:
153.第二映射关系记录模块1005,用于记录所述目标图像对象与所述图像渲染数据的
第二映射关系。
154.可选地,所述图像渲染指令包括更新所述目标图像对象对应的图像渲染数据的第二指令,所述第一获取模块1001,用于在所述图像渲染指令为所述第二指令的情况下,根据所述图像渲染指令获取所述目标图像对象的标识信息;根据所述目标图像对象的标识信息通过查询第二预设数据库获取所述目标图像对象对应的图像渲染数据的第三存储地址;根据所述第三存储地址从所述终端的内存中读取所述图像渲染数据。
155.可选地,如图11所示,所述装置还包括:
156.第三发送模块1006,用于在获取到图像资源同步指令的情况下,向所述服务器发送所述图像资源同步指令,所述图像资源同步指令用于指示所述服务器将所述目标图像对象对应的图像渲染数据发送至所述终端;
157.第四接收模块1007,用于接收所述服务器根据所述图像资源同步指令发送的所述图像渲染数据;
158.第二更新模块1008,用于将第二地址对应的资源数据更新为所述图像渲染数据,所述第二地址为终端上所述目标图像对象对应的资源数据存储地址。
159.可选地,如图11所示,所述装置还包括:
160.第四发送模块1009,用于向所述服务器发送资源删除指令,所述资源删除指令用于指示所述服务器将所述目标图像对象对应的图像渲染数据删除。
161.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
162.采用上述装置,已渲染好的图像对象对应的渲染数据可以作为共享资源数据,服务器侧的gpu可以使用已有的该共享资源数据完成图像远程渲染操作,无需再基于原始的图像渲染方式根据原始图像数据逐条计算各个图像元素,这在保证渲染目标结果正确性的同时也提升了图像渲染的效率,从而可以明显提高图像渲染性能。
163.图12是根据一示例性实施例示出的一种电子设备1200的框图。如图12所示,该电子设备1200可以包括:处理器1201,存储器1202。该电子设备1200还可以包括多媒体组件1203,输入/输出(i/o)接口1204,以及通信组件1205中的一者或多者。
164.其中,处理器1201用于控制该电子设备1200的整体操作,以完成上述的渲染图像的方法中的全部或部分步骤。存储器1202用于存储各种类型的数据以支持在该电子设备1200的操作,这些数据例如可以包括用于在该电子设备1200上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器1202可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件1203可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1202或通过通信组件1205发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/
o接口1204为处理器1201和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件1205用于该电子设备1200与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near field communication,简称nfc),2g、3g、4g、nb-iot、emtc、或其他5g等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件1205可以包括:wi-fi模块,蓝牙模块,nfc模块等等。
165.在一示例性实施例中,电子设备1200可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的渲染图像的方法。
166.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的渲染图像的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1202,上述程序指令可由电子设备1200的处理器1201执行以完成上述的渲染图像的方法。
167.图13是根据一示例性实施例示出的一种电子设备1300的框图。例如,电子设备1300可以被提供为一服务器。参照图13,电子设备1300包括处理器1322,其数量可以为一个或多个,以及存储器1332,用于存储可由处理器1322执行的计算机程序。存储器1332中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1322可以被配置为执行该计算机程序,以执行上述的渲染图像的方法。
168.另外,电子设备1300还可以包括电源组件1326和通信组件1350,该电源组件1326可以被配置为执行电子设备1300的电源管理,该通信组件1350可以被配置为实现电子设备1300的通信,例如,有线或无线通信。此外,该电子设备1300还可以包括输入/输出(i/o)接口1358。电子设备1300可以操作基于存储在存储器1332的操作系统,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
等等。
169.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的渲染图像的方法的步骤。例如,该非临时性计算机可读存储介质可以为上述包括程序指令的存储器1332,上述程序指令可由电子设备1300的处理器1322执行以完成上述的渲染图像的方法。
170.在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的渲染图像的方法的代码部分。
171.以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
172.另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
173.此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
再多了解一些

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

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

相关文献