CN117576358A - 一种云渲染方法及装置 - Google Patents

一种云渲染方法及装置 Download PDF

Info

Publication number
CN117576358A
CN117576358A CN202311602279.6A CN202311602279A CN117576358A CN 117576358 A CN117576358 A CN 117576358A CN 202311602279 A CN202311602279 A CN 202311602279A CN 117576358 A CN117576358 A CN 117576358A
Authority
CN
China
Prior art keywords
frame
display device
rendering data
refresh period
rendering
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
CN202311602279.6A
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.)
Beijing Lenovo Software Ltd
Original Assignee
Beijing Lenovo Software 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 Beijing Lenovo Software Ltd filed Critical Beijing Lenovo Software Ltd
Priority to CN202311602279.6A priority Critical patent/CN117576358A/zh
Publication of CN117576358A publication Critical patent/CN117576358A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)

Abstract

本申请提出了一种云渲染方法及装置,终端设备在进入第一刷新周期,接收服务器渲染后发送的针对终端设备的第一显示装置的第一帧渲染数据,读取在第二刷新周期获取并缓存的针对终端设备的第二显示装置的第二帧渲染数据;该第二刷新周期是针对第一刷新周期的历史刷新周,这样,在第一刷新周期中,终端设备可以基于第一帧渲染数据和第二帧渲染数据,控制第一显示装置输出第一画面图像,第二显示装置输出第二画面图像。

Description

一种云渲染方法及装置
技术领域
本申请主要涉及云渲染应用领域,更具体地说是涉及一种云渲染方法及装置。
背景技术
云渲染是一种由服务器进行图像渲染,将所得到的渲染数据反馈给用户终端进行显示的技术,已被广泛应用于众多领域,如应用于虚拟现实(Virtual Reality,VR)或增强现实(Augmented Reality,AR)头显终端,实时显示服务器提供的三维场景立体画面。
然而,在服务器的计算资源有限,渲染大模型场景的情况下,单帧图像渲染量很大,不仅会增大渲染周期,也会占用较大带宽资源,甚至会导致头显终端的显示画面卡顿,影响观看体验。
发明内容
为了解决上述技术问题,本申请提供了以下技术方案:
本申请提出了一种云渲染方法,所述云渲染方法包括:
在进入第一刷新周期,接收服务器渲染后发送的针对终端设备的第一显示装置的第一帧渲染数据;
读取在第二刷新周期获取并缓存的针对所述终端设备的第二显示装置的第二帧渲染数据;所述第二刷新周期是针对所述第一刷新周期的历史刷新周期;
基于所述第一帧渲染数据和所述第二帧渲染数据,控制所述第一显示装置输出第一画面图像,所述第二显示装置输出第二画面图像。
可选的,所述基于所述第一帧渲染数据和所述第二帧渲染数据,控制所述第一显示装置输出第一画面图像,所述第二显示装置输出第二画面图像,包括:
获得所述第一刷新周期内针对所述第一显示装置的第一帧位姿矫正信息,以及针对所述第二显示装置的第二帧位姿矫正信息;
基于所述第一帧位姿矫正信息对所述第一帧渲染数据进行处理,得到第一图像数据,并基于所述第二帧位姿矫正信息对所述第二帧渲染数据进行处理,得到第二图像数据;
将所述第一图像数据发送至所述第一显示装置输出第一画面图像,将所述第二图像数据发送至所述第二显示装置输出第二画面图像。
可选的,所述获得所述第一刷新周期内针对所述第一显示装置的第一帧位姿矫正信息,以及针对所述第二显示装置的第二帧位姿矫正信息,包括:
确定用于渲染所述第一帧渲染数据的第一位姿信息,以及用于渲染所述第二帧渲染数据的第二位姿信息;
获取当前时刻针对所述第一显示装置的第三位姿信息以及针对所述第二显示装置的第四位姿信息;
基于所述第一位姿信息和所述第三位姿信息,得到所述第一刷新周期内针对所述第一显示装置的第一帧位姿矫正信息;
基于所述第二位姿信息和所述第四位姿信息,得到所述第一刷新周期内针对所述第二显示装置的第二帧位姿矫正信息。
可选的,所述第一位姿信息是在进入所述第一刷新周期时获取并发送给所述服务器的针对所述第一显示装置的位姿信息;
所述第二位姿信息是在进入所述第二刷新周期时获取并发送给所述服务器的针对所述第二显示装置的位姿信息。
可选的,所述云渲染方法还包括:
缓存所述第一帧渲染数据;
在进入第三刷新周期,接收所述服务器渲染后发送的针对所述第二显示装置的第三帧渲染数据;所述第三刷新周期是针对所述第一刷新周期的未来刷新周期;
读取已缓存的在所述第一刷新周期获取的针对所述第一显示装置的所述第一帧渲染数据;
基于所述第三帧渲染数据和所述第一帧渲染数据,控制所述第一显示装置输出第三画面图像,所述第二显示装置输出第四画面图像。
可选的,在任意相邻两次进入的不同刷新周期内,接收到的一帧渲染数据是所述服务器针对所述第一显示装置和所述第二显示装置中的一个渲染后发送。
本申请还提出了一种云渲染方法,所述云渲染方法包括:
在终端设备的第一刷新周期,获得针对所述终端设备的第一显示装置的第一帧渲染数据;
将所述第一帧渲染数据发送至所述终端设备;
在所述终端设备的第二刷新周期,获得针对所述终端设备的第二显示装置的第二帧渲染数据;
将所述第二帧渲染数据发送至所述终端设备。
可选的,所述获得针对所述终端设备的第一显示装置和第二显示装置之中的一个的一帧渲染数据,包括:
接收终端设备进入任一刷新周期时发送的针对第一显示装置和第二显示装置之中的一个的位姿信息;
基于所述位姿信息进行图像渲染,得到针对相应显示装置的一帧渲染数据。
本申请还提出了一种云渲染装置,所述云渲染装置包括:
第一帧渲染数据接收模块,用于在进入第一刷新周期,接收服务器渲染后发送的针对终端设备的第一显示装置的第一帧渲染数据;
第二帧渲染数据读取模块,用于读取在第二刷新周期获取并缓存的针对终端设备的第二显示装置的第二帧渲染数据;所述第二刷新周期是针对所述第一刷新周期的历史刷新周期;
画面图像输出控制模块,用于基于所述第一帧渲染数据和所述第二帧渲染数据,控制所述第一显示装置输出第一画面图像,所述第二显示装置输出第二画面图像。
本申请还提出了一种云渲染装置,所述云渲染装置包括:
第一帧渲染数据获得模块,用于在终端设备的第一刷新周期,获得针对所述终端设备的第一显示装置的第一帧渲染数据;
第一帧渲染数据发送模块,用于将所述第一帧渲染数据发送至所述终端设备;
第二帧渲染数据获得模块,用于在所述终端设备的第二刷新周期,获得针对所述终端设备的第二显示装置的第二帧渲染数据;
第二帧渲染数据发送模块,用于将所述第二帧渲染数据发送至所述终端设备。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提出的云渲染方法的可选实施例一的流程示意图;
图2为本申请提出的云渲染方法的可选实施例二的流程示意图;
图3为本申请提出的云渲染方法的可选实施例三的流程示意图;
图4为本申请提出的云渲染方法中使用ATW进行位姿矫正的流程示意图;
图5为本申请提出的云渲染方法的可选实施例四的流程示意图;
图6为本申请提出的云渲染方法的可选实施例五的流程示意图;
图7为本申请提出的云渲染中,第一显示装置和第二显示装置交替渲染传输的流程示意图;
图8为本申请提出的云渲染装置的一可选实施例的结构示意图;
图9为本申请提出的云渲染装置的另一可选实施例的结构示意图;
图10为本申请提出的云渲染系统的一可选实施例的结构示意图。
具体实施方式
针对背景技术部分的描述,在云渲染应用场景下,本申请希望能够减少其对计算资源和通信资源(如网络带宽)的占用,能够在计算能力、带宽等资源有限的场景下,保证显示画面流畅,减少卡顿情况的发生,提高用户观看感受。对此,可以通过升级硬件设备方式,提升计算能力,来弥补算力不足的问题,但这会增加硬件成本;若通过软件处理方式,即降低云端服务器的刷新率,再在显示端通过帧插值等方式补齐帧率,如采用ASW(Asynchronous Spacewarp)这种用于虚拟现实(Augmented Reality,VR)应用中的运动补偿技术,在低帧率下提供更平滑的运动表现,以保证显示画面质量。
然而,ASW算法执行过程中,是使用前一帧和当前帧之间的差异来估计当前的相机位置和姿态,这可能导致一些插值帧不准确,尤其在头显端快速移动或剧烈变化的情况下,基于ASW算法的补偿方式可能无法提供完全准确的补偿,导致显示画面卡顿、不清晰等。而且,这种云渲染方式需要额外的一缓冲帧用于计算和补偿,这将会增加响应延迟,无法适用于低延时要求的场景,即实时性要求高的云渲染场景,如高速动作游戏或其他需要快速反应的应用。另外,这种ASW的补偿计算和渲染,也会占用一定的GPU和CPU资源,对应用的帧率和性能产生一定影响,这都会限制其适用的云渲染场景。
为了改善上述问题,由于云渲染场景下,每一刷新周期,通常都是分别渲染左右眼画面图像,将其发送至终端设备对应的不同显示装置进行显示,实现三维场景一帧画面展示。为了减少每帧画面所消耗的计算资源和通信资源等,本申请提出在每一个刷新周期内,服务器可以针对一个显示装置进行渲染,将由此得到的一帧渲染数据(即左或右眼画面的渲染数据)发送至终端设备,相对于同时传输针对两个显示装置渲染的一帧渲染数据再发送至终端设备,减少了一半的渲染计算量和带宽占用量,消减了带宽峰值,降低了工作负载,减少了功耗,在算力有限长的情况下,也能够实现大模型场景的云渲染,保证显示画面流畅。
其中,由于服务器的渲染和传输是针对两个显示装置交替实现的,使得终端设备可以交替接收针对一个显示装置的最新一帧渲染数据,结合另一显示装置缓存的历史帧渲染数据,实现当前帧画面图像的显示。由于针对同一显示装置的连续多帧画面图像的差别非常小,终端设备在每个刷新周期内采用一个当前帧渲染数据一个历史帧渲染数据的“一新一旧”策略,能够保证较高的显示画面质量,避免出现卡顿,且不需要帧插值运算,解决了由此产生的上述各技术问题,更好地满足实时性要求高的云渲染场景。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
其中,本申请中使用流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
而且,本申请涉及到的术语诸如“第一”、“第二”等仅用于描述目的,用来将一个操作、单元或模块与另一个操作、单元或模块区分开来,而不一定要求或者暗示这些单元、操作或模块之间存在任何这种实际的关系或者顺序。且不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量,由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
参照图1,为本申请提出的云渲染方法的可选实施例一的流程示意图,该云渲染方法可以适用于终端设备,如应用于虚拟现实(Virtual Reality,VR)或增强现实(AugmentedReality,AR)头显终端或者是其他显示设备等,如图1所示,该云渲染方法可以包括:
步骤S11,在进入第一刷新周期,接收服务器渲染后发送的针对终端设备的第一显示装置的第一帧渲染数据;
实际应用中,终端设备显示画面是按照预设的刷新率实现的,如60FPS(FramesPerSecond,显示装置每秒更新帧数)或者90FPS等,可以依据实际需求确定,这样,在每一个刷新周期VSync内,结合上文对本申请技术方案的相关描述,服务器针对一个显示装置渲染后传输,使得渲染引擎的每一帧渲染量减少一半,通信传输所占用的带宽也减少一半。同理,对于接收端即终端设备,只需要接收针对一个显示装置的一帧渲染数据,减少了对终端设备的资源消耗。
其中,第一刷新周期是终端设备连接云端的服务器开始进行云渲染显示后的任意一个刷新周期,在此期间,服务器是针对一个显示设备(记为第一显示设备)渲染该帧画面图像,得到相应的一帧渲染数据,记为第一帧渲染数据,本申请对其该帧渲染数据的渲染发送过程不做详述。
对于终端设备来说,其在第一刷新周期内,接收到的来自服务器的第一帧渲染数据,是服务器针对第一显示装置渲染得到的,相对于分别针对第一显示装置和第二显示装置(即用于分别显示左眼画面图像和右眼画面图像的两个显示装置)进行图像渲染所得到的一帧渲染数据,本申请终端设备在一个刷新周期内接收的一帧渲染数据的数据量基本减少一半,大大降低了对通信网络能力的要求,保证了渲染数据传输效率和可靠性。
步骤S12,读取在第二刷新周期获取并缓存的针对终端设备的第二显示装置的第二帧渲染数据;该第二刷新周期是针对第一刷新周期的历史刷新周期;
本申请实施例中,第二刷新周期可以是第一刷新周期的相邻上一历史刷新周期,或者是间隔一帧或两帧等少量帧的历史刷新周期等,本申请对第二刷新周期与第一刷新周期之间的间隔帧数不做限制,可视情况而定,以保证渲染显示画面质量为准。
而且,在终端设备进入该第二刷新周期,与其进入第一刷新周期内的云渲染过程类似,服务器也是针对一个显示装置进行画面图像渲染,得到对应的渲染数据后发送至终端设备,但此时的显示装置为第二显示装置,保证第一刷新周期和第二刷新周期中,服务器是针对一个不同显示装置(一个针对第一显示装置,另一个针对第二显示装置)进行渲染,使得终端设备在这两个刷新周期内,能够依次接收到每个显示装置对应的不同帧渲染数据。
其中,结合上文对本申请技术方案的描述,为了方便后续刷新周期使用当前刷新周期接收到的最新一帧渲染数据,对于每一个刷新周期接收到的相应一帧渲染数据,可以与对应的一个显示装置进行关联后缓存,以在后续其他刷新周期内接收到针对另一个显示装置的最新帧渲染数据,可以调用缓存的该帧渲染数据,控制两个显示装置显示各自的画面图像,保证显示画面质量。
因此,在第一帧刷新周期接收到针对第一显示装置的第一帧渲染数据后,可以从已缓存的针对第二显示装置的至少一帧渲染数据中,读取在第二刷新周期缓存的一帧渲染数据,记为第二帧渲染数据。关于在第二刷新周期内,终端设备接收第二帧渲染数据的实现过程,与在第一刷新周期内接收第一帧渲染数据的实现过程类似,本实施例不做详述。
步骤S13,基于第一帧渲染数据和第二帧渲染数据,控制第一显示装置输出第一画面图像,第二显示装置输出第二画面图像。
第一画面图像与第二画面图像配合,使观察者感知到立体画面。如上述分析,终端设备当前接收到的第一帧渲染数据是针对第一显示装置渲染的最新一帧画面图像的渲染数据,读取到的第二帧渲染数据是针对第二显示装置渲染的历史帧画面图像的渲染数据,由于这两帧间隔较短,对应的画面图像并不会发生很大变化,对于观看者来说是无感知的,不会造成显示画面不一致,导致画面内容不流畅等问题。因此,在终端设备输出当前帧的画面图像时,可以将最新接收到的第一帧渲染数据以及读取到的第二帧渲染数据,分别发送至一一对应的显示装置输出对应画面图像,即左右眼画面图像,能够保证实现高质量画面的显示。
综上,在本申请实施例中,终端设备在每一个刷新周期内,只需要接收服务器发送的针对一个显示装置的最新一帧渲染数据,相对于同时针对两个显示装置分别渲染得到的一帧渲染数据,终端设备每个刷新周期需要接收的数据量减少一半,能够更快获得当前刷新周期显示所需的完整渲染数据,且减少了对通信资源的占用,更好地适用于通信资源有限的云渲染场景。之后,终端设备是基于接收到的该最新一帧渲染数据与已缓存的针对另一个显示装置的一历史帧渲染数据,直接控制这两个显示装置分别输出相应的画面图像,无需进行插值补偿操作,保证输出高质量的画面图像,并不受场景限制,提高了云渲染适用范围,且缩短了显示一帧画面图像的周期,保证了显示画面流畅。
另外,如上述分析,本申请提出的云渲染方案并不需要升级硬件设备,降低了对硬件设备的计算能力和通信能力的要求,这样,在大模型的渲染展示场景下,即便服务器的资源有限,也能够加快渲染速度,减少功耗,满足如高速动作游戏等应用的低延迟要求。
在实际应用中,在终端设备刚开始显示画面,即上述第一刷新周期为终端设备进入云渲染显示模式下的第一个刷新周期,按照上文描述的方法,其能够接收针对一个显示装置的一帧渲染数据,此时并未缓存针对另一个显示装置的一帧渲染数据,可以直接控制对应的(如本实施例的第一显示装置)输出第一画面图像,此时第二显示装置也可以不输出画面图像,由于一个刷新周期的时间极短,对用户的视觉感知影响忽略不计,不会影响用户观看感受。
同理,在上下文描述的云渲染方法实施例中,若终端设备未成功读取到第二帧渲染数据,也可以基于当前接收到的第一帧渲染数据,控制第一显示装置输出第一画面图像,或者,在缓存多帧渲染数据的情况下,也可以读取更早的针对第二显示装置的历史帧渲染数据,控制第二显示装置输出第二画面图像,从而避免终端设备显示画面图像因跳帧而出现画面卡顿等问题,保证显示画面质量。
参照图2,为本申请提出的云渲染方法的可选实施例二的流程示意图,本实施例可以对上文提出的终端设备执行的云渲染方法的一可选细化实现方式进行描述,如图2所示,该云渲染方法可以包括:
步骤S21,在进入第一刷新周期,接收服务器渲染后发送的针对终端设备的第一显示装置的第一帧渲染数据;
步骤S22,读取在第二刷新周期获取并缓存的针对终端设备的第二显示装置的第二帧渲染数据;该第二刷新周期是针对第一刷新周期的历史刷新周期;
关于步骤S21和步骤S22的实现过程,可以参照上下文实施例对应部分的描述,如上文步骤S11和步骤S12对应部分的描述,本实施例不做详述。
步骤S23,获得第一刷新周期内针对第一显示装置的第一帧位姿矫正信息,以及针对第二显示装置的第二帧位姿矫正信息;
在本申请提出的针对两个显示装置(其对应于左右眼)的交替渲染并传输的云渲染方法中,终端设备不再使用ASW算法处理,采用ATW(Asynchronous Timewarp,异步时间扭曲)算法,即一种生成中间帧的技术,维持较高的画面刷新率,用以解决一个涮新周期的开始到结束的时间段内,显示装置位姿变化而产生的影响,实现画面图像的位姿纠正。
其中,在每一个刷新周期开始时间,可以由终端设备检测对应显示装置的位姿信息,将其发送至服务器,使得服务器能够基于该位姿信息,渲染针对该显示装置的一帧渲染数据,再反馈给终端设备,在终端设备接收到来自服务器的该帧渲染数据时刻,对应的显示装置的位姿信息相对于在当前刷新周期开始时间的位姿信息发生了变化,为了保证显示画面质量,可以据此获得该刷新周期内的帧位姿矫正信息,如ATW矩阵,本申请对该帧位姿矫正信息的内容及其表示方式不做限制。
如上文对本申请技术方案的相关描述,为了减少渲染计算量和渲染数据传输占用的通信资源,本申请是针对两个显示装置交替渲染和传输,使得同一涮新周期内,两个显示装置用于输出画面图像的渲染数据是不同帧的渲染数据,这两帧渲染数据的渲染周期(也可以说是接收的刷新周期)不同,需要在同一刷新周期内显示对应画面图像时,各自对应的显示装置产生的位姿变化不同,需要获取各自的帧位姿矫正信息,本申请对同一刷新周期内,获取针对不同显示装置各自的帧位姿矫正信息的实现方法不做限制,可以结合ATW算法的运算原理确定。
步骤S24,基于第一帧位姿矫正信息对第一帧渲染数据进行处理,得到第一图像数据,并基于第二帧位姿矫正信息对第二帧渲染数据进行处理,得到第二图像数据;
步骤S25,将第一图像数据发送至第一显示装置输出第一画面图像,将第二图像数据发送至第二显示装置输出第二画面图像。
按照上文描述的方法,获得第一刷新周期内针对每一个显示装置的位姿矫正信息后,可以据此对相应显示装置的一帧渲染数据进行处理,以矫正其中视角信息,得到新的一帧图像数据(即中间帧数据),使得该帧图像数据能够符合对应显示装置当前的位姿信息,相当于是基于当前的位姿信息渲染得到的渲染数据,这样,将该图像数据发送至对应的显示装置,保证对应输出的一帧画面图像的显示效果。
可见,对于当前的第一刷新周期接收到的最新的针对第一显示装置的第一帧渲染数据,以及当前已缓存的在第二刷新周期接收到的针对第二显示装置的第二帧渲染数据,将分别由不同的帧位姿矫正信息进行处理,ATW算法的计算速度很快,基本不会增加额外的计算开销,使得对应的显示装置可以快速输出对应的画面图像,提高响应及时性,且减少了计算、网络带宽等资源的消耗,更好地满足不同云渲染场景下的处理要求和设备性能要求,提高了云渲染方法的普适性。
参照图3,为本申请提出的云渲染方法的可选实施例三的流程示意图,本实施例可以对上文提出的终端设备执行的云渲染方法的另一可选细化实现方式进行描述,可以结合位姿矫正信息的一可选获取方法进行描述,如图3所示,该云渲染方法可以包括:
步骤S31,在进入第一刷新周期,接收服务器渲染后发送的针对终端设备的第一显示装置的第一帧渲染数据;
步骤S32,读取在第二刷新周期获取并缓存的针对终端设备的第二显示装置的第二帧渲染数据;该第二刷新周期是针对第一刷新周期的历史刷新周期;
关于步骤S31和步骤S32的实现过程,可以参照上下文实施例对应部分的描述,如上文步骤S11和步骤S12对应部分的描述,本实施例不做详述。
步骤S33,确定用于渲染第一帧渲染数据的第一位姿信息,以及用于渲染第二帧渲染数据的第二位姿信息;
步骤S34,获取当前时刻针对第一显示装置的第三位姿信息以及针对第二显示装置的第四位姿信息;
步骤S35,基于第一位姿信息和第三位姿信息,得到第一刷新周期内针对第一显示装置的第一帧位姿矫正信息;
步骤S36,基于第二位姿信息和第四位姿信息,得到第一刷新周期内针对第二显示装置的第二帧位姿矫正信息;
结合上文对ATW算法的相关描述,在云渲染实现过程中,是由终端设备将采集到的显示装置当前的位姿信息发送至云端的服务器,使得服务器基于该位姿信息进行对应画面图像的渲染,得到针对该显示装置的一帧渲染数据,可见,终端设备发送给服务器的位姿信息,渲染得到的一帧渲染数据会存在差异,在显示装置的从发送位姿信息到接收到对应的一帧渲染数据进行显示的过程中,若显示装置的位姿信息未发生变化,可以直接执行该渲染数据,输出对应的画面图像。
然而,在实际情况下,用户使用终端设备,如头部佩戴的AR/VR设备等,用户姿态往往是动态变化的,若直接输出服务器发送的一帧渲染数据,很可能会导致用户当前看到的画面图像的展示视角与用户观看视角不一致,是用户感知到画面延迟问题,影响后续基于该画面图像执行后续的操作的准确性。所以,在输出来自服务器的一帧渲染数据之前,本申请提出采用ATW算法进行时间扭曲,即对该时间段内显示装置位姿变化造成的问题进行矫正,生成新的一帧图像数据,再将其发送至对应的显示装置输出画面图像。
基于此,终端设备在每一刷新周期,将对应的一个显示装置的位姿信息发送至服务器的同时,可以记录该时刻该显示装置的位姿信息,这样,该刷新周期接收到服务器反馈的针对该显示装置渲染得到的一帧渲染数据时,检测当前时刻该显示装置的位姿信息,也就是说明,终端设备在每一刷新周期的开始时间,获取对应显示装置的位姿信息,并在显示时刻即结束时间,再次获取该显示装置的位姿信息,从而基于同一刷新周期的不同时刻对应同一显示装置的两个位姿信息,获得针对该显示装置的该刷新周期接收到的一帧渲染数据的帧位姿矫正信息,即ATW矫正矩阵。
因此,在进入第二刷新周期时,终端设备获取针对第二显示装置的第二位姿信息,将该第二位姿信息发送至服务器,以使该服务器基于第二位姿信息,渲染得到针对第二显示装置的第二帧渲染数据。在进入第一刷新周期时,同理,终端设备将获取的针对第一显示装置的第一位姿信息发送至服务器,以使服务器基于该第一位姿信息,渲染得到针对第一显示装置的第一帧渲染数据。可见,上述第一位姿信息和第二位姿信息可以认为是对应帧渲染数据的帧位姿信息,本申请对各显示装置的位姿信息的获取方法不做限制,可以基于终端设备配置的如陀螺仪、位移传感器、重力传感器和加速度传感器等之中的一种或多种传感器组合实现,本实施例在此不做详述。
如上述分析,第一位姿信息可以是在第一刷新周期的开始时间获取的第一显示装置的位姿信息,第二位姿信息可以是第二刷新周期的开始时间获取的第二显示装置的位姿信息,其可以在终端设备中缓存若干刷新周期,这样,在第一刷新周期接收到来自服务器的一帧刷新数据后,再需要显示画面图像的时间,可以认为是该刷新周期的结束时间,分别获取该时刻第一显示装置和第二显示装置各自的位姿信息,即上述第三位姿信息和第四位姿信息。
之后,可以基于针对第一显示装置的不同时刻获取的第一位姿信息和第三位姿信息,得到第一刷新周期内该第一显示装置的第一帧位姿矫正信息。同理,基于针对第二显示装置的不同时刻获取的第二位姿信息和第四位姿信息,得到第一刷新周期内该第二显示装置的第二帧位姿矫正信息。实现过程可以结合ATW算法的工作原理确定,本申请在此不做详述。
步骤S37,基于第一帧位姿矫正信息对第一帧渲染数据进行处理,得到第一图像数据,并基于第二帧位姿矫正信息对第二帧渲染数据进行处理,得到第二图像数据;
步骤S38,将第一图像数据发送至第一显示装置输出第一画面图像,将第二图像数据发送至第二显示装置输出第二画面图像。
继上述分析,在第一刷新周期内,终端设备的两个显示装置输出云渲染的画面图像之前,可以基于各自的一帧渲染数据和帧位姿矫正信息,预测扭曲帧缓冲区来修正渲染,输出对应得到的一帧图像数据,在对应的显示装置上呈现对应帧画面图像,本申请对ATW算法的运算过程不做详述。
综上,在本申请实施例提出的服务器针对两个显示装置交替渲染对应的一帧渲染数据后发送至终端设备,使得终端设备在每一个刷新周期,可以只接收来自服务器的针对一个显示装置的最新一帧渲染数据,对于另一个显示装置的渲染数据直接从本地缓存中读取,降低了渲染数据传输的资源消耗量,缩短了渲染数据传输时间,有助于提高响应及时性。
且,如图4所示,终端设备的两个显示装置在每个刷新周期输出画面图像之前,将基于ATW算法确定针对各自的一帧渲染数据的帧位姿矫正信息,据此对该帧渲染数据进行时间扭曲修正后,再输出对应得到的一帧图像数据,避免因一个刷新周期内显示装置位姿变化而造成的画面延迟问题,可靠保证了终端设备展示画面流畅。由于ATW算法的计算速度很快,相对于ASW算法的补偿处理,大大降低计算资源消耗量,提高了云渲染响应速度,更好地满足实时性要求高的云渲染场景。
参照图5,为本申请提出的云渲染方法的可选实施例四的流程示意图,本实施例可以对上文提出的终端设备执行的云渲染方法的又一可选细化实现方式进行描述,如图5所示,该终端设备执行的云渲染方法可以包括:
步骤S51,在进入第一刷新周期,接收服务器渲染后发送的针对终端设备的第一显示装置的第一帧渲染数据;
步骤S52,缓存该第一帧渲染数据;
步骤S53,读取在第二刷新周期获取并缓存的针对终端设备的第二显示装置的第二帧渲染数据;该第二刷新周期是针对第一刷新周期的历史刷新周期;
步骤S54,基于第一帧渲染数据和第二帧渲染数据,控制第一显示装置输出第一画面图像,第二显示装置输出第二画面图像;
关于步骤S51、步骤S53和步骤S54的实现过程,可以参照上文实施例对应部分的描述,本实施例在此不再赘述。
结合上文对本申请技术方案的相关描述,在终端设备任意相邻两次进入的不同刷新周期内,接收到的一帧渲染数据是服务器针对不同显示装置(即第一显示装置和第二显示装置之中的一个)渲染后发送的,也就是说服务器对第一显示装置和第二显示装置交替渲染新的一帧渲染数据发送给终端设备。终端设备在当前的刷新周期是基于接收到的一个显示装置的最新一帧渲染数据,以及读取的另一个显示装置的一历史帧渲染数据,输出当前帧的画面图像。
可见,为了方便未来刷新周期使用当前刷新周期接收到的一帧渲染数据,终端设备每次接收到新的一帧渲染数据,可以对其进行缓存,如将当前接收到的该帧渲染数据与相应刷新周期的刷新帧号和/或相应显示装置的显示标识进行关联后缓存;或者,确定已缓存与相应显示装置的显示标识关联的一帧渲染数据,可以将该帧渲染数据更新为当前接收到的一帧渲染数据后缓存,以使缓存的一帧渲染数据是最接近最新一帧渲染数据等,本申请对最新接收到的每一帧渲染数据的缓存实现方法不做限制。
基于此,在VSync信号(Vertical Synchronization,垂直同期,即表示进入新的刷新周期的信号,如进入第一刷新周期的刷新信号),可以按照步骤S51描述的方法接收最新的第一帧渲染数据,还可以按照步骤S53描述的方法,如可以基于第二显示装置的显示标识和第二刷新周期的刷新帧号,从本地缓存的渲染数据中,读取对应的一历史帧渲染数据记为第二帧渲染数据,以使得第一显示装置使用最新的一帧渲染数据,同时第二显示装置使用缓存的一历史帧刷新数据进行画面刷新,呈现新的一帧画面图像。
步骤S55,在进入第三刷新周期,接收服务器渲染后发送的针对第二显示装置的第三帧渲染数据;第三刷新周期是针对第一刷新周期的未来刷新周期;
按照上述方法,完成第一刷新周期的一帧画面图像的展示后,终端设备会进入下一个刷新周期记为第三刷新周期,按照本申请提出的技术方案,终端设备接收到的是服务器针对第二显示装置的最新的一帧渲染数据,记为第三帧渲染数据,其获取过程与来自服务器的第二帧渲染数据的获取过程类似,本实施例在此不做详述。
步骤S56,读取已缓存的在第一刷新周期获取的针对第一显示装置的第一帧渲染数据;
步骤S57,基于第三帧渲染数据和第一帧渲染数据,控制第一显示装置输出第三画面图像,第二显示装置输出第四画面图像。
在第三刷新周期内,终端设备接收第二显示装置最新的第三帧渲染数据,对于第一显示装置显示画面所需的一帧渲染数据,当前不会从服务器获取,而是直接从本地读取缓存的针对第一显示装置的一帧渲染数据,如作为历史刷新周期的第一刷新周期接收到的新的第一帧渲染数据,实现过程可以参照上文对读取已缓存的第二帧渲染数据的实现过程。
这样,终端设备在第三刷新周期,第一显示装置基于读取的历史帧渲染数据输出画面图像,同时,第二显示装置基于接收的最新一帧渲染数据输出画面,由于该历史帧渲染数据与该最新一帧渲染数据之间的间隔帧较小,画面内容差异很小,对于用户来说是无感知的,保证由此输出的画面图像流畅。
而且,终端设备是交替接收第一显示装置和第二显示装置之中的一个最新一帧渲染数据,即在每一个刷新周期只需要接收一个显示装置的最新一帧渲染数据,相对于每次接收两个显示装置各自最新的一帧渲染数据的云渲染方法,使得终端设备与服务器在每一刷新周期内传输的渲染数据的数据量减少一半,减少了通信资源的占用,缩短了一帧渲染数据的传输周期,提高了单帧画面传输速度,避免因传输缓慢造成的画面卡顿问题,尤其是在服务器资源有限、算力有限时,渲染大规模模型场景下,本申请提出的云渲染方法的优势更加明显,大大提高了用户体验。
其中,在上述步骤S57的执行过程中,结合上文实施例二和实施例三对应部分的描述,缓存的第一帧渲染数据是服务器基于第一位姿信息渲染得到的,获取第一位姿信息的时刻与第三刷新周期的画面显示时刻之间具有一定时长,在此期间第一显示装置的位姿很可能会改变,为了避免其显示的画面图像延迟,可以基于当前时刻的第一显示装置的第五位姿信息和第一位姿信息,重新确定针对第一帧渲染数据的帧位姿矫正信息,据此实现对第一帧渲染数据的处理,输出对应得到的图像数据,呈现第三画面图像。
可见,第一显示装置在第三刷新周期更新第一画面图像,输出当前得到的第三画面图像,该第三画面图像与在第一刷新周期输出的第一画面图像的帧位姿不同,这种基于ATW算法的画面更新输出方式,保证了输出画面流畅。同理,获得针对第二显示装置最新的第三帧渲染数据的帧位姿矫正信息,据此处理第三帧渲染数据,输出所得图像数据以呈现第四画面图像,这样,第三画面图像与第四画面相互配置,可以继续更新观看者感知到的立体画面,其实现过程可以参照上文实施例对应部分的描述,本实施例不做赘述。
因此,终端设备在每一刷新周期,如图4所示,都可以基于ATW算法,获取第一显示装置和第二显示装置各自的最新帧位姿矫正信息,用以实现对相应一帧渲染数据的处理,保证各自输出的画面图像准确可靠,避免出现画面延迟现象,且由于该ATW计算过程所需时间很短,提高了画面刷新效率。
参照图6,为本申请提出的云渲染方法的可选实施例五的流程示意图,本实施例将从云端服务器侧描述本申请提出的云渲染方法,关于服务器与终端设备的交互过程中终端设备的执行内容,可以参照上文从终端设备侧描述的云渲染方法,本实施例不做详述。如图6所示,服务器执行的云渲染方法可以包括:
步骤S61,在终端设备的第一刷新周期,获得针对终端设备的第一显示装置的第一帧渲染数据;
步骤S62,将第一帧渲染数据发送至终端设备;
步骤S63,在终端设备的第二刷新周期,获得针对终端设备的第二显示装置的第二帧渲染数据;
步骤S64,将第二帧渲染数据发送至终端设备;
步骤S65,在终端设备的第三刷新周期,获得针对终端设备的第一显示装置的第三帧渲染数据;
步骤S66,将第三帧渲染数据发送至终端设备。
在本申请实施例中,第一刷新周期、第二刷新周期和第三刷新周期可以是终端设备显示画面图像期间内任意相邻进入的不同刷新周期,可见,终端设备的每一个刷新周期内,服务器只需要针对相应的一个显示装置渲染新的一帧渲染数据,将这一帧渲染数据发送至终端设备,相对于每次第一显示装置和第二显示装置分别渲染新的一帧渲染数据的云渲染方法,渲染引擎每帧渲染量减少一半,传输该帧渲染数据所占用的网络带宽减少一半,降低了带宽峰值,有效降低了服务器的工作负载,减少了功耗。
这样,在服务器算力有限的情况下,也能够渲染大规模模型场景,且保证终端设备显示其画面的流畅度,无需升级硬件设备,节省了硬件花费,也不用降帧率渲染后在终端设备侧进行插值补偿,本申请提出的云渲染方法能够快速输出高质量画面,提高用户体验。
而且,在终端设备相邻进入的两个刷新周期中,服务器是对第一显示装置和第二显示装置交替渲染新的一帧渲染数据,保证了终端设备显示最新画面内容,由于每一刷新周期很短,针对同一个显示装置相邻两次输出的画面图像内容不会产生很大差异,不会因此出现画面卡顿问题,保证了输出画面的流畅度。
示例性的,以终端设备为VR设备,第一显示装置对应于佩戴VR设备的用户的左眼,第二显示装置对应于佩戴VR设备的用户的右眼,即第一显示装置输出的画面图像可以是左眼画面图像,第二显示装置输出的画面图像可以是右眼画面图像。如图7所示,服务器按照上文描述的方法双目交替渲染,在开始的第一个刷新周期即VSync0,渲染针对第一显示装置的一帧渲染数据L0,发送至终端设备的第一显示装置输出对应的一帧画面图像,此时第二显示装置可以不用输出画面图像,由于一个刷新周期很短,不会影响用户体验。
在进入第二个刷新周期即VSync1,服务器渲染针对第二显示装置的一帧渲染数据R1发送至终端设备,此时已缓存有针对第一显示装置的一帧渲染数据L0,终端设备在VSync1内,第一显示装置基于L0输出一帧画面图像,第二显示装置基于R1输出一帧画面图像。
同理,进入第三个刷新周期即VSync2,服务器渲染针对第一显示装置的一帧渲染数据L2发送至终端设备,此时已缓存有针对第二显示装置的一帧渲染数据R1,这样,终端设备在VSync2内,第一显示装置基于L2输出一帧画面图像,第二显示装置基于R1输出一帧画面图像。在进入第四个刷新周期即VSync3,服务器渲染针对第二显示装置的一帧渲染数据R3发送至终端设备,此时已缓存有针对第一显示装置的一帧渲染数据L2,终端设备在VSync3内,第一显示装置基于L2输出一帧画面图像,第二显示装置基于R3输出一帧画面图像。
如此双目交替渲染传输,每个刷新周期新的渲染数据减少了一半,大大减少了渲染工作量和传输所占用的带宽等,降低了对服务器的算力和通信等资源要求,更好地满足不同云渲染场景的如低延迟、高画面质量等要求,提高用户体验。
其中,对于服务器获得针对终端设备的第一显示装置和第二显示装置之中的一个的一帧渲染数据(即交替新渲染的每一帧渲染数据)的实现过程中,服务器是接收终端设备进入任一刷新周期时发送的针对一个显示装置(如第一显示装置或第二显示装置)的位姿信息后,渲染引擎基于该位姿信息进行图像渲染,得到针对相应的显示装置的一帧渲染数据,本申请对每个显示装置的一帧渲染数据的渲染获取过程不做详述。
参照图8,为本申请提出的云渲染装置的一可选实施例的结构示意图,该云渲染装置可以适用于具有第一显示装置和第二显示装置的终端设备,如图8所示,该云渲染装置可以包括:
第一帧渲染数据接收模块81,用于在进入第一刷新周期,接收服务器渲染后发送的针对终端设备的第一显示装置的第一帧渲染数据;
第二帧渲染数据读取模块82,用于读取在第二刷新周期获取并缓存的针对终端设备的第二显示装置的第二帧渲染数据;所述第二刷新周期是针对所述第一刷新周期的历史刷新周期;
画面图像输出控制模块83,用于基于所述第一帧渲染数据和所述第二帧渲染数据,控制所述第一显示装置输出第一画面图像,所述第二显示装置输出第二画面图像。
可选的,画面图像输出控制模块83可以包括:
帧位姿矫正信息获得单元,用于获得所述第一刷新周期内针对所述第一显示装置的第一帧位姿矫正信息,以及针对所述第二显示装置的第二帧位姿矫正信息;
图像数据得到单元,用于基于所述第一帧位姿矫正信息对所述第一帧渲染数据进行处理,得到第一图像数据,并基于所述第二帧位姿矫正信息对所述第二帧渲染数据进行处理,得到第二图像数据;
画面图像输出单元,用于将所述第一图像数据发送至所述第一显示装置输出第一画面图像,将所述第二图像数据发送至所述第二显示装置输出第二画面图像。
可选的,帧位姿矫正信息获得单元可以包括:
位姿信息确定单元,用于确定用于渲染所述第一帧渲染数据的第一位姿信息,以及用于渲染所述第二帧渲染数据的第二位姿信息;
位姿信息获取单元,用于获取当前时刻针对所述第一显示装置的第三位姿信息以及针对所述第二显示装置的第四位姿信息;
基于所述第一位姿信息和所述第三位姿信息,得到所述第一刷新周期内针对所述第一显示装置的第一帧位姿矫正信息;
帧位姿信息得到单元,用于基于所述第二位姿信息和所述第四位姿信息,得到所述第一刷新周期内针对所述第二显示装置的第二帧位姿矫正信息。
其中,上述位姿信息是在进入所述第一刷新周期时获取并发送给所述服务器的针对所述第一显示装置的位姿信息;
所述第二位姿信息是在进入所述第二刷新周期时获取并发送给所述服务器的针对所述第二显示装置的位姿信息。
结合上文实施例描述的云渲染装置,该云渲染装置还可以包括:
缓存模块,用于缓存所述第一帧渲染数据;
第三帧渲染数据接收模块,用于在进入第三刷新周期,接收所述服务器渲染后发送的针对所述第二显示装置的第三帧渲染数据;所述第三刷新周期是针对所述第一刷新周期的未来刷新周期;
第一帧渲染数据读取模块,用于读取已缓存的在所述第一刷新周期获取的针对所述第一显示装置的所述第一帧渲染数据;
画面图像更新输出模块,用于基于所述第三帧渲染数据和所述第一帧渲染数据,控制所述第一显示装置输出第三画面图像,所述第二显示装置输出第四画面图像。
在本申请实际应用中,在任意相邻两次进入的不同刷新周期内,接收到的一帧渲染数据是所述服务器针对所述第一显示装置和所述第二显示装置中的一个渲染后发送。
参照图9,为本申请提出的云渲染装置的另一可选实施例的结构示意图,该云渲染装置可以适用于服务器,如图9所示,该云渲染装置可以包括:
第一帧渲染数据获得模块91,用于在终端设备的第一刷新周期,获得针对所述终端设备的第一显示装置的第一帧渲染数据;
第一帧渲染数据发送模块92,用于将所述第一帧渲染数据发送至所述终端设备;
第二帧渲染数据获得模块93,用于在所述终端设备的第二刷新周期,获得针对所述终端设备的第二显示装置的第二帧渲染数据;
第二帧渲染数据发送模块94,用于将所述第二帧渲染数据发送至所述终端设备。
对于上述第一帧渲染数据获得模块91和第二帧渲染数据发送模块94均可以包括:
位姿信息接收单元,用于接收终端设备进入任一刷新周期时发送的针对第一显示装置和第二显示装置之中的一个的位姿信息;
图像渲染单元,用于基于所述位姿信息进行图像渲染,得到针对相应显示装置的一帧渲染数据。
在本申请中,服务器是针对第一显示装置和第二渲染装置交替渲染,因此,云渲染装置还可以包括:
第三帧渲染数据获得模块,用于在终端设备的第三刷新周期,获得针对所述终端设备的第一显示装置的第三帧渲染数据;
第三帧渲染数据发送模块,用于将所述第三帧渲染数据发送至所述终端设备;
第四帧渲染数据获得模块,用于在所述终端设备的第四刷新周期,获得针对所述终端设备的第二显示装置的第四帧渲染数据;
第四帧渲染数据发送模块,用于将所述第四帧渲染数据发送至所述终端设备。
需要说明的是,关于上述各装置实施例中的各种模块、单元等,均可以作为程序模块存储在存储器中,由处理器执行存储在存储器中的上述程序模块,以实现相应的功能,关于各程序模块及其组合所实现的功能,以及达到的技术效果,可以参照上述方法实施例相应部分的描述,本实施例不再赘述。
本申请还提供了一种计算机可读存储介质,其上可以存储计算机程序,该计算机程序可以被处理器加载执行,实现本申请提出的云渲染方法,实现过程可以参照上述方法实施例的描述内容,本实施例在此不做赘述。
参照图10,为本申请提出的云渲染系统的一可选实施例的结构示意图,该云渲染系统可以包括服务器1010和至少一个终端设备1020,其中:
服务器1010包括第一通信端口1011和第一处理器1012,终端设备1020包括第二通信端口1021、第二处理器1022、第一显示装置1023以及第二显示装置1024,其中:
终端设备1020的第二通信端口1021可以连接服务器1010的第一通信端口1011,实现终端设备1020与服务器1010之间的通信连接,满足两者之间的数据交互需求。
可选的,第一通信端口1011和第二通信端口1021均可以是支持如wifi、蓝牙和/或近场通道方式等无线通信方式对应的通讯元件,以使得对应设备(如服务器1010或终端设备1020)可以通过该通讯元件,实现与其他设备(如通信对端设备或其他设备等)进行数据传输,如传输位姿信息、渲染数据等,本申请对通信端口的组成结构及其对应的通信传输机制不做限制,可视情况而定。
可选的,第一通信端口1011和第二通信端口1021各自还可以包括一个或多个支持有线通信方式的接口,如通用输入输出(general-purposeinput/output,GPIO)接口、USB接口、通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口等,以实现对应设备内部各组成部分之间的数据传输,本申请对第一通信端口1011和第二通信端口1021各自的类型和数量不做限制,需要包括至少一组相匹配的端口,以实现终端设备1020与服务器1010之间的通信连接。其中,终端设备1020和服务器1010内部组成部分之间可以通过通信总线,如数据总线、指令总线等进行数据交互。
第一处理器1012可以用于在终端设备1020的第一刷新周期,获得针对第一显示装置1023的第一帧渲染数据,在终端设备1020的第二刷新周期,获得针对第二显示装置1024的第二帧渲染数据;该第二刷新周期可以是针对第一刷新周期的历史刷新周期,如相邻上一历史帧刷新周期或间隔一帧的历史帧刷新周期等;
对于第一处理器1012获得的一帧渲染数据,可以发送至第一通信端口1011,由其发送至连接终端设备1020的第二通信端口1021,即第一通信端口1011可以用于发送第一处理器1012当前获得的第一帧渲染数据或第二帧渲染数据。基于此,第二通信端口1021可以用于在第二刷新周期,接收第一通信端口1011发送的第二帧渲染数据,在第一刷新周期,接收第一通信端口1011发送的第一帧渲染数据,本申请对服务器1010与终端设备1020之间的数据传输方式及其过程不做限制,可视情况而定。
第二处理器1022可以用于基于当前接收到的第一帧渲染数据以及读取到的已缓存的第二帧渲染数据,控制第一显示装置1023输出第一画面图像,第二显示装置1024输出第二画面图像,本申请对显示装置如何显示画面图像的图像显示过程不做详述。
在本申请实际应用中,上述第一处理器1012和第二处理器1022均可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signalprocessor,ISP),控制器,视频编解码器,数字信号处理器(digitalsignalprocessor,DSP)、中央处理器(Central Processing Unit,CPU)、特定应用集成电路(application-specific integrated circuit,ASIC)现成可编程门阵列(FPGA)或者其他可编程逻辑器件等。
可选的,上述第一处理器1012和第二处理器1022均可以包括至少一个处理单元和至少一个存储单元,处理单元可以执行存储单元存储的计算机指令,实现本申请对应设备侧描述的云渲染方法。因此,该存储单元可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件等,本申请对处理器的组成结构不做限制。
关于上述第一显示装置1023和第二显示装置1024之间的部署位置关系,分别对应于使用终端设备1020的用户的左眼和右眼,具体可以结合该终端设备1020的产品类型确定,如AR/VR设备,或者是支持云渲染显示图像的其他显示设备等,本申请对终端设备1020的产品类型不做限制。
应该理解的是,图10所示系统及其包含的终端设备和服务器的结构并不构成对本申请实施例描述内容,在实际应用中,云渲染系统及其包含的终端设备和服务器还可以包括比图10所示的更多的部件,或者组合某些部件,如终端设备还可以包括摄像头、拾音器等至少一个输入组件,扬声器、振动机构、灯等至少一个输出组件,以及用于检测显示装置的位姿信息的各种传感器等,可以依据终端设备类型及其功能需求确定硬件结构,本申请在此不做一一列举。
最后,需要说明的是,关于上述各实施例中,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
另外,本说明书中各个实施例采用递进或并列的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、系统、设备而言,由于其与实施例公开的方法对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种云渲染方法,所述云渲染方法包括:
在进入第一刷新周期,接收服务器渲染后发送的针对终端设备的第一显示装置的第一帧渲染数据;
读取在第二刷新周期获取并缓存的针对所述终端设备的第二显示装置的第二帧渲染数据;所述第二刷新周期是针对所述第一刷新周期的历史刷新周期;
基于所述第一帧渲染数据和所述第二帧渲染数据,控制所述第一显示装置输出第一画面图像,所述第二显示装置输出第二画面图像。
2.根据权利要求1所述的云渲染方法,所述基于所述第一帧渲染数据和所述第二帧渲染数据,控制所述第一显示装置输出第一画面图像,所述第二显示装置输出第二画面图像,包括:
获得所述第一刷新周期内针对所述第一显示装置的第一帧位姿矫正信息,以及针对所述第二显示装置的第二帧位姿矫正信息;
基于所述第一帧位姿矫正信息对所述第一帧渲染数据进行处理,得到第一图像数据,并基于所述第二帧位姿矫正信息对所述第二帧渲染数据进行处理,得到第二图像数据;
将所述第一图像数据发送至所述第一显示装置输出第一画面图像,将所述第二图像数据发送至所述第二显示装置输出第二画面图像。
3.根据权利要求2所述的云渲染方法,所述获得所述第一刷新周期内针对所述第一显示装置的第一帧位姿矫正信息,以及针对所述第二显示装置的第二帧位姿矫正信息,包括:
确定用于渲染所述第一帧渲染数据的第一位姿信息,以及用于渲染所述第二帧渲染数据的第二位姿信息;
获取当前时刻针对所述第一显示装置的第三位姿信息以及针对所述第二显示装置的第四位姿信息;
基于所述第一位姿信息和所述第三位姿信息,得到所述第一刷新周期内针对所述第一显示装置的第一帧位姿矫正信息;
基于所述第二位姿信息和所述第四位姿信息,得到所述第一刷新周期内针对所述第二显示装置的第二帧位姿矫正信息。
4.根据权利要求3所述的云渲染方法,所述第一位姿信息是在进入所述第一刷新周期时获取并发送给所述服务器的针对所述第一显示装置的位姿信息;
所述第二位姿信息是在进入所述第二刷新周期时获取并发送给所述服务器的针对所述第二显示装置的位姿信息。
5.根据权利要求1-4任意一项所述的云渲染方法,所述云渲染方法还包括:
缓存所述第一帧渲染数据;
在进入第三刷新周期,接收所述服务器渲染后发送的针对所述第二显示装置的第三帧渲染数据;所述第三刷新周期是针对所述第一刷新周期的未来刷新周期;
读取已缓存的在所述第一刷新周期获取的针对所述第一显示装置的所述第一帧渲染数据;
基于所述第三帧渲染数据和所述第一帧渲染数据,控制所述第一显示装置输出第三画面图像,所述第二显示装置输出第四画面图像。
6.根据权利要求1-4任一项所述的云渲染方法,在任意相邻两次进入的不同刷新周期内,接收到的一帧渲染数据是所述服务器针对所述第一显示装置和所述第二显示装置中的一个渲染后发送。
7.一种云渲染方法,所述云渲染方法包括:
在终端设备的第一刷新周期,获得针对所述终端设备的第一显示装置的第一帧渲染数据;
将所述第一帧渲染数据发送至所述终端设备;
在所述终端设备的第二刷新周期,获得针对所述终端设备的第二显示装置的第二帧渲染数据;
将所述第二帧渲染数据发送至所述终端设备。
8.根据权利要求7所述的云渲染方法,所述获得针对所述终端设备的第一显示装置和第二显示装置之中的一个的一帧渲染数据,包括:
接收终端设备进入任一刷新周期时发送的针对第一显示装置和第二显示装置之中的一个的位姿信息;
基于所述位姿信息进行图像渲染,得到针对相应显示装置的一帧渲染数据。
9.一种云渲染装置,所述云渲染装置包括:
第一帧渲染数据接收模块,用于在进入第一刷新周期,接收服务器渲染后发送的针对终端设备的第一显示装置的第一帧渲染数据;
第二帧渲染数据读取模块,用于读取在第二刷新周期获取并缓存的针对终端设备的第二显示装置的第二帧渲染数据;所述第二刷新周期是针对所述第一刷新周期的历史刷新周期;
画面图像输出控制模块,用于基于所述第一帧渲染数据和所述第二帧渲染数据,控制所述第一显示装置输出第一画面图像,所述第二显示装置输出第二画面图像。
10.一种云渲染装置,所述云渲染装置包括:
第一帧渲染数据获得模块,用于在终端设备的第一刷新周期,获得针对所述终端设备的第一显示装置的第一帧渲染数据;
第一帧渲染数据发送模块,用于将所述第一帧渲染数据发送至所述终端设备;
第二帧渲染数据获得模块,用于在所述终端设备的第二刷新周期,获得针对所述终端设备的第二显示装置的第二帧渲染数据;
第二帧渲染数据发送模块,用于将所述第二帧渲染数据发送至所述终端设备。
CN202311602279.6A 2023-11-28 2023-11-28 一种云渲染方法及装置 Pending CN117576358A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311602279.6A CN117576358A (zh) 2023-11-28 2023-11-28 一种云渲染方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311602279.6A CN117576358A (zh) 2023-11-28 2023-11-28 一种云渲染方法及装置

Publications (1)

Publication Number Publication Date
CN117576358A true CN117576358A (zh) 2024-02-20

Family

ID=89891514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311602279.6A Pending CN117576358A (zh) 2023-11-28 2023-11-28 一种云渲染方法及装置

Country Status (1)

Country Link
CN (1) CN117576358A (zh)

Similar Documents

Publication Publication Date Title
CN108140262B (zh) 调整虚拟现实内容的视频渲染速率和立体图像的处理
KR102363364B1 (ko) 파노라마 비디오의 상호작용적 전송을 위한 방법 및 시스템
CN106296566B (zh) 一种虚拟现实移动端动态时间帧补偿渲染系统及方法
US9965026B2 (en) Interactive video display method, device, and system
CN111627116B (zh) 图像渲染控制方法、装置及服务器
KR20180137816A (ko) 가상 현실 체험 서비스를 제공하는 서버, 사용자 단말 및 방법
US9838687B1 (en) Apparatus and method for panoramic video hosting with reduced bandwidth streaming
JP6620079B2 (ja) 画像処理システム、画像処理方法およびコンピュータプログラム
JP2019028368A (ja) レンダリング装置、ヘッドマウントディスプレイ、画像伝送方法、および画像補正方法
WO2020140758A1 (zh) 图像显示方法、图像处理方法和相关设备
JP6084728B1 (ja) 表示制御方法及び当該表示制御方法をコンピュータに実行させるためのプログラム
US10957020B2 (en) Systems and methods for frame time smoothing based on modified animation advancement and use of post render queues
CN110488981B (zh) 基于云渲染的手机端vr场景交互式显示方法
WO2015122052A1 (ja) 画像送信装置、情報処理端末、画像送信方法、情報処理方法、プログラム及び情報記憶媒体
KR20190132434A (ko) 가상 현실 이미지를 송신하는 방법 및 장치
CN113219668B (zh) 用于刷新头戴式显示设备的屏幕的方法、装置及电子设备
JP2014072608A (ja) 情報処理システム、情報処理装置、表示装置、及びプログラム
CN117576358A (zh) 一种云渲染方法及装置
GB2568241A (en) Content generation apparatus and method
US11270673B2 (en) Image generation apparatus, image generation method, and program
CN109756728B (zh) 图像显示方法及装置,电子设备,计算机可读存储介质
US8619124B2 (en) Video data processing systems and methods
EP3217256B1 (en) Interactive display system and method
US20240098243A1 (en) Predictive Perspective Correction
US11818324B2 (en) Virtual reality environment

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