[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN117008796A - 多屏幕协同渲染方法、装置、设备及介质 - Google Patents

多屏幕协同渲染方法、装置、设备及介质 Download PDF

Info

Publication number
CN117008796A
CN117008796A CN202311250622.5A CN202311250622A CN117008796A CN 117008796 A CN117008796 A CN 117008796A CN 202311250622 A CN202311250622 A CN 202311250622A CN 117008796 A CN117008796 A CN 117008796A
Authority
CN
China
Prior art keywords
rendering
host
screen
arbitrary
frame
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.)
Granted
Application number
CN202311250622.5A
Other languages
English (en)
Other versions
CN117008796B (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.)
Tus Digital Technology Shenzhen Co ltd
Original Assignee
Tus Digital Technology Shenzhen 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 Tus Digital Technology Shenzhen Co ltd filed Critical Tus Digital Technology Shenzhen Co ltd
Priority to CN202311250622.5A priority Critical patent/CN117008796B/zh
Publication of CN117008796A publication Critical patent/CN117008796A/zh
Application granted granted Critical
Publication of CN117008796B publication Critical patent/CN117008796B/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Digital Computer Display Output (AREA)

Abstract

本发明涉及数据处理技术领域,提供一种多屏幕协同渲染方法、装置、设备及介质,一方面,中控主机定时广播携带帧序号的指令,使多屏幕间实现帧同步,无需消息等待,避免由于消息传递产生额外的延时;一方面,基于至少一个渲染主机进行分片渲染,由多个渲染主机分摊了渲染负载,渲染性能不会受到单帧图像渲染分辨率大小的限制;另一方面,基于离屏帧缓冲及屏幕帧缓冲独立处理渲染与屏显,实现了渲染与屏显的解耦,使渲染过程具有更大的灵活性。

Description

多屏幕协同渲染方法、装置、设备及介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种多屏幕协同渲染方法、装置、设备及介质。
背景技术
三维场景(Scene)的渲染是基于物理GPU(Graphics Processing Unit,图形处理器)算力的,当位于虚拟相机视锥体内的场景模型顶点数目或渲染管线的实际绘制尺寸(Drawing buffer size)超过一定的阈值后,单个GPU设备的算力就必然会出现无法承担如此高负载渲染任务的情形。
基于三维图形渲染管线的基本属性特征,大多数实时渲染的性能负载都集中在“逐片元计算”上,众多顶点经过顶点着色器(Vertex Shader)阶段处理时会有一个图元组装操作,该操作之后就会对位于视锥体内的图元进行片元划分,片元的数量远远超出顶点的数量,会由于GPU负载过高而影响渲染效果。
因此,当需要为场馆等场景展示超高分辨率物理大屏提供高精度的实时三维场景渲染支撑时,就亟需实现一套新的基于多台设备的三维分布式协同渲染解决方案。
发明内容
鉴于以上内容,有必要提供一种多屏幕协同渲染方法、装置、设备及介质,旨在解决由于GPU负载过高而影响渲染效果的问题。
一种多屏幕协同渲染方法,应用于多屏幕协同渲染系统,所述多屏幕协同渲染系统包括中控主机、至少一个渲染主机,以及与所述至少一个渲染主机中每个渲染主机对应的显示屏;所述多屏幕协同渲染方法包括:
所述中控主机每隔预设时间间隔向每个渲染主机广播指令;
当在所述至少一个渲染主机中有任意渲染主机接收到所述指令时,所述任意渲染主机检测自身的渲染状态;
当所述任意渲染主机的渲染状态为非渲染中时,所述任意渲染主机获取所述指令中所携带的帧序号作为当前帧序号;
所述任意渲染主机获取自身的离屏帧缓冲中存储的帧序号作为上一帧序号;
所述任意渲染主机对比所述当前帧序号与所述上一帧序号;
当所述当前帧序号与所述上一帧序号相同时,所述任意渲染主机从所述离屏帧缓冲中获取与所述上一帧序号对应的片元数据,并将所述片元数据写入自身的屏幕帧缓冲进行对应显示屏的屏显。
根据本发明优选实施例,所述方法还包括:
所述多屏幕协同渲染系统获取当前场景的几何结构、内容复杂度及渲染需求数据;
所述多屏幕协同渲染系统根据所述几何结构、所述内容复杂度及所述渲染需求数据确定分片数量作为所述显示屏的数量;
所述多屏幕协同渲染系统为每个显示屏配置对应的渲染主机;
所述多屏幕协同渲染系统获取每个渲染主机的计算能力、网络带宽及当前负载;
所述多屏幕协同渲染系统根据每个渲染主机的计算能力、网络带宽及当前负载对每个渲染主机进行调度。
根据本发明优选实施例,每个渲染主机中帧序号的初始值比所述中控主机中帧序号的初始值大1;所述方法还包括:
当所述任意渲染主机的渲染状态为渲染中时,所述任意渲染主机确定自身渲染超时;
所述任意渲染主机继续进行渲染处理,将自身离屏帧缓冲中存储的帧序号的值增加1,并放弃执行对所述当前帧序号所对应帧的渲染处理。
根据本发明优选实施例,所述任意渲染主机从所述离屏帧缓冲中获取与所述上一帧序号对应的片元数据前,所述方法还包括:
所述任意渲染主机对所述上一帧序号对应的帧进行渲染处理,得到所述片元数据;
所述任意渲染主机将所述片元数据存储至所述离屏帧缓冲。
根据本发明优选实施例,所述方法还包括:
当所述当前帧序号与所述上一帧序号不同时,或者在所述任意渲染主机将所述片元数据写入自身的屏幕帧缓冲进行对应显示屏的屏显后,所述任意渲染主机将自身离屏帧缓冲中存储的帧序号的值增加1,并对所述当前帧序号所对应的帧进行渲染处理。
根据本发明优选实施例,所述方法还包括:
所述任意渲染主机基于WebGL2的帧缓冲对象维护所述离屏帧缓冲及所述屏幕帧缓冲。
根据本发明优选实施例,所述方法还包括:
当所述指令为所述任意渲染主机接收的首个指令时,所述任意渲染主机在所述屏幕帧缓冲内存储初始化的3D上下文清除色数据。
一种多屏幕协同渲染装置,运行于多屏幕协同渲染系统,所述多屏幕协同渲染系统包括中控主机、至少一个渲染主机,以及与所述至少一个渲染主机中每个渲染主机对应的显示屏;所述多屏幕协同渲染装置包括:
所述中控主机,用于每隔预设时间间隔向每个渲染主机广播指令;
所述至少一个渲染主机中的任意渲染主机,用于当接收到所述指令时,检测自身的渲染状态;
所述任意渲染主机,还用于当所述任意渲染主机的渲染状态为非渲染中时,获取所述指令中所携带的帧序号作为当前帧序号;
所述任意渲染主机,还用于获取自身的离屏帧缓冲中存储的帧序号作为上一帧序号;
所述任意渲染主机,还用于对比所述当前帧序号与所述上一帧序号;
所述任意渲染主机,还用于当所述当前帧序号与所述上一帧序号相同时,从所述离屏帧缓冲中获取与所述上一帧序号对应的片元数据,并将所述片元数据写入自身的屏幕帧缓冲进行对应显示屏的屏显。
一种计算机设备,所述计算机设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现所述多屏幕协同渲染方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述多屏幕协同渲染方法。
由以上技术方案可以看出,一方面,中控主机定时广播携带帧序号的指令,使多屏幕间实现帧同步,无需消息等待,避免由于消息传递产生额外的延时;一方面,基于至少一个渲染主机进行分片渲染,由多个渲染主机分摊了渲染负载,渲染性能不会受到单帧图像渲染分辨率大小的限制;另一方面,基于离屏帧缓冲及屏幕帧缓冲独立处理渲染与屏显,实现了渲染与屏显的解耦,使渲染过程具有更大的灵活性。
附图说明
图1是本发明多屏幕协同渲染方法的应用环境示意图。
图2是本发明多屏幕协同渲染方法的较佳实施例的流程图。
图3是本发明多屏幕协同渲染效果的示意图。
图4是本发明多屏幕协同渲染装置的较佳实施例的功能模块图。
图5是本发明实现多屏幕协同渲染方法的较佳实施例的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,是本发明多屏幕协同渲染方法的应用环境示意图。
所述多屏幕协同渲染方法应用于多屏幕协同渲染系统,所述多屏幕协同渲染系统包括中控主机、至少一个渲染主机(图1中仅以4个渲染主机为例,实际使用场景中不仅限于4个渲染主机),以及与所述至少一个渲染主机中每个渲染主机对应的显示屏,具体可以如图1中所示,渲染主机1对应于显示屏1,渲染主机2对应于显示屏2,渲染主机3对应于显示屏3,渲染主机4对应于显示屏4。所述中控主机向所述渲染主机1、所述渲染主机2、所述渲染主机3及所述渲染主机4广播指令,所述渲染主机1、所述渲染主机2、所述渲染主机3及所述渲染主机4在接收到所述中控主机广播的指令后,基于屏幕缓存技术分别在本地执行渲染处理,并结合多个显示屏进行渲染画面的最终显示,进而实现多屏幕协同渲染,如可以实现超高分辨率拼接大屏的动画显示效果。
如图2所示,是本发明多屏幕协同渲染方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
所述多屏幕协同渲染方法应用于一个或者多个计算机设备中,所述计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(DigitalSignal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
所述计算机设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器构成的云。
所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
具体地,所述多屏幕协同渲染方法包括:
S10,所述中控主机每隔预设时间间隔向每个渲染主机广播指令。
其中,所述指令中可以携带用于帧渲染及屏显用途的帧序号、虚拟相机类型及参数(如虚拟相机的渲染范围)等数据。
其中,所述预设时间间隔相当于锁帧,可以根据实际使用场景进行自定义配置,例如:所述预设时间间隔可以配置为每秒锁60帧,即两帧之间间隔为1000ms/60,约等于16.67ms。
这样,所述中控主机可以按照固定的1000ms/60的时间间隔通过Websocket向所有渲染主机发送指令。
广播指令的目的是启动下一帧渲染和屏显上一帧渲染结果。
可以理解的是,最终多屏幕间协同渲染的帧同步即是依赖该广播时机。并且,指令数据的传递采用单向数据流,避免由于消息回传导致的通信延迟影响渲染性能。
在本实施例中,所述方法还包括:
所述多屏幕协同渲染系统获取当前场景的几何结构、内容复杂度及渲染需求数据;
所述多屏幕协同渲染系统根据所述几何结构、所述内容复杂度及所述渲染需求数据确定分片数量作为所述显示屏的数量;
所述多屏幕协同渲染系统为每个显示屏配置对应的渲染主机;
所述多屏幕协同渲染系统获取每个渲染主机的计算能力、网络带宽及当前负载;
所述多屏幕协同渲染系统根据每个渲染主机的计算能力、网络带宽及当前负载对每个渲染主机进行调度。
在上述实施例中,首先根据当前场景的几何结构、内容复杂度及渲染需求数据对待渲染的场景进行分片划分,实现可分片裁减、光栅化并最终渲染。进一步根据计算能力、网络带宽及当前负载为每个分片(即每个显示屏)配置对应的渲染主机,并对分配的各渲染主机进行合理的调度与控制,实现屏幕动态裁减,各渲染主机渲染各自负责的分片场景。
S11,当在所述至少一个渲染主机中有任意渲染主机接收到所述指令时,所述任意渲染主机检测自身的渲染状态。
其中,所述渲染状态可以包括渲染中、非渲染中。
在本实施例中,每个渲染主机中帧序号的初始值比所述中控主机中帧序号的初始值大1。例如:所述中控主机上维护的帧序号初始值为0,所述中控主机每次发送指令之前就将帧序号递增1;相应地,各个渲染主机上的帧序号初始值则是1,当渲染主机未发生“渲染超时”时每启动一帧渲染之前帧序号就递增1,若检测到发生“渲染超时”则将本地帧序号值设置为当前指令携带的帧序号值+1,以保证多屏幕间的帧同步。
正常情况下,按照固定的指令下发频率,在所述中控主机下发下一帧指令时,对应渲染主机应该刚好完成上一帧渲染,因此,当所述任意渲染主机的渲染状态为渲染中时,则说明该任意渲染主机渲染超时。
在本实施例中,所述方法还包括:
当所述任意渲染主机的渲染状态为渲染中时,所述任意渲染主机确定自身渲染超时;
所述任意渲染主机继续进行渲染处理,将自身离屏帧缓冲中存储的帧序号的值增加1,并放弃执行对所述当前帧序号所对应帧的渲染处理。
在上述实施例中,当所述任意渲染主机发生渲染超时时,所述任意渲染主机继续完成当前渲染任务,并将自身离屏帧缓冲中存储的帧序号的值增加1,以保证当所述中控主机下次下发指令时所述中控主机中存储的帧序号与该任意渲染主机中存储的帧序号相同。并且,放弃执行对所述当前帧序号所对应帧的渲染处理,由于锁帧的配置,因此两帧指令的间隔适宜,这样,对应显示屏上可能只产生轻微抖动,不会对视觉效果产生严重影响,后续也仍然可以保持显示屏间的帧同步,无需消息等待,有效避免了消息传递导致的额外延迟。
S12,当所述任意渲染主机的渲染状态为非渲染中时,所述任意渲染主机获取所述指令中所携带的帧序号作为当前帧序号。
在本实施例中,当所述任意渲染主机的渲染状态为非渲染中时,说明所述任意渲染主机已完成当前正在执行的渲染任务,可以继续进行后续操作。
具体地,所述任意渲染主机获取所述指令中所携带的帧序号作为当前帧序号,以供后续对比时使用。
S13,所述任意渲染主机获取自身的离屏帧缓冲中存储的帧序号作为上一帧序号。
在本实施例中,所述离屏帧缓冲用于存储上一帧数据,包括上一帧序号、上一帧完成渲染后得到的片元数据等。即,所述离屏帧缓冲中的数据为对应渲染主机在上一次接收到指令后的渲染结果图像数据。
其中,所述离屏帧缓冲根据WebGL2的帧缓冲对象进行具体实现。
S14,所述任意渲染主机对比所述当前帧序号与所述上一帧序号。
在本实施例中,所述任意渲染主机对比所述当前帧序号与所述上一帧序号,以便后续根据不同的比较结果进行不同的处理。
S15,当所述当前帧序号与所述上一帧序号相同时,所述任意渲染主机从所述离屏帧缓冲中获取与所述上一帧序号对应的片元数据,并将所述片元数据写入自身的屏幕帧缓冲进行对应显示屏的屏显。
在本实施例中,当所述当前帧序号与所述上一帧序号相同时,说明所述中控主机与所述任意渲染主机间保持了帧同步,因此,可以对所述离屏帧缓冲中存储的上一帧渲染后得到的片元数据进行显示,即将所述离屏帧缓冲中存储的上一帧序号对应的片元数据发送至屏幕帧缓冲,并在所述任意渲染主机对应的显示屏上显示所述片元数据。
其中,所述屏幕帧缓冲中存储的数据用于决定对应显示屏的显示内容,是用于对当前的显示屏进行渲染的颜色帧缓冲区。
在本实施例中,所述任意渲染主机从所述离屏帧缓冲中获取与所述上一帧序号对应的片元数据前,所述方法还包括:
所述任意渲染主机对所述上一帧序号对应的帧进行渲染处理,得到所述片元数据;
所述任意渲染主机将所述片元数据存储至所述离屏帧缓冲。
其中,由于所述离屏帧缓冲用于存储上一帧已完成渲染的片元数据,所述屏幕帧缓冲用于存储当前需要进行屏显的数据,因此,通过离屏帧缓冲及屏幕帧缓冲实现了渲染与屏幕显示的独立处理,进而实现了渲染与屏显的解耦,使渲染过程具有更大的灵活性。
在本实施例中,所述方法还包括:
当所述当前帧序号与所述上一帧序号不同时,或者在所述任意渲染主机将所述片元数据写入自身的屏幕帧缓冲进行对应显示屏的屏显后,所述任意渲染主机将自身离屏帧缓冲中存储的帧序号的值增加1,并对所述当前帧序号所对应的帧进行渲染处理。
在上述实施例中,通过将自身离屏帧缓冲中存储的帧序号的值增加1,能够保持后续帧同步,并对所述当前帧序号所对应的帧进行渲染处理,以用于后续的屏幕显示。
在本实施例中,所述方法还包括:
所述任意渲染主机基于WebGL2的帧缓冲对象维护所述离屏帧缓冲及所述屏幕帧缓冲。
在上述实施例中,相较于其他采用本地原生平台如DirectX、OpenGL等的方案,本实施例基于WEB(World Wide Web,全球广域网)平台的webgl2技术能够支持跨平台、跨多端,且支持轻量级部署,进而能够支持多个渲染主机的同步协同处理。
在本实施例中,所述方法还包括:
当所述指令为所述任意渲染主机接收的首个指令时,所述任意渲染主机在所述屏幕帧缓冲内存储初始化的3D(3 Dimension,三维)上下文清除色数据。
进一步地,拼接每个渲染主机对应的显示屏的显示画面,即可得到物理拼接大屏的渲染画面,并且,在所述中控主机的逻辑屏幕上同步显示该渲染画。
在本实施例中,可以在多台渲染主机上分别设置具有不同参数的虚拟相机来划分同一个三维场景的世界空间(World space),进而实现对最终绘制的结果图像的分片划分效果。如图3所示,为本发明多屏幕协同渲染效果的示意图。承接前文,以4个渲染主机对应的4个显示屏为例,图3的上部分画面为每个显示屏独立显示自己所负责的分片的效果,下部分画面为对应的逻辑大屏的显示效果。将渲染负载分摊到4个渲染主机上,再综合4个显示屏的显示画面,最终实现将各个分片在一个逻辑大屏上进行显示的显示效果。
并且,分片效果只需要配合修改投影变换矩阵和对应虚拟相机参数(本质就是对三维空间具体分片方式的不同)就可以分别适应正投影(Orthographic projection)或透视投影(Perspective projection)两种不同的投影情形。
特别地,在透视投影情形下对三维场景进行分片划分的关键是配置对应的投影矩阵,常见矢量矩阵运算库中都实现了一个名称类似frustum的方法,通过设置该方法的left、right、bottom、top参数即可实现视锥体(Viewing frustum)的拆分。通过基于视锥体分割的场景分片技术可以实现GPU(Graphics Processing Unit,图形处理器)负载的分摊,从而为超高分辨率下大场景实时渲染需求提供一种基于Web平台的解决方案。
由以上技术方案可以看出,一方面,中控主机定时广播携带帧序号的指令,使多屏幕间实现帧同步,无需消息等待,避免由于消息传递产生额外的延时;一方面,基于至少一个渲染主机进行分片渲染,由多个渲染主机分摊了渲染负载,渲染性能不会受到单帧图像渲染分辨率大小的限制;另一方面,基于离屏帧缓冲及屏幕帧缓冲独立处理渲染与屏显,实现了渲染与屏显的解耦,使渲染过程具有更大的灵活性。
如图4所示,是本发明多屏幕协同渲染装置的较佳实施例的功能模块图。所述多屏幕协同渲染装置11包括中控主机110、任意渲染主机111,是能够被处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,具体功能将在后续的实施例中详述。
在本实施例中,所述多屏幕协同渲染装置11运行于多屏幕协同渲染系统,所述多屏幕协同渲染系统包括所述中控主机110、至少一个渲染主机(包括所述任意渲染主机111),以及与所述至少一个渲染主机中每个渲染主机对应的显示屏;所述装置包括:
所述中控主机110,用于每隔预设时间间隔向每个渲染主机广播指令;
所述至少一个渲染主机中的任意渲染主机111,用于当接收到所述指令时,检测自身的渲染状态;
所述任意渲染主机111,还用于当所述任意渲染主机111的渲染状态为非渲染中时,获取所述指令中所携带的帧序号作为当前帧序号;
所述任意渲染主机111,还用于获取自身的离屏帧缓冲中存储的帧序号作为上一帧序号;
所述任意渲染主机111,还用于对比所述当前帧序号与所述上一帧序号;
所述任意渲染主机111,还用于当所述当前帧序号与所述上一帧序号相同时,从所述离屏帧缓冲中获取与所述上一帧序号对应的片元数据,并将所述片元数据写入自身的屏幕帧缓冲进行对应显示屏的屏显。
由以上技术方案可以看出,一方面,中控主机定时广播携带帧序号的指令,使多屏幕间实现帧同步,无需消息等待,避免由于消息传递产生额外的延时;一方面,基于至少一个渲染主机进行分片渲染,由多个渲染主机分摊了渲染负载,渲染性能不会受到单帧图像渲染分辨率大小的限制;另一方面,基于离屏帧缓冲及屏幕帧缓冲独立处理渲染与屏显,实现了渲染与屏显的解耦,使渲染过程具有更大的灵活性。
如图5所示,是本发明实现多屏幕协同渲染方法的较佳实施例的计算机设备的结构示意图。
所述计算机设备1可以包括存储器12、处理器13和总线,还可以包括存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如多屏幕协同渲染程序。
本领域技术人员可以理解,所述示意图仅仅是计算机设备1的示例,并不构成对计算机设备1的限定,所述计算机设备1既可以是总线型结构,也可以是星形结构,所述计算机设备1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如所述计算机设备1还可以包括输入输出设备、网络接入设备等。
需要说明的是,所述计算机设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是计算机设备1的内部存储单元,例如该计算机设备1的移动硬盘。存储器12在另一些实施例中也可以是计算机设备1的外部存储设备,例如计算机设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器12还可以既包括计算机设备1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于计算机设备1的应用软件及各类数据,例如多屏幕协同渲染程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是所述计算机设备1的控制核心(Control Unit),利用各种接口和线路连接整个计算机设备1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如执行多屏幕协同渲染程序等),以及调用存储在所述存储器12内的数据,以执行计算机设备1的各种功能和处理数据。
所述处理器13执行所述计算机设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个多屏幕协同渲染方法实施例中的步骤,例如图2所示的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机程序在所述计算机设备1中的执行过程。例如,所述计算机程序可以被分割成中控主机110、任意渲染主机111。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述多屏幕协同渲染方法的部分。
所述计算机设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器等。
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图5中仅用一根直线表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及至少一个处理器13等之间的连接通信。
尽管未示出,所述计算机设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器13逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述计算机设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述计算机设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该计算机设备1与其他计算机设备之间建立通信连接。
可选地,该计算机设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在计算机设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
图5仅示出了具有组件12-13的计算机设备1,本领域技术人员可以理解的是,图5示出的结构并不构成对所述计算机设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
结合图2,所述计算机设备1中的所述存储器12存储多个指令以实现一种多屏幕协同渲染方法,所述处理器13可执行所述多个指令从而实现:
所述中控主机每隔预设时间间隔向每个渲染主机广播指令;
当在所述至少一个渲染主机中有任意渲染主机接收到所述指令时,所述任意渲染主机检测自身的渲染状态;
当所述任意渲染主机的渲染状态为非渲染中时,所述任意渲染主机获取所述指令中所携带的帧序号作为当前帧序号;
所述任意渲染主机获取自身的离屏帧缓冲中存储的帧序号作为上一帧序号;
所述任意渲染主机对比所述当前帧序号与所述上一帧序号;
当所述当前帧序号与所述上一帧序号相同时,所述任意渲染主机从所述离屏帧缓冲中获取与所述上一帧序号对应的片元数据,并将所述片元数据写入自身的屏幕帧缓冲进行对应显示屏的屏显。
具体地,所述处理器13对上述指令的具体实现方法可参考图2对应实施例中相关步骤的描述,在此不赘述。
需要说明的是,本案中所涉及到的数据均为合法取得。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本发明可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。本发明中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种多屏幕协同渲染方法,其特征在于,应用于多屏幕协同渲染系统,所述多屏幕协同渲染系统包括中控主机、至少一个渲染主机,以及与所述至少一个渲染主机中每个渲染主机对应的显示屏;所述多屏幕协同渲染方法包括:
所述中控主机每隔预设时间间隔向每个渲染主机广播指令;
当在所述至少一个渲染主机中有任意渲染主机接收到所述指令时,所述任意渲染主机检测自身的渲染状态;
当所述任意渲染主机的渲染状态为非渲染中时,所述任意渲染主机获取所述指令中所携带的帧序号作为当前帧序号;
所述任意渲染主机获取自身的离屏帧缓冲中存储的帧序号作为上一帧序号;
所述任意渲染主机对比所述当前帧序号与所述上一帧序号;
当所述当前帧序号与所述上一帧序号相同时,所述任意渲染主机从所述离屏帧缓冲中获取与所述上一帧序号对应的片元数据,并将所述片元数据写入自身的屏幕帧缓冲进行对应显示屏的屏显。
2.如权利要求1所述的多屏幕协同渲染方法,其特征在于,所述方法还包括:
所述多屏幕协同渲染系统获取当前场景的几何结构、内容复杂度及渲染需求数据;
所述多屏幕协同渲染系统根据所述几何结构、所述内容复杂度及所述渲染需求数据确定分片数量作为所述显示屏的数量;
所述多屏幕协同渲染系统为每个显示屏配置对应的渲染主机;
所述多屏幕协同渲染系统获取每个渲染主机的计算能力、网络带宽及当前负载;
所述多屏幕协同渲染系统根据每个渲染主机的计算能力、网络带宽及当前负载对每个渲染主机进行调度。
3.如权利要求1所述的多屏幕协同渲染方法,其特征在于,每个渲染主机中帧序号的初始值比所述中控主机中帧序号的初始值大1;所述方法还包括:
当所述任意渲染主机的渲染状态为渲染中时,所述任意渲染主机确定自身渲染超时;
所述任意渲染主机继续进行渲染处理,将自身离屏帧缓冲中存储的帧序号的值增加1,并放弃执行对所述当前帧序号所对应帧的渲染处理。
4.如权利要求1所述的多屏幕协同渲染方法,其特征在于,所述任意渲染主机从所述离屏帧缓冲中获取与所述上一帧序号对应的片元数据前,所述方法还包括:
所述任意渲染主机对所述上一帧序号对应的帧进行渲染处理,得到所述片元数据;
所述任意渲染主机将所述片元数据存储至所述离屏帧缓冲。
5.如权利要求1所述的多屏幕协同渲染方法,其特征在于,所述方法还包括:
当所述当前帧序号与所述上一帧序号不同时,或者在所述任意渲染主机将所述片元数据写入自身的屏幕帧缓冲进行对应显示屏的屏显后,所述任意渲染主机将自身离屏帧缓冲中存储的帧序号的值增加1,并对所述当前帧序号所对应的帧进行渲染处理。
6.如权利要求1所述的多屏幕协同渲染方法,其特征在于,所述方法还包括:
所述任意渲染主机基于WebGL2的帧缓冲对象维护所述离屏帧缓冲及所述屏幕帧缓冲。
7.如权利要求1所述的多屏幕协同渲染方法,其特征在于,所述方法还包括:
当所述指令为所述任意渲染主机接收的首个指令时,所述任意渲染主机在所述屏幕帧缓冲内存储初始化的3D上下文清除色数据。
8.一种多屏幕协同渲染装置,其特征在于,运行于多屏幕协同渲染系统,所述多屏幕协同渲染系统包括中控主机、至少一个渲染主机,以及与所述至少一个渲染主机中每个渲染主机对应的显示屏;所述多屏幕协同渲染装置包括:
所述中控主机,用于每隔预设时间间隔向每个渲染主机广播指令;
所述至少一个渲染主机中的任意渲染主机,用于当接收到所述指令时,检测自身的渲染状态;
所述任意渲染主机,还用于当所述任意渲染主机的渲染状态为非渲染中时,获取所述指令中所携带的帧序号作为当前帧序号;
所述任意渲染主机,还用于获取自身的离屏帧缓冲中存储的帧序号作为上一帧序号;
所述任意渲染主机,还用于对比所述当前帧序号与所述上一帧序号;
所述任意渲染主机,还用于当所述当前帧序号与所述上一帧序号相同时,从所述离屏帧缓冲中获取与所述上一帧序号对应的片元数据,并将所述片元数据写入自身的屏幕帧缓冲进行对应显示屏的屏显。
9. 一种计算机设备,其特征在于,所述计算机设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现如权利要求1至7中任意一项所述的多屏幕协同渲染方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现如权利要求1至7中任意一项所述的多屏幕协同渲染方法。
CN202311250622.5A 2023-09-26 2023-09-26 多屏幕协同渲染方法、装置、设备及介质 Active CN117008796B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311250622.5A CN117008796B (zh) 2023-09-26 2023-09-26 多屏幕协同渲染方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311250622.5A CN117008796B (zh) 2023-09-26 2023-09-26 多屏幕协同渲染方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN117008796A true CN117008796A (zh) 2023-11-07
CN117008796B CN117008796B (zh) 2023-12-26

Family

ID=88567490

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311250622.5A Active CN117008796B (zh) 2023-09-26 2023-09-26 多屏幕协同渲染方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN117008796B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103491317A (zh) * 2013-09-06 2014-01-01 北京东方艾迪普科技发展有限公司 一种三维图形图像多屏同步播放方法、设备及系统
CN105635805A (zh) * 2015-12-18 2016-06-01 歌尔声学股份有限公司 一种虚拟现实场景中优化运动图像的方法和装置
CN109343774A (zh) * 2018-10-29 2019-02-15 广东明星创意动画有限公司 一种快速文件预处理渲染系统
CN110806847A (zh) * 2019-10-30 2020-02-18 支付宝(杭州)信息技术有限公司 一种分布式多屏幕显示方法、装置、设备及系统
CN112347408A (zh) * 2021-01-07 2021-02-09 北京小米移动软件有限公司 渲染方法、装置、电子设备及存储介质
CN113778362A (zh) * 2021-09-16 2021-12-10 平安银行股份有限公司 基于人工智能的屏幕控制方法、装置、设备及存储介质
CN114297746A (zh) * 2021-12-06 2022-04-08 万翼科技有限公司 建筑信息模型的渲染方法、装置、电子设备和存储介质
CN115543244A (zh) * 2022-09-23 2022-12-30 瑞芯微电子股份有限公司 多屏拼接方法和装置、电子设备和存储介质
CN116821040A (zh) * 2023-08-30 2023-09-29 西安芯云半导体技术有限公司 基于gpu直接存储器访问的显示加速方法、装置及介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103491317A (zh) * 2013-09-06 2014-01-01 北京东方艾迪普科技发展有限公司 一种三维图形图像多屏同步播放方法、设备及系统
CN105635805A (zh) * 2015-12-18 2016-06-01 歌尔声学股份有限公司 一种虚拟现实场景中优化运动图像的方法和装置
CN109343774A (zh) * 2018-10-29 2019-02-15 广东明星创意动画有限公司 一种快速文件预处理渲染系统
CN110806847A (zh) * 2019-10-30 2020-02-18 支付宝(杭州)信息技术有限公司 一种分布式多屏幕显示方法、装置、设备及系统
CN112347408A (zh) * 2021-01-07 2021-02-09 北京小米移动软件有限公司 渲染方法、装置、电子设备及存储介质
CN113778362A (zh) * 2021-09-16 2021-12-10 平安银行股份有限公司 基于人工智能的屏幕控制方法、装置、设备及存储介质
CN114297746A (zh) * 2021-12-06 2022-04-08 万翼科技有限公司 建筑信息模型的渲染方法、装置、电子设备和存储介质
CN115543244A (zh) * 2022-09-23 2022-12-30 瑞芯微电子股份有限公司 多屏拼接方法和装置、电子设备和存储介质
CN116821040A (zh) * 2023-08-30 2023-09-29 西安芯云半导体技术有限公司 基于gpu直接存储器访问的显示加速方法、装置及介质

Also Published As

Publication number Publication date
CN117008796B (zh) 2023-12-26

Similar Documents

Publication Publication Date Title
CN110035328B (zh) 用于动态抖动和延迟容忍渲染的系统和方法
CN111754614B (zh) 基于vr视频渲染方法、装置、电子设备及存储介质
US7782327B2 (en) Multiple parallel processor computer graphics system
KR101563098B1 (ko) 커맨드 프로세서를 갖는 그래픽 프로세싱 유닛
US9479570B2 (en) System and method for processing load balancing of graphic streams
CN102609971A (zh) 嵌入式gpu实现3d-gis的快速渲染系统
CN104660711A (zh) 一种基于图形处理器虚拟化的远程可视化应用方法
US20200020067A1 (en) Concurrent binning and rendering
CN115034990A (zh) 实时场景下的图像去雾处理方法、装置、设备及介质
CN112316433A (zh) 游戏画面渲染方法、装置、服务器和存储介质
TW202141418A (zh) 處理拆分渲染中的遮蔽之方法及裝置
CN117008796B (zh) 多屏幕协同渲染方法、装置、设备及介质
CN117032617B (zh) 基于多屏幕的网格拾取方法、装置、设备及介质
CN102087465B (zh) 一种真三维仿真区域的直接赋值显示方法
JP2021190098A (ja) 画像前処理方法、装置、電子機器及び記憶媒体
US10678553B2 (en) Pro-active GPU hardware bootup
Nonaka et al. Hybrid hardware-accelerated image composition for sort-last parallel rendering on graphics clusters with commodity image compositor
CN114428573B (zh) 特效图像处理方法、装置、电子设备及存储介质
CN117032618B (zh) 基于多屏幕的动画旋转方法、设备及介质
CN115705668A (zh) 一种视图绘制的方法、装置及存储介质
CN102368211A (zh) 一种使用osd加速实现硬件鼠标的方法
CN118710795A (zh) 三维场景渲染方法、装置、设备及介质
EP4258218A1 (en) Rendering method, device, and system
CN115277376B (zh) 灾备切换方法、装置、设备及介质
CN116418896B (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
GR01 Patent grant
GR01 Patent grant