CN115937284A - 一种图像生成方法、设备以及存储介质和程序产品 - Google Patents
一种图像生成方法、设备以及存储介质和程序产品 Download PDFInfo
- Publication number
- CN115937284A CN115937284A CN202110915064.4A CN202110915064A CN115937284A CN 115937284 A CN115937284 A CN 115937284A CN 202110915064 A CN202110915064 A CN 202110915064A CN 115937284 A CN115937284 A CN 115937284A
- Authority
- CN
- China
- Prior art keywords
- rendering
- image
- motion
- area
- information
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000009877 rendering Methods 0.000 claims abstract description 556
- 230000033001 locomotion Effects 0.000 claims abstract description 547
- 230000003068 static effect Effects 0.000 claims description 46
- 238000004891 communication Methods 0.000 claims description 44
- 238000004590 computer program Methods 0.000 claims description 6
- 230000000875 corresponding effect Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 210000003128 head Anatomy 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 230000014616 translation Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000005206 flow analysis Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000010399 physical interaction Effects 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000002904 solvent Substances 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本申请提交了一种图像生成方法、设备以及存储介质和程序产品。其中,所述方法包括:应用于终端装置,终端装置所在的渲染***还包括远端装置,方法包括:发送第一状态信息至远端装置,其中,第一状态信息包括终端装置所在的终端设备的第一位置信息和第一姿态信息;根据第一状态信息对应的第一渲染图像、第一渲染图像中运动区域的指示信息、运动区域的纹理信息和运动区域的运动趋势,获得中间渲染图像;根据第一渲染图像的第一深度信息和运动区域的运动趋势,获得第二深度信息;根据中间渲染图像、第二深度信息和第二状态信息进行渲染,获得第二渲染图像,其中,第二状态信息的发生时间晚于第一状态信息的发生时间。
Description
技术领域
本申请涉及图像渲染领域,尤其涉及一种图像生成方法、设备以及存储介质和程序产品。
背景技术
渲染是指用软件从三维模型生成图像的过程,其中,三维模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。图像是数字图像或者位图图像。
但是,远程计算节点和终端设备之间需要传输大量数据才能完成远程计算节点和终端设备之间的协同渲染,导致大量的传输资源被占据。
发明内容
为了解决上述问题,本申请提供了一种图像生成方法、设备以及存储介质和程序产品,可以减少传输资源的浪费,并且预测出来的图像呈现更逼真的效果。
第一方面,提供了一种图像生成方法,应用于终端装置,所述终端装置所在的渲染***还包括远端装置,所述方法包括:
发送第一状态信息至所述远端装置,其中,所述第一状态信息包括所述终端装置所在的终端设备的第一位置信息和第一姿态信息;
根据所述第一状态信息对应的第一渲染图像、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得中间渲染图像;
根据所述第一渲染图像的第一深度信息和所述运动区域的运动趋势,获得第二深度信息;
根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得第二渲染图像,其中,所述第二状态信息的发生时间晚于所述第一状态信息的发生时间。
在上述方案中,可以根据第一状态信息下的第一渲染图像预测出第二状态状态信息下的第二渲染图像,可以减少传输资源的浪费,并且预测出来的图像呈现更逼真的效果。
在一些可能的设计中,显示所述第一渲染图像和所述第二渲染图像。
在上述方案中,远端装置只发送了第一渲染图像,但是,终端装置可以显示第一渲染图像和第二渲染图像,所以,能够有效减少传输资源的浪费。
在一些可能的设计中,所述根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得第二渲染图像包括:
根据所述中间渲染图像和所述第二深度信息,获得三维点云数据;根据所述三维点云数据和所述第二状态信息进行渲染,获得所述第二渲染图像。
在上述方案中,先根据中间渲染图像获得三维点云数据,再根据第二状态信息信息和三维点云数据生成第二渲染图像,可以确保预测的第二渲染图像既考虑了运动趋势的因素,也考虑了状态信息变化的因素,使得预测到的第二渲染图像更加逼真。
在一些可能的设计中,所述根据所述第一状态信息对应的第一渲染图像、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得中间渲染图像包括:根据所述第一渲染图像中运动区域的指示信息和所述运动区域的运动趋势,确定所述运动区域的预测位置;根据所述第一渲染图像、所述运动区域的纹理信息和所述运动区域的预测位置,获得所述中间渲染图像。
在一些可能的设计中,所述根据所述第一状态信息对应的第一渲染图像、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得中间渲染图像之前,所述方法还包括:
接收所述远端装置发送的所述第一状态信息对应的第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势。
在一些可能的设计中,所述根据所述第一状态信息对应的第一渲染图像、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得中间渲染图像包括:
根据所述第一状态信息对应的第一渲染图像和所述第一渲染图像中运动区域的指示信息,将所述第一渲染图像划分为动态渲染区域和静态渲染区域,其中,所述动态渲染区域包括所述所述运动区域;
根据所述动态渲染区域、所述动态渲染区域中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得所述中间渲染图像;
根据所述动态渲染区域的深度信息和所述运动区域的运动趋势,获得第二深度信息;
根据所述第二状态信息、所述静态渲染区域的纹理信息和所述静态渲染区域的深度信息,获得所述静态渲染区域的渲染结果;
根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得所述动态渲染区域的渲染结果;
根据所述静态渲染区域的渲染结果和所述动态渲染区域的渲染结果,获得所述第二渲染图像。
上述方案中,将第一渲染图像分为动态渲染区域和静态渲染区域,并且只需要对动态渲染区域进行预测,可以有效减少计算量。
在一些可能的设计中,在获得第二渲染图像之后,所述方法还包括:对所述第二渲染图像的空白处进行填补。
第二方面,提供了一种图像生成方法,应用于远端装置,所述远端装置所在的渲染***还包括终端装置,所述方法包括:
根据第一状态信息进行渲染,获得第一渲染图像;
根据所述第一渲染图像和历史渲染图像,确定所述第一渲染图像中运动区域和所述运动区域的运动趋势,其中,所述历史渲染图像的获得时间早于所述第一渲染图像的获得时间,所述第一渲染图像和所述历史渲染图像中包含相同的目标;
将所述第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势发送至所述终端设备,其中,所述第一渲染图像中运动区域的指示信息用于指示所述运动区域在所述第一渲染图像中的位置。
在一些可能的设计中,所述方法还包括:存储所述第一渲染图像。
在一些可能的设计中,所述方法还包括:根据所述第一渲染图像中运动区域的指示信息,将所述第一渲染图像划分为动态渲染区域和静态渲染区域,其中,所述动态渲染区域包括所述运动区域;发送动态渲染区域指示信息至所述终端装置,所述动态区域指示信息用于指示所述动态渲染区域在所述第一渲染图像中的位置。
第三方面,提供了一种终端装置,所述终端装置所在的渲染***还包括远端装置,所述终端装置包括:
通信模块,用于发送第一状态信息至所述远端装置,其中,所述第一状态信息包括所述终端装置所在的终端设备的第一位置信息和第一姿态信息;
渲染模块,用于根据所述第一状态信息对应的第一渲染图像、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得中间渲染图像;根据所述第一渲染图像的第一深度信息和所述运动区域的运动趋势,获得第二深度信息;根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得第二渲染图像,其中,所述第二状态信息的发生时间晚于所述第一状态信息的发生时间。
在一些可能的设计中,所述终端装置还包括:显示模块,用于显示所述第一渲染图像和所述第二渲染图像。
在一些可能的设计中,所述渲染模块,用于根据所述中间渲染图像和所述第二深度信息,获得三维点云数据;根据所述三维点云数据和所述第二状态信息进行渲染,获得所述第二渲染图像。
在一些可能的设计中,所述渲染模块,用于根据所述第一渲染图像中运动区域的指示信息和所述运动区域的运动趋势,确定所述运动区域的预测位置;根据所述第一渲染图像、所述运动区域的纹理信息和所述运动区域的预测位置,获得所述中间渲染图像。
在一些可能的设计中,所述通信模块,用于接收所述远端装置发送的所述第一状态信息对应的第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势。
在一些可能的设计中,所述渲染模块,用于根据所述第一状态信息对应的第一渲染图像和所述第一渲染图像中运动区域的指示信息,将所述第一渲染图像划分为动态渲染区域和静态渲染区域,其中,所述动态渲染区域包括所述所述运动区域;根据所述动态渲染区域、所述动态渲染区域中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得所述中间渲染图像;根据所述动态渲染区域的深度信息和所述运动区域的运动趋势,获得第二深度信息;根据所述第二状态信息、所述静态渲染区域的纹理信息和所述静态渲染区域的深度信息,获得所述静态渲染区域的渲染结果;根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得所述动态渲染区域的渲染结果;根据所述静态渲染区域的渲染结果和所述动态渲染区域的渲染结果,获得所述第二渲染图像。
第四方面,提供了一种远端装置,所述远端装置所在的渲染***还包括终端装置,所述远端装置包括:
渲染模块,用于根据第一状态信息进行渲染,获得第一渲染图像;根据所述第一渲染图像和历史渲染图像,确定所述第一渲染图像中运动区域和所述运动区域的运动趋势,其中,所述历史渲染图像的获得时间早于所述第一渲染图像的获得时间,所述第一渲染图像和所述历史渲染图像中包含相同的目标;
通信模块,用于将所述第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势发送至所述终端设备,其中,所述第一渲染图像中运动区域的指示信息用于指示所述运动区域在所述第一渲染图像中的位置。
在一些可能的设计中,所述渲染模块,还用于存储所述第一渲染图像。
在一些可能的设计中,所述渲染模块,还用于根据所述第一渲染图像中运动区域的指示信息,将所述第一渲染图像划分为动态渲染区域和静态渲染区域,其中,所述动态渲染区域包括所述运动区域;所述通信模块,用于发送动态渲染区域指示信息至所述终端装置,所述动态区域指示信息用于指示所述动态渲染区域在所述第一渲染图像中的位置。
第五方面,提供了一种渲染***,所述渲染***包括如第二方面任一项所述的终端装置和第四方面任一项所述的远端装置。
第六方面,提供了一种终端设备,包括处理器和存储器,所述处理器用于执行所述存储器中存储的指令,以执行下述方法:
发送第一状态信息至所述远端装置,其中,所述第一状态信息包括所述终端装置所在的终端设备的第一位置信息和第一姿态信息;
根据第二状态信息和所述第一状态信息对应的第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得第二渲染图像,其中,所述第二状态信息的发生时间晚于所述第一状态信息的发生时间。
在一些可能的设计中,所述终端设备还包括显示器,所述显示器用于显示所述第一渲染图像和所述第二渲染图像。
在一些可能的设计中,所述处理器还用于:
根据所述中间渲染图像和所述第二深度信息,获得三维点云数据;
根据所述三维点云数据和所述第二状态信息进行渲染,获得所述第二渲染图像。
在一些可能的设计中,所述处理器还用于:
根据所述第一渲染图像中运动区域的指示信息和所述运动区域的运动趋势,确定所述运动区域的预测位置;
根据所述第一渲染图像、所述运动区域的纹理信息和所述运动区域的预测位置,获得所述中间渲染图像。
在一些可能的设计中,所述终端设备还包括收发器,所述收发器用于接收所述远端装置发送的所述第一状态信息对应的第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势。
在一些可能的设计中,所述处理器还用于:
根据所述第一状态信息对应的第一渲染图像和所述第一渲染图像中运动区域的指示信息,将所述第一渲染图像划分为动态渲染区域和静态渲染区域,其中,所述动态渲染区域包括所述所述运动区域;
根据所述动态渲染区域、所述动态渲染区域中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得所述中间渲染图像;
根据所述动态渲染区域的深度信息和所述运动区域的运动趋势,获得第二深度信息;
根据所述第二状态信息、所述静态渲染区域的纹理信息和所述静态渲染区域的深度信息,获得所述静态渲染区域的渲染结果;
根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得所述动态渲染区域的渲染结果;
根据所述静态渲染区域的渲染结果和所述动态渲染区域的渲染结果,获得所述第二渲染图像。
第七方面,提供了一种远端设备,包括处理器和存储器,所述处理器用于执行所述存储器中存储的指令,以执行下述方法:
根据所述终端装置所在终端设备发送的第一状态信息进行渲染,获得第一渲染图像;
根据所述第一渲染图像和历史渲染图像,确定所述第一渲染图像中运动区域和所述运动区域的运动趋势,其中,所述历史渲染图像的获得时间早于所述第一渲染图像的获得时间,所述第一渲染图像和所述历史渲染图像中包含相同的目标;
将所述第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势发送至所述终端设备,其中,所述第一渲染图像中运动区域的指示信息用于指示所述运动区域在所述第一渲染图像中的位置。
在一些可能的设计中,所述存储器还用于存储所述第一渲染图像。
在一些可能的设计中,所述处理器还用于:根据所述第一渲染图像中运动区域的指示信息,将所述第一渲染图像划分为动态渲染区域和静态渲染区域,其中,所述动态渲染区域包括所述运动区域;
发送动态渲染区域指示信息至所述终端装置,所述动态区域指示信息用于指示所述动态渲染区域在所述第一渲染图像中的位置。
第八方面,提供了一种计算机可读存储介质,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如第一方面或者第二方面任一项所述的方法。
第九方面,提供了一种包含指令的计算机程序产品,其特征在于,当所述指令被计算机设备集群运行时,使得所述计算机设备集群执行如第一方面或者第二方面任一项所述的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请提供的渲染***的结构示意图;
图2是本申请提供的一种图像生成方法的流程示意图;
图3是本申请提供的另一种图像生成方法的流程示意图;
图4是本申请提供的第三种图像生成方法的流程示意图;
图5是本申请提供的第一渲染图像中的动态渲染区域和静态渲染区域的示意图;
图6是本申请提供的一种渲染***的结构示意图;
图7是本申请提供的一种计算设备集群的结构示意图;
图8是本申请提供的一种计算设备集群中计算设备的连接方式的示意图;
图9是本申请提供的一种计算设备集群中计算设备的连接方式的示意图;
图10是本申请提供的一种终端设备的结构示意图。
具体实施方式
参见图1,图1是本申请涉及的一种渲染***的结构示意图。该渲染***可以包括:一个或多个终端设备10、网络设备20以及远端设备30。远端设备30和终端设备10一般部署在不同的地理位置。
本实施例中的渲染***用于终端设备10和远端设备30之间协同对目标场景的三维模型进行渲染,得到的二维的渲染图像。即,远端设备30完成渲染图像的部分工作,终端设备10完成渲染图像的部分工作,两者在网络设备20的帮助下共同协作才能够生成渲染图像。
终端设备10可以是具有数据收发、数据计算以及图像显示能力的电子设备,例如各种类型的用户设备(user equipment,UE)、手机(mobile phone)、平板电脑(pad)、台式电脑、等,还可以包括机器智能设备,如虚拟现实(virtual reality,VR)、增强现实(augmented reality,AR)终端设备、无人驾驶(self-driving)设备、远程医疗(remotemedical)设备、智慧城市(smart city)设备等,还可以包括可穿戴设备(如智能眼镜,智能手表,智能项链等)等等。终端设备可以是高配置、高性能(例如,多核、高主频、内存大等等)的电子设备,也可以是低配置,低性能(例如,单核、低主频、内存小等等)的电子设备。在某些场景中,具备相类似数据收发、数据计算以及图像显示能力的电子设备的名称也可能不称为终端设备,例如,也可能称为终端、终端装置、瘦终端等等,但是为了方便描述,本申请实施例中将具有数据收发、数据计算以及图像显示能力的电子设备统称为终端设备。终端设备10中可以设置有终端装置,所述终端装置包括通信模块以及渲染模块。在一具体的实施例中,通信模块以及渲染模块可以是通过程序代码实现的。
在一具体的实施例中,终端设备可以是虚拟现实(virtual reality,VR)(其也可以被称为沉浸式多媒体或计算机模拟生活)设备可以至少在一些情况下以不同程度复制或模拟环境或在现实世界或想象世界或环境中的地点中的实体存在。在示例实施方式中,VR***可以包括可安装或佩戴在用户头部上的VR头戴式耳机或头戴式显示器(HMD)设备。
VR设备可以生成三维沉浸式虚拟环境。用户可以通过与各种电子设备的交互来体验这种3D沉浸式虚拟环境。例如,包括显示器、用户在观看显示设备时看过去的眼镜或护目镜的头盔或其他头戴式设备可以提供用户要体验的3D沉浸式虚拟环境的音频和视觉元素。控制器(例如外部手持设备、装有传感器的手套以及其他这样的电子设备)可以与头戴式设备配对,允许用户通过操纵控制器来移动通过虚拟环境中的元件并且与虚拟环境中的元件交互。
沉浸在佩戴第一电子设备(例如,头戴式可视设备(head mount display,HMD)设备/VR头戴式耳机)的3D虚拟环境中的用户可以探索3D虚拟环境,并通过各种不同类型的输入与3D虚拟环境交互。这些输入可以包括例如物理交互,包括例如与VR头戴式耳机分开的第二电子设备(诸如,VR控制器))的操纵、VR头戴式耳机本身的操纵、控制器的操纵和通过手、手臂姿态、头部运动和头部和眼睛定向凝视等等中的一种或者多种。第一和第二电子设备(例如,VR头戴式耳机和VR控制器)可以可操作地耦合或配对,以促进它们之间的通信和数据交换。
跟踪设备可以跟踪VR头戴式耳机或用户头部的状态信息。状态信息可以包括例如用于诸如VR控制器的任何对象(物理或虚拟)的定位(也称为位置)和定向中的一种或者多种。状态信息可以包括例如物理世界中的绝对和相对定位和位置和对象的定向中的一种或者多种,或虚拟世界内的定位和位置和对象(例如,虚拟对象或渲染的元素)的定向中的一种或者多种。VR控制器或任何对象可以具有六个自由度(6DoF)以在三维空间中移动。具体地,控制器或对象可以自由地以在三个垂直轴上向前/向后(涌动)、向上/向下(***)、向左/向右(摆动)平移而改变定位:其与通过围绕三个垂直轴的旋转在定向上的改变(通常称为俯仰、偏航和滚转)组合。
因此,根据示例实施方式,三维空间中的对象的位置(或定位)可以由其在三个正交(或垂直)轴(例如,X轴、Y轴、Z轴)上的位置限定。因此,对象的位置(或定位)可以由3D坐标(例如,X、Y和Z坐标)来标识。而且,对象可以围绕三个正交轴旋转。这些旋转可以被称为俯仰、偏航和滚转。俯仰、偏航和滚转旋转可以限定任何对象的方向。因此,例如,对象的定向可以包括或可以指对象指向或定向的方向。
根据示例实施方式,头部状态信息可以包括指示(或识别)头部姿态的信息,并且可以包括指示用户的头部或者由用户佩戴的虚拟现实头戴式耳机的位置的位置信息以及指示用户的头部或虚拟现实头戴式耳机的定向的定向信息中的至少一个(或者可以替选地包括两者)()。例如,可从跟踪用户佩戴的虚拟现实头戴式耳机的姿态的跟踪设备(例如,其可以是VR头戴式耳机的一部分)接收头部姿态信息(例如,包括用户头部或用户佩戴的VR头戴式耳机的位置信息和/或定向信息)。
类似地,对象姿态信息可以包括指示(识别)对象姿态的信息,例如,包括指示对象的位置(或定位)的位置信息和指示对象的定向的定向信息中的至少一个(或者可替选地包括两者)。例如,对象可以包括物理对象,诸如由用户操作的VR控制器。至少在一些情况下,可从跟踪对象的姿态(位置和/或定向)的跟踪设备接收对象姿态信息。
对象还可以包括在HMD或VR头戴式耳机的显示器上渲染并且然后显示在虚拟世界中的虚拟对象(例如,剑或光剑或动物)。例如,虚拟对象(虚拟对象的运动和/或姿态)可以由VR控制器或其他物理对象来控制。例如,VR应用(或其他应用或程序)可使用对象姿态信息(例如,来自VR控制器或其他物理对象)来改变虚拟世界中显示的图像或帧中的一个或更多虚拟对象(或渲染元素)的姿态(例如,位置和/或定向)。
另外,虚拟对象(例如,太空飞船、动物、升空的太空飞船或火箭)的运动和/或姿态可以由VR应用控制。此外,VR应用可能会或可能不会从VR控制器或其他物理对象接收虚拟对象的姿态信息。因此,例如,在从VR控制器或与虚拟对象相关联(例如,控制虚拟对象的运动和/或姿态)的其他物理对象(例如,物理世界中的VR控制器,用于控制虚拟世界中的剑或轻剑的运动或姿态)接收姿态信息的情况下,可以(例如,通过VR应用)使用VR控制器或对象的VR应用和姿态信息来控制虚拟对象的运动和/或姿态。
网络设备20用于在终端设备10通过任何通信机制/通信标准的通信网络与远端设备30之间传输数据。其中,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
远端设备30可以是具备数据收发以及数据计算能力的计算设备,例如,服务器、台式电脑、平板计算机、膝上型计算机、个人计算机等等。远端设备可以是单独设置的,也可以是集群设置的。当远端设备30采用集群设置时,远端设备30可以被设置在云平台(例如,公有云平台、私有云平台以及混合云平台等等)、边缘计算平台、数据中心等等。远端设备30可以包括渲染硬件、虚拟化服务以及远端装置。其中,渲染硬件包括计算资源、存储资源以及网络资源。计算资源可以采用异构计算架构,例如,可以采用中央处理器(centralprocessing unit,CPU)+图形处理器(graphics processing unit,GPU)架构,CPU+AI芯片,CPU+GPU+AI芯片架构等等,此处不作具体限定。存储资源可以包括内存、显存等存储设备。网络资源可以包括网卡、端口资源、地址资源等。虚拟化服务是通过虚拟化技术将渲染节点的资源虚拟化为vCPU等自已,并按照用户的需要灵活地隔离出相互独立的资源以运行用户的应用程序的服务。常见地,虚拟化服务可以包括虚拟机(virtual machine,VM)服务以及容器(container)服务,VM和容器可以设置有远端装置,所述远端装置包括通信模块以及渲染模块。在一具体的实施例中,通信模块以及渲染模块可以是通过程序代码实现的。
所述终端装置和所述远端装置均运行同一应用。常见的应用可以包括:游戏应用、VR应用、电影特效以及动画等等。在一具体的实施方式中,所述终端装置和所述远端装置可以是应用提供商提供的。举个例子说明,应用可以是游戏应用,游戏应用的游戏开发商将所述远端装置安装在云服务提供商提供的远端设备30上,将所述终端装置通过互联网提供给用户下载,并安装在用户的终端设备上。
参见图2,图2是本申请提供的第一种图像生成方法的流程示意图。如图2所示,本实施方式的图像生成方法,包括:
S101:终端装置分别获取多个状态信息S1,S2,…,St。
在一具体的实施例中,多个状态信息中的每个状态信息均包括位置信息以及姿态信息。其中,位置信息用于表示终端装置所在的终端设备的位置,姿态信息用于表示终端装置所在的终端设备的姿态。具体地,状态信息S1包括位置信息L1和姿态信息P1;状态信息S2包括位置信息L2和姿态信息P2;…;状态信息St包括位置信息Lt和姿态信息Pt。其中,状态信息S1的发生时间晚于状态信息S2的发生时间,状态信息S2的发生时间晚于状态信息S3的发生时间,…,状态信息St-1的发生时间晚于状态信息St的发生时间。
S102:终端装置将多个状态信息S1,S2,…,St依次发送给远端装置。相应地,远端装置接收终端装置发送的多个状态信息S1,S2,…,St。
S103:远端装置根据多个状态信息S1,S2,…,St生成多个渲染图像I1,I2,…,It。
在一具体的实施例中,多个渲染图像I1,I2,…,It可以是分别根据多个状态信息S1,S2,…,St对目标场景进行渲染得到的二维图像。多个状态信息和多个渲染图像之间存在一一对应关系。具体地,渲染图像I1是根据状态信息S1对目标场景进行渲染得到的二维图像;渲染图像I2是根据状态信息S2对目标场景进行渲染得到的二维图像;…,渲染图像It是根据状态信息St对目标场景进行渲染得到的二维图像。其中,目标场景包括三维模型以及光源,光源用于照射三维模型,三维模型可以包括一个或者多个运动物体。多个渲染图像I1,I2,…,It中的每个渲染图像中均包括运动区域和背景区域。运动区域是对目标场景中的运动物体进行渲染得到的,背景区域为除了运动区域之外的区域。
在一更具体的实施例中,多个渲染图像I1,I2,…,It可以是对包括运动物体的目标场景进行连续渲染得到的一组图像。举例来说,假设目标场景中的运动物体从半空往地面落下时,运动物体下落10厘米的时候渲染得到的一帧图像I1,运动物体下落20厘米的时候渲染得到的一帧图像I2,…,运动物体下落70厘米的时候渲染得到的一帧图像It等等。多个渲染图像I1,I2,…,It的相邻帧之间通常是相关图像。即,多个渲染图像I1,I2,…,It的相邻帧之间的相似度通常大于阈值,其中,多个渲染图像I1,I2,…,It的相邻帧之间的相似度的计算方式可以包括余弦相似度、闵可夫斯基距离、曼哈顿距离、欧氏距离、切比雪夫距离、汉明距离以及杰卡德相似系数等等。
S104:远端装置生成第一渲染图像的第一深度信息、第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势。
在一具体的实施例中,第一渲染图像可以是渲染图像It,此时,第一渲染图像的历史图像可以是渲染图像I1至渲染图像It-1中的部分或者全部。可以理解,在其他的实施例中,渲染图像It可以是渲染图像It-1,渲染图像It-2等等,此处不作具体限定。下文中均以第一渲染图像为渲染图像It为例进行说明。
在一具体的实施例中,第一渲染图像的第一深度信息用于表示第一渲染图像中每个像素点对应的深度。第一深度信息为二维矩阵,并且,第一深度信息的矩阵的尺寸与第一渲染图像的矩阵的尺寸相同。以第一深度信息为以下的矩阵A,第一渲染图像为以下的矩阵B为例,
其中,第一深度信息中的元素a11用于表示第一渲染图像中像素点b11的深度,第一深度信息中的元素a12用于表示第一渲染图像中像素点b12的深度,…,第一深度信息中的元素a1m用于表示第一渲染图像中像素点b1m的深度,第一深度信息中的元素a21用于表示第一渲染图像中像素点b21的深度,第一深度信息中的元素a22用于表示第一渲染图像中像素点b22的深度,…,第一深度信息中的元素a2m用于表示第一渲染图像中像素点b2m的深度,…,第一深度信息中的元素an1用于表示第一渲染图像中像素点bn1的深度,第一深度信息中的元素an2用于表示第一渲染图像中像素点bn2的深度,…,第一深度信息中的元素anm用于表示第一渲染图像中像素点bnm的深度。
在一具体的实施例中,第一渲染图像的第一深度信息可以是远端装置根据第一状态信息以及目标场景获得的。可以理解,当第一渲染图像为渲染图像It时,第一状态信息即为状态信息St。
在一具体的实施例中,所述第一渲染图像中运动区域的指示信息可以是所述第一渲染图像中运动区域中的所有像素点的位置坐标,或者,是所述第一渲染图像中运动区域中边界的像素点的位置坐标等等。
在一具体的实施例中,所述第一渲染图像中运动区域的指示信息可以是通过以下方式提取得到的:远端装置基于对渲染图像It-1,It进行分析,确定第一渲染图像中的运动区域的中心点的位置坐标;根据第一渲染图像中的运动区域的中心点的位置坐标确定所述第一深度信息中运动区域的中心点的位置坐标,根据第一深度信息中运动区域的中心点的位置坐标确定第一深度信息中运动区域的位置坐标,根据第一深度信息中运动区域的位置坐标确定所述第一渲染图像中运动区域的位置坐标,将第一渲染图像中运动区域的位置坐标作为所述第一渲染图像中运动区域的指示信息。
在一更具体的实施例中,远端装置基于对渲染图像It-1,It进行分析,确定第一渲染图像中的运动区域的中心点的位置坐标,具体包括:远端装置对渲染图像It-1,It进行分析,从而得到第一渲染图像中属于运动区域的像素点的位置坐标。由于第一渲染图像中背景部分的像素点移动量和第一渲染图像中运动区域的像素点的移动量是不同的,因此,远端装置通过光流分析法对渲染图像It-1,It进行分析确定第一渲染图像中每个像素点的移动量,就可以通过分析第一渲染图像中背景部分的像素点的移动量和第一渲染图像中运动区域的像素点的移动量之间的差异就可以大致将属于第一渲染图像中运动区域的像素点从第一渲染图像中提取出来。但是,提取出来的第一渲染图像中运动区域存在大量的噪声的像素点,即,一部分不应该属于第一渲染图像中运动区域的像素点被提取出来了,和/或,一部分应该属于第一渲染图像中运动区域的像素点没有被提取出来。远端装置将提取出来的像素点的位置进行求平均值,就可以得到属于第一渲染图像中运动区域的中心点的位置坐标。可以理解,由于提取出来的像素点中有些像素点是确实属于第一渲染图像中运动区域的,有些是不应该属于第一渲染图像中运动区域而被错误提取出来的,远端装置难以确定哪些像素点是确实应该属于第一渲染图像中运动区域的,哪些像素点是不应用属于第一渲染图像中运动区域的。因此,需要通过将提取出来的像素点的位置进行求平均值,得到第一渲染图像中的运动区域的中心点,该第一渲染图像中的运动区域的中心点可以确定是确实属于第一渲染图像中的运动区域的像素点。可以理解,除了第一渲染图像中的运动区域的中心点确实为第一渲染图像中的运动区域的像素点之外,将第一渲染图像中的运动区域的中心点的位置坐标进行少量平移或者旋转得到的像素点,往往也是确实属于第一渲染图像中的运动区域的像素点。例如,将第一渲染图像中的运动区域的中心点的位置坐标向右移动三个像素点之后得到的像素点,往往也是确实属于第一渲染图像中的运动区域的像素点,此处不作具体限定。
在一更具体的实施例中,远端装置根据第一渲染图像中的运动区域的中心点的位置坐标确定所述第一深度信息中运动区域的中心点的位置坐标。一般来说,第一渲染图像中的运动区域的中心点的位置坐标和第一深度信息中的运动区域的中心点的位置坐标是相同的。所以,远端装置可以根据第一渲染图像中的运动区域的中心点确定第一深度信息中的运动区域的中心点的位置坐标。
在一更具体的实施例中,远端装置根据第一深度信息中运动区域的中心点的位置坐标确定第一深度信息中运动区域的位置坐标,具体包括:
首先,远端装置对第一深度信息进行边缘检测,得到第一深度信息中的第一轮廓曲线。可以理解,背景部分的深度和运动区域的深度通常是不同的,因此,通过边缘检测在第一深度信息中提取得到的第一轮廓曲线包括运动区域的轮廓曲线。但是,可能存在背景部分的轮廓曲线也被错误提取出来,造成了干扰。因此,需要通过下述连通域查找排除干扰,将第一深度信息中的运动区域从第一深度信息中准确提取出来。
然后,远端装置以第一深度信息中的运动区域的中心点为种子点,对第一轮廓曲线进行连通域查找,得到第一连通域。其中,远端装置可以通过以下方式对第一轮廓曲线进行连通域查找:
S1:将栈置为空,并将给定的种子点(x1,y1)压入栈;
S2:如果栈为空,结束流程;否则取栈顶元素(x2,y2)作为种子点(x1,y1);
S3:从种子点(x1,y1)开始,沿纵坐标为y的当前扫描线向左右两个方向逐个像素用边界的颜色值进行填充,直到像素颜的色等于第一轮廓曲线的颜色。设左右两边界的横坐标分别为xleft和xright。
S4:在与当前扫描线相邻的上下两条扫描线上,以区间[xleft,xright]为搜索范围,求出需要填充的最小区间,把最小区间中最右边的点并作为种子点(x1,y1)压入栈,转到步骤2。
最后,远端装置根据第一连通域在第一深度信息中的位置坐标从第一深度信息中对应的位置坐标提取第一深度信息中的运动区域。
在一更具体的实施例中,根据第一深度信息中运动区域的位置坐标确定所述第一渲染图像中运动区域的位置坐标,具体包括:由于理论上第一渲染图像中的运动区域的位置坐标和第一深度信息中的运动区域的位置坐标是相同的,因此,当第一深度信息中的运动区域的位置坐标确定了之后,第一渲染图像中的运动区域的位置坐标也相应确定了。
在一具体的实施例中,第一渲染图像中的运动区域的纹理信息可以是运动区域的像素点的像素值构成的。第一渲染图像中的运动区域的纹理信息可以根据第一渲染图像中的运动区域的位置坐标提取出来的。
在一具体的实施例中,第一渲染图像中的运动区域的运动趋势可以包括运动的方向以及运动的速度。第一渲染图像中的运动区域的运动趋势可以是根据以下的方式计算得到的:远端装置通过光流分析法可以确定多个渲染图像中的渲染图像I1中的表示同一运动区域的像素点移动到下一帧渲染图像I2的移动量1(包括速度大小和方向),通过光流分析法可以确定多个渲染图像中的渲染图像I2中的表示同一运动区域的像素点移动到下一帧渲染图像I2的移动量2,…,通过光流分析法可以确定多个渲染图像中的渲染图像It-1中的表示同一运动区域的像素点移动到下一帧渲染图像It的移动量t-1。远端装置根据移动量1、移动量2、…、移动量t-1确定运动区域的运动趋势。
S105:远端装置将第一渲染图像、第一深度信息、第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势发送给终端装置。相应地,终端装置接收远端装置发送的第一渲染图像、第一深度信息、第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势。
S106:终端装置根据第一渲染图像、第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势确定中间渲染图像。
在一具体的实施例中,根据所述第一渲染图像中运动区域的指示信息和所述运动区域的运动趋势,确定所述运动区域的预测位置;根据所述第一渲染图像、所述运动区域的纹理信息和所述运动区域的预测位置,获得所述中间渲染图像。具体地,
假设第一渲染图像中运动区域的运动趋势是向左移动三个像素,那么,终端装置可以按照第一渲染图像中运动区域的指示信息以及第一渲染图像中运动区域的运动趋势确定所述运动区域的预测位置为向左移动三个像素,然后,将第一渲染图像中运动区域的纹理信息的位置向左移动三个像素至所述运动区域的预测位置,从而得到中间渲染图像;
假设第一渲染图像中运动区域的运动趋势是向右移动三个像素,那么,终端装置可以按照第一渲染图像中运动区域的指示信息以及第一渲染图像中运动区域的运动趋势确定所述运动区域的预测位置为向右移动三个像素,然后,将第一渲染图像中运动区域的纹理信息的位置向右移动三个像素至所述运动区域的预测位置,从而得到中间渲染图像;
假设第一渲染图像中运动区域的运动趋势是向上移动三个像素,那么,终端装置可以按照第一渲染图像中运动区域的指示信息以及第一渲染图像中运动区域的运动趋势确定所述运动区域的预测位置为向上移动三个像素,然后,将第一渲染图像中运动区域的纹理信息的位置向上移动三个像素至所述运动区域的预测位置,从而得到中间渲染图像;
假设第一渲染图像中运动区域的运动趋势是向下移动三个像素,那么,终端装置可以按照第一渲染图像中运动区域的指示信息以及第一渲染图像中运动区域的运动趋势确定所述运动区域的预测位置为向下移动三个像素,然后,将第一渲染图像中运动区域的纹理信息的位置向下移动三个像素至所述运动区域的预测位置,从而得到中间渲染图像。
可以理解,上述例子均以运动区域的运动趋势为平移为例子进行说明,在实际应用中,运动区域的运动趋势还可以是旋转,或者平移加旋转等等,此处不作具体限定。
步骤S107:终端装置根据第一深度信息、第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述第一渲染图像中运动区域的运动趋势确定第二深度信息。
在一具体的实施例中,终端装置可以根据第一渲染图像中运动区域的指示信息确定第一深度信息中运动区域的指示信息,根据所述第一渲染图像中运动区域的运动趋势确定第一深度信息中运动区域的运动趋势,然后,根据第一深度信息、第一深度信息中运动区域的指示信息以及第一深度信息中运动区域的运动趋势确定第二深度信息。
在一更具体的实施例中,终端装置可以根据第一渲染图像中运动区域的指示信息确定第一深度信息中运动区域的指示信息。一般来说,第一渲染图像中运动区域的指示信息和第一深度信息中运动区域的指示信息是对应的。所以,远端装置可以根据第一渲染图像中运动区域的指示信息确定第一深度信息中运动区域的指示信息。
在一更具体的实施例中,终端装置可以根据第一渲染图像中运动区域的运动趋势确定第一深度信息中运动区域的运动趋势。一般来说,第一渲染图像中运动区域的运动趋势和第一深度信息中运动区域的运动趋势是对应的。所以,远端装置可以根据第一渲染图像中运动区域的运动趋势确定第一深度信息中运动区域的运动趋势。
在一更具体的实施例中,终端装置根据第一深度信息、第一深度信息中运动区域的指示信息以及第一深度信息中运动区域的运动趋势确定第二深度信息,具体包括:
假设第一深度信息中运动区域的运动趋势是向左移动三个像素,那么,终端装置可以按照第一深度信息中运动区域的指示信息以及第一深度信息中运动区域的运动趋势将第一深度信息中运动区域的指示信息指示的深度值的位置向左移动三个像素,从而得到第二深度信息;
假设第一深度信息中运动区域的运动趋势是向右移动三个像素,那么,终端装置可以按照第一深度信息中运动区域的指示信息以及第一深度信息中运动区域的运动趋势将第一深度信息中运动区域的指示信息指示的深度值的位置向右移动三个像素,从而得到第二深度信息;
假设第一深度信息中运动区域的运动趋势是向上移动三个像素,那么,终端装置可以按照第一深度信息中运动区域的指示信息以及第一深度信息中运动区域的运动趋势将第一深度信息中运动区域的指示信息指示的深度值的位置向上移动三个像素,从而得到第二深度信息;
假设第一深度信息中运动区域的运动趋势是向下移动三个像素,那么,终端装置可以按照第一深度信息中运动区域的指示信息以及第一深度信息中运动区域的运动趋势将第一深度信息中运动区域的指示信息指示的深度值的位置向下移动三个像素,从而得到第二深度信息。
可以理解,上述例子均以运动趋势为平移为例子进行说明,在实际应用中,运动趋势还可以是旋转,或者,平移加旋转等等,此处不作具体限定。
S108:终端装置根据中间渲染图像以及第二深度信息,生成三维的点云数据。
在一具体的实施例中,终端装置根据中间渲染图像以及第二深度信息,生成三维的点云数据,具体包括:终端装置根据中间渲染图像中各个像素点的位置坐标和像素值,第二深度信息中各个元素的位置坐标和深度值生成三维的点云数据。以中间渲染图像为以下矩阵C,第二深度信息为以下矩阵D为例,
终端装置可以根据中间渲染图像和第二深度信息生成三维的点云数据可以是如下表1所示:
表1点云数据
数值 | 坐标值x | 坐标值y | 坐标值z |
<![CDATA[c<sub>11</sub>]]> | 1 | 1 | <![CDATA[d<sub>11</sub>]]> |
<![CDATA[c<sub>12</sub>]]> | 1 | 2 | <![CDATA[d<sub>12</sub>]]> |
… | … | … | … |
<![CDATA[c<sub>1m</sub>]]> | 1 | m | <![CDATA[d<sub>1m</sub>]]> |
<![CDATA[c<sub>21</sub>]]> | 2 | 1 | <![CDATA[d<sub>21</sub>]]> |
<![CDATA[c<sub>22</sub>]]> | 2 | 2 | <![CDATA[d<sub>22</sub>]]> |
… | … | … | … |
<![CDATA[c<sub>2m</sub>]]> | 2 | m | <![CDATA[d<sub>2m</sub>]]> |
… | … | … | … |
<![CDATA[c<sub>n1</sub>]]> | n | 1 | <![CDATA[d<sub>n1</sub>]]> |
<![CDATA[c<sub>n2</sub>]]> | n | 2 | <![CDATA[d<sub>n2</sub>]]> |
… | … | … | … |
<![CDATA[c<sub>nm</sub>]]> | n | m | <![CDATA[d<sub>nm</sub>]]> |
可以理解,上述表1仅仅作为一个示例,以体现不同点云数据中数值和三维坐标(坐标值x,坐标值y,坐标值z)之间的对应关系,在实际应用中,该对应关系的文字内容和存储方式还可以是其他形式,此处不作具体限定。
S109:终端装置根据获取到的第二状态信息以及点云数据生成第二渲染图像。
在一具体的实施例中,第二状态信息可以是状态信息St+1,状态信息St+2等等中的任一状态信息。可以理解,当第二状态信息为状态信息St+1时,第二渲染图像可以是渲染图像It+1;当第二状态信息为状态信息St+2时,第二渲染图像可以是渲染图像It+2等等,此处不作具体限定。
可以理解,远端装置可以在步骤S105与步骤S106之间显示第一渲染图像,在步骤S109之后显示第二渲染图像。
上述方案中,远端装置只需要将第一渲染图像以及一些相关的信息发送给终端装置,终端装置就可以根据第一渲染图像以及一些相关的信息预测第二渲染图像。因此,能够有效地降低传输所需要的资源。上述例子中只以生成了第二渲染图像为例进行说明,在实际应用中,还可以继续根据获取到的第三状态信息,第四状态信息等等生成第三渲染图像,第四渲染图像等等。并且,终端装置生成的渲染图像越多,能够节约的传输资源就越多。
参见图3,图3是本申请提供的第二种图像生成方法的流程示意图。如图3所示,本实施方式的图像生成方法,包括:
S201:终端装置分别获取多个状态信息S1,S2,…,St。
S202:终端装置将多个状态信息S1,S2,…,St依次发送给远端装置。相应地,远端装置接收终端装置发送的多个状态信息S1,S2,…,St。
S203:远端装置根据多个状态信息S1,S2,…,St生成多个渲染图像I1,I2,…,It。
S204:远端装置生成渲染图像It的第一深度信息。
S205:远端装置将多个渲染图像I1,I2,…,It,渲染图像It的第一深度信息发送给终端装置。相应地,终端装置接收远端装置发送的多个渲染图像I1,I2,…,It以及渲染图像It的第一深度信息。
S206:终端装置根据多个渲染图像I1,I2,…,It生成第一渲染图像中的运动区域的指示信息、第一渲染图像中的运动区域的纹理信息以及第一渲染图像中的运动区域的运动趋势。
S207:终端装置根据第一渲染图像、第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势确定中间渲染图像。
S208:终端装置根据第一渲染图像的第一深度信息、第一渲染图像中运动区域的指示信息、第一渲染图像中的运动区域的纹理信息和第一渲染图像中运动区域的运动趋势确定第二深度信息。
S209:终端装置根据中间渲染图像以及第二深度信息,生成三维的点云数据。
S210:终端装置根据获取到的第二状态信息以及点云数据生成第二渲染图像。
为了简便起见,本实施例并没有对多个状态信息、多个渲染图像、第一渲染图像的第一深度信息、第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势等等的定义进行介绍,也没有对第一渲染图像中的第一深度信息、第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势的计算方法、中间渲染图像的生成方法、第二深度信息的确定方法、点云数据的生成方法、第二渲染图像的生成方法进行详细的介绍,具体请参见图2以及相关描述。
可以理解,图2所示的实施例中是以第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势是远端装置生成的为例进行说明,图3所示的实施例中是以第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势是终端装置生成的为例进行说明,而在实际应用中,第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势可以部分是由远端装置生成的,部分是由终端装置生成的,此处不作具体限定。
参见图4,图4是本申请提供的第三种图像生成方法的流程示意图。如图4所示,本实施方式的图像生成方法,包括:
S301:终端装置分别获取多个状态信息S1,S2,…,St。
S302:终端装置将多个状态信息S1,S2,…,St依次发送给远端装置。相应地,远端装置接收终端装置发送的多个状态信息S1,S2,…,St。
S303:远端装置根据多个状态信息S1,S2,…,St生成多个渲染图像I1,I2,…,It。
S304:远端装置生成第一渲染图像的第一深度信息、第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势。
S305:远端装置将第一渲染图像、第一深度信息、第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势发送给终端装置。相应地,终端装置接收远端装置发送的第一渲染图像、第一深度信息、第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势。
S306:终端装置根据第一渲染图像中运动区域的指示信息,将所述第一渲染图像划分为动态渲染区域和静态渲染区域。
在一具体的实施例中,第一渲染图像可以是渲染图像It,此时,第一渲染图像的历史图像可以是渲染图像I1至渲染图像It-1中的部分或者全部。可以理解,在其他的实施例中,渲染图像It可以是渲染图像It-1,渲染图像It-2等等,此处不作具体限定。下文中均以第一渲染图像为渲染图像It为例进行说明。
在一具体的实施例中,如图5所示,第一渲染图像包括动态渲染区域和静态渲染区域。所述动态渲染区域包括第一渲染图像中的运动区域。在一具体的实施例中,所述动态渲染区域可以是所述第一渲染图像中的运动区域的外接矩形。所述静态渲染区域为第一渲染图像中除了动态渲染区域之外的区域。
在一具体的实施例中,当动态渲染区域为第一渲染图像中的运动区域的外接矩形时,动态渲染区域可以是这样确定的:选择第一渲染图像中的运动区域中最右边的像素点的横坐标,第一渲染图像中的运动区域中最左边的像素点的横坐标,第一渲染图像中的运动区域中最上边的像素点的纵坐标,第一渲染图像中的运动区域中最下边的像素点的纵坐标构成运动区域的外接矩形。
S307:终端装置根据所述第一渲染图像中运动区域的指示信息,将第一渲染图像中第一深度信息划分为动态深度信息和静态深度信息,其中,所述动态深度信息对应所述运动区域。
在一具体的实施例中,终端装置可以根据所述第一渲染图像中中运动区域的指示信息,确定第一渲染图像的第一深度信息中运动区域的位置坐标,然后,根据第一渲染图像的第一深度信息中运动区域的位置坐标将第一渲染图像的第一深度信息划分为动态深度信息和静态深度信息。
在一具体的实施例中,终端装置可以根据第一渲染图像中运动区域的指示信息,确定第一渲染图像中运动区域的位置坐标,然后,根据第一渲染图像中运动区域的位置坐标确定第一渲染图像的第一深度信息中运动区域的位置坐标。这里,第一渲染图像中运动区域的位置坐标和第一渲染图像的第一深度信息中运动区域的位置坐标基本上是相同的。
在一具体的实施例中,第一渲染图像的第一深度信息包括动态深度信息和静态深度信息。所述动态深度信息包括第一渲染图像的第一深度信息中的运动区域。在一具体的实施例中,所述动态深度信息可以是第一渲染图像的第一深度信息中的运动区域的外接矩形。所述静态深度信息为第一渲染图像的第一深度信息中除了动态深度信息之外的区域。
在一具体的实施例中,当动态深度信息为第一渲染图像的第一深度信息中的运动区域的外接矩形时,动态深度信息可以是这样确定的:基于第一渲染图像的第一深度信息中的运动区域中最右边的元素的横坐标,第一渲染图像的第一深度信息中的运动区域中最左边的元素的横坐标,第一渲染图像的第一深度信息中的运动区域中最上边的元素的纵坐标,第一渲染图像的第一深度信息中的运动区域中最下边的元素的纵坐标,构成第一深度信息中的运动区域的外接矩形。
S308:终端装置根据第一渲染图像中的动态渲染区域、第一渲染图像的第一深度信息中的动态深度信息、第一渲染图像中的运动区域的指示信息、第一渲染图像中的运动区域的纹理信息和第一渲染图像中的运动区域的运动趋势,获得中间动态渲染图像和动态深度信息。
在一具体的实施例中,终端装置根据第一渲染图像中的动态渲染区域、第一渲染图像的第一深度信息中的动态深度信息、第一渲染图像中的运动区域的指示信息、第一渲染图像中的运动区域的纹理信息和第一渲染图像中的运动区域的运动趋势生成中间动态渲染图像和动态深度信息的过程与图2所示实施例中终端装置根据第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势生成中间渲染图像和第二深度信息的过程相类似,具体请参见上文。
S309:终端装置根据第二状态信息、所述中间动态渲染图像和所述动态深度信息,获得动态渲染图像。
在一具体的实施例中,终端装置根据所述中间动态渲染图像和所述动态深度信息,获得三维的中间点云数据,然后,终端装置再根据第二状态信息以及中间点云数据生成动态渲染图像。
在一具体的实施例中,终端装置根据第二状态信息以及中间点云数据生成动态渲染图像的过程与图2所示实施例中终端装置根据获取到的第二状态信息以及点云数据生成第二渲染图像的过程相类似,具体请参见上文。
S310:终端装置根据第二状态信息、所述静态渲染区域和所述静态深度信息,获得静态渲染图像。
在一具体的实施例中,终端装置第二状态信息、所述静态渲染区域和所述静态深度信息生成静态渲染图像的过程与图2所示实施例中终端装置根据获取到的第二状态信息以及点云数据生成第二渲染图像生成第二渲染图像的过程相类似,具体请参见上文。
S311:终端装置根据所述动态渲染图像和所述静态渲染图像,获得第二渲染图像。
为了简便起见,本实施例并没有对多个状态信息、多个渲染图像、第一渲染图像的第一深度信息、第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势等等的定义进行介绍,也没有对第一渲染图像中的第一深度信息、第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势的计算方法进行详细的介绍,具体请参见图2以及相关描述。
参见图6,图6是本申请提供的一种渲染***的结构示意图。如图6所示,本实施例提供的渲染***包括终端装置以及远端装置。其中,终端装置以及远端装置之间可以进行通信。
如图6左边所示,所述终端装置包括:通信模块101、渲染模块102以及显示模块103。
通信模块101,用于发送第一状态信息至所述远端装置,其中,所述第一状态信息包括所述终端装置所在的终端设备的第一位置信息和第一姿态信息。
渲染模块102,用于根据所述第一状态信息对应的第一渲染图像、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得中间渲染图像;根据所述第一渲染图像的第一深度信息和所述运动区域的运动趋势,获得第二深度信息;根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得第二渲染图像,其中,所述第二状态信息的发生时间晚于所述第一状态信息的发生时间。
显示模块103,用于显示所述第一渲染图像和所述第二渲染图像。
如图6右边所示,所述远端装置包括:渲染模块301以及通信模块302。
渲染模块301,用于根据第一状态信息进行渲染,获得第一渲染图像;根据所述第一渲染图像和历史渲染图像,确定所述第一渲染图像中运动区域和所述运动区域的运动趋势,其中,所述历史渲染图像的获得时间早于所述第一渲染图像的获得时间,所述第一渲染图像和所述历史渲染图像中包含相同的目标。
通信模块302,用于将所述第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势发送至所述终端设备,其中,所述第一渲染图像中运动区域的指示信息用于指示所述运动区域在所述第一渲染图像中的位置。
本实施例并没有对第一状态信息、第二状态信息、第一渲染图像、第二渲染图像、第一渲染图像的第一深度信息、第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势等等的定义进行介绍,也没有对第一渲染图像中的第一深度信息、第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势的计算方法、中间渲染图像的生成方法、第二深度信息的确定方法、点云数据的生成方法、第二渲染图像的生成方法进行详细的介绍,具体请参见图2以及相关描述。上述方案中,终端装置可以用于执行图2至图4所示的图像生成方法中终端设备执行的步骤,远端装置可以执行图2至图4所示的图像生成方法中远端设备执行的步骤。
本申请实施例还提供了一种计算设备集群。如图7所示,所述计算设备集群包括至少一个计算设备400。计算设备集群中的一个或多个计算设备400可以包括处理器404、存储器406、通信接口408。其中,处理器404、存储器406、通信接口408之间通过总线402进行连接。存储器406中可以存有用于执行图像生成方法中远端设备执行的步骤的指令。例如,图7中的存储器406存有用于执行渲染模块301的功能的指令,用于执行通信模块302的功能的指令,用于执行存储模块303的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备400也可以用于执行实例如图2至图4所示的图像生成方法中远端设备执行的步骤的部分指令。换言之,一个或多个计算设备400的组合可以共同执行如图2至图4所示的图像生成方法中远端设备执行的步骤的指令。
需要说明的是,计算设备集群中的不同的计算设备400中的存储器406可以存储不同的指令。
图8示出了一种可能的实现方式。如图8所示,两个计算设备400A和400B通过通信接口408实现连接。计算设备400A中的存储器上存有用于执行渲染模块301和通信模块302的功能的指令。计算设备400B中的存储器上存有用于执行存储模块303的功能的指令。换言之,计算设备400A和400B的存储器406共同存储了用于执行如图2至图4所示的图像生成方法中远端设备执行的步骤的指令。
图8所示的计算设备集群之间的连接方式可以是考虑到本申请提供的图像生成方法中远端设备执行的步骤需要对大量的计算设备运行数据进行存储。因此,考虑将存储功能交由计算设备400B执行。
应理解,图8中示出的计算设备400A的功能也可以由多个计算设备400完成。同样,计算设备400B的功能也可以由多个计算设备400完成。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图9示出了一种可能的实现方式。如图9所示,两个计算设备400C和400D之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备400C中的存储器406中存有执行渲染模块301的指令。同时,计算设备400D中的存储器406中存有执行存储模块303和渲染模块301的指令。
图9所示的计算设备集群之间的连接方式可以是考虑到本申请提供的图像生成方法中远端设备执行的步骤需要对大量的计算设备运行数据进行存储,因此考虑将存储模块303和渲染模块301实现的功能交由计算设备400D执行。
应理解,图9中示出的计算设备400C的功能也可以由多个计算设备400完成。同样,计算设备400D的功能也可以由多个计算设备400完成。
参见图10,图10是本申请提供的一种终端设备的结构示意图。如图10所示,本实施方式提供的终端设备可以VR设备为例进行说明。VR设备可以包括耦合到框架的壳体,其中,包括例如安装在头戴式耳机中的扬声器的音频输出设备也耦合到框架。壳体的前部旋转离开壳体的基部,使得容纳在壳体中的一些部件可见。显示器可以安装在壳体的前部的面向内部的一侧。当前部处于靠着壳体的基部部分的关闭定位时,透镜可以安装在壳体中,在用户的眼睛和显示器之间。
如图10所示,VR设备可以包括处理器501、存储器502、通信模块503、感测***504以及显示器505。
处理器501可用于读取和执行计算机可读指令。具体实现中,处理器501可主要包括控制器、运算器和寄存器。其中,控制器主要负责指令译码,并为指令对应的操作发出控制信号。运算器主要负责执行定点或浮点算数运算操作、移位操作以及逻辑操作等,也可以执行地址运算和转换。寄存器主要负责保存指令执行过程中临时存放的寄存器操作数和中间操作结果等。具体实现中,处理器501的硬件架构可以是专用集成电路(ASIC)架构、MIPS架构、ARM架构或者NP架构等等。
在一些实施例中,处理器501可以用于获知用户的状态信息,并通过无线通信处理模块和有线LAN通信处理模块中的一个或者多个发送用户的状态信息。处理器501可以用于解析无线通信处理模块和/有线LAN通信处理模块接收到的第一渲染图像以及中间数据(例如,第一深度信息、第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势等等)。处理器501可以用于根据接收到的渲染图像以及中间数据进行相应的处理操作生成第二渲染图像,并指示显示器505显示第一渲染图像和第二渲染图像中的一个或者多个。
存储器502与处理器501耦合,用于存储各种软件程序和/或多组指令。具体实现中,存储器502可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器502可以存储操作***,例如uCOS、VxWorks、RTLinux等嵌入式操作***。存储器502还可以存储通信程序,该通信程序可用于与电子设备100,一个或多个服务器,或附加设备进行通信。
通信模块503可以包括无线通信处理模块、有线局域网(local area network,LAN)通信处理模块以及RS-232通信处理模块中的一种或者多种。其中,无线通信处理模块可以包括蓝牙通信处理模块、无线局域网(wireless local area networks,WLAN)通信处理模块中的一项或多项。无线通信处理模块还可以包括蜂窝移动通信处理模块。蜂窝移动通信处理模块可以通过蜂窝移动通信技术与其他设备进行通信。有线LAN通信处理模块可用于通过有线LAN和同一个LAN中的其他设备进行通信,还可用于通过有线LAN连接到WAN,可与WAN中的设备通信。RS-232通信处理模块可用于通过RS-232接口与其他设备进行通信。
感测***504包括各种传感器,例如音频传感器、图像/光传感器、位置传感器/跟踪设备(包括陀螺仪和加速计的惯性测量单元)和相机等。其中,相机可以用于捕捉静止图像和运动图像。由相机捕获的图像可用于帮助跟踪真实世界中或相对于虚拟环境的物理环境中的用户和/或控制器的物理定位(例如定位/位置和/或定向)。跟踪设备(用于确定或跟踪物理对象或VR控制器的姿态信息),其可以包括例如惯性测量单元、加速度计、光学检测器或相机或检测位置或方向的其他传感器/设备。例如,在VR控制器或操作或移动VR控制器的用户可以至少部分地控制物理对象或VR控制器的姿态(例如,位置和/或定向)的情况下,跟踪设备可以提供姿态信息。在一具体的实施方式中,感测***504还可以包括注视跟踪设备以检测和跟踪用户的眼睛注视。注视跟踪设备可以包括例如图像传感器或多个图像传感器,以捕捉用户眼睛的图像,例如用户眼睛的特定部分,例如瞳孔,以检测并跟踪用户注视的方向和移动。
显示器505可以用于显示第一渲染图像和第二渲染图像中的一种或者多种。
可以理解的是图10示意的结构并不构成对虚拟设备的具体限定。在本申请另一些实施例中,虚拟设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本实施例并没有对第一状态信息、第二状态信息、第一渲染图像、第二渲染图像、第一渲染图像的第一深度信息、第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势等等的定义进行介绍,也没有对第一渲染图像中的第一深度信息、第一渲染图像中运动区域的指示信息、第一渲染图像中运动区域的纹理信息和第一渲染图像中运动区域的运动趋势的计算方法、中间渲染图像的生成方法、第二深度信息的确定方法、点云数据的生成方法、第二渲染图像的生成方法进行详细的介绍,具体请参见图2以及相关描述。上述方案中,终端设备可以用于执行图2至图4所示的图像生成方法中终端设备执行的步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘Solid State Disk(SSD))等。
Claims (23)
1.一种图像生成方法,其特征在于,应用于终端装置,所述终端装置所在的渲染***还包括远端装置,所述方法包括:
发送第一状态信息至所述远端装置,其中,所述第一状态信息包括所述终端装置所在的终端设备的第一位置信息和第一姿态信息;
根据所述第一状态信息对应的第一渲染图像、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得中间渲染图像;
根据所述第一渲染图像的第一深度信息和所述运动区域的运动趋势,获得第二深度信息;
根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得第二渲染图像,其中,所述第二状态信息的发生时间晚于所述第一状态信息的发生时间。
2.根据权利要求1所述的方法,其特征在于,显示所述第一渲染图像和所述第二渲染图像。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得第二渲染图像包括:
根据所述中间渲染图像和所述第二深度信息,获得三维点云数据;
根据所述三维点云数据和所述第二状态信息进行渲染,获得所述第二渲染图像。
4.根据权利要求1至3中任一所述的方法,其特征在于,所述根据所述第一状态信息对应的第一渲染图像、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得中间渲染图像包括:
根据所述第一渲染图像中运动区域的指示信息和所述运动区域的运动趋势,确定所述运动区域的预测位置;
根据所述第一渲染图像、所述运动区域的纹理信息和所述运动区域的预测位置,获得所述中间渲染图像。
5.根据权利要求1至4任一权利要求所述的方法,其特征在于,所述根据所述第一状态信息对应的第一渲染图像、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得中间渲染图像之前,所述方法还包括:
接收所述远端装置发送的所述第一状态信息对应的第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第一状态信息对应的第一渲染图像、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得中间渲染图像包括:
根据所述第一状态信息对应的第一渲染图像和所述第一渲染图像中运动区域的指示信息,将所述第一渲染图像划分为动态渲染区域和静态渲染区域,其中,所述动态渲染区域包括所述所述运动区域;
根据所述动态渲染区域、所述动态渲染区域中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得所述中间渲染图像;
根据所述动态渲染区域的深度信息和所述运动区域的运动趋势,获得第二深度信息;
根据所述第二状态信息、所述静态渲染区域的纹理信息和所述静态渲染区域的深度信息,获得所述静态渲染区域的渲染结果;
根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得所述动态渲染区域的渲染结果;
根据所述静态渲染区域的渲染结果和所述动态渲染区域的渲染结果,获得所述第二渲染图像。
7.一种图像生成方法,其特征在于,应用于远端装置,所述远端装置所在的渲染***还包括终端装置,所述方法包括:
根据第一状态信息进行渲染,获得第一渲染图像;
根据所述第一渲染图像和历史渲染图像,确定所述第一渲染图像中运动区域和所述运动区域的运动趋势,其中,所述历史渲染图像的获得时间早于所述第一渲染图像的获得时间,所述第一渲染图像和所述历史渲染图像中包含相同的目标;
将所述第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势发送至所述终端设备,其中,所述第一渲染图像中运动区域的指示信息用于指示所述运动区域在所述第一渲染图像中的位置。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
存储所述第一渲染图像。
9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
根据所述第一渲染图像中运动区域的指示信息,将所述第一渲染图像划分为动态渲染区域和静态渲染区域,其中,所述动态渲染区域包括所述运动区域;
发送动态渲染区域指示信息至所述终端装置,所述动态区域指示信息用于指示所述动态渲染区域在所述第一渲染图像中的位置。
10.一种终端装置,其特征在于,所述终端装置所在的渲染***还包括远端装置,所述终端装置包括:
通信模块,用于发送第一状态信息至所述远端装置,其中,所述第一状态信息包括所述终端装置所在的终端设备的第一位置信息和第一姿态信息;
渲染模块,用于根据所述第一状态信息对应的第一渲染图像、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得中间渲染图像;根据所述第一渲染图像的第一深度信息和所述运动区域的运动趋势,获得第二深度信息;根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得第二渲染图像,其中,所述第二状态信息的发生时间晚于所述第一状态信息的发生时间。
11.根据权利要求10所述的装置,其特征在于,所述终端装置还包括:
显示模块,用于显示所述第一渲染图像和所述第二渲染图像。
12.根据权利要求10或11所述的装置,其特征在于,所述渲染模块,用于根据所述中间渲染图像和所述第二深度信息,获得三维点云数据;根据所述三维点云数据和所述第二状态信息进行渲染,获得所述第二渲染图像。
13.根据权利要求10至12中任一所述的装置,其特征在于,所述渲染模块,用于根据所述第一渲染图像中运动区域的指示信息和所述运动区域的运动趋势,确定所述运动区域的预测位置;根据所述第一渲染图像、所述运动区域的纹理信息和所述运动区域的预测位置,获得所述中间渲染图像。
14.根据权利要求10或13所述的装置,其特征在于,所述通信模块,用于接收所述远端装置发送的所述第一状态信息对应的第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势。
15.根据权利要求10所述的装置,其特征在于,所述渲染模块,用于根据所述第一状态信息对应的第一渲染图像和所述第一渲染图像中运动区域的指示信息,将所述第一渲染图像划分为动态渲染区域和静态渲染区域,其中,所述动态渲染区域包括所述所述运动区域;根据所述动态渲染区域、所述动态渲染区域中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得所述中间渲染图像;根据所述动态渲染区域的深度信息和所述运动区域的运动趋势,获得第二深度信息;根据所述第二状态信息、所述静态渲染区域的纹理信息和所述静态渲染区域的深度信息,获得所述静态渲染区域的渲染结果;根据所述中间渲染图像、所述第二深度信息和第二状态信息进行渲染,获得所述动态渲染区域的渲染结果;根据所述静态渲染区域的渲染结果和所述动态渲染区域的渲染结果,获得所述第二渲染图像。
16.一种远端装置,其特征在于,所述远端装置所在的渲染***还包括终端装置,所述远端装置包括:
渲染模块,用于根据第一状态信息进行渲染,获得第一渲染图像;根据所述第一渲染图像和历史渲染图像,确定所述第一渲染图像中运动区域和所述运动区域的运动趋势,其中,所述历史渲染图像的获得时间早于所述第一渲染图像的获得时间,所述第一渲染图像和所述历史渲染图像中包含相同的目标;
通信模块,用于将所述第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势发送至所述终端设备,其中,所述第一渲染图像中运动区域的指示信息用于指示所述运动区域在所述第一渲染图像中的位置。
17.根据权利要求16中任一所述的装置,其特征在于,所述渲染模块,还用于存储所述第一渲染图像。
18.根据权利要求16或17中任一所述的装置,其特征在于,所述渲染模块,还用于根据所述第一渲染图像中运动区域的指示信息,将所述第一渲染图像划分为动态渲染区域和静态渲染区域,其中,所述动态渲染区域包括所述运动区域;所述通信模块,用于发送动态渲染区域指示信息至所述终端装置,所述动态区域指示信息用于指示所述动态渲染区域在所述第一渲染图像中的位置。
19.一种渲染***,所述渲染***包括如权利要求10所述的终端装置和如权利要求16所述的远端装置。
20.一种终端设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的指令,以执行下述方法:
发送第一状态信息至所述远端装置,其中,所述第一状态信息包括所述终端装置所在的终端设备的第一位置信息和第一姿态信息;
根据第二状态信息和所述第一状态信息对应的第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势,获得第二渲染图像,其中,所述第二状态信息的发生时间晚于所述第一状态信息的发生时间。
21.一种远端设备,其特征在于,包括处理器和存储器,所述处理器用于执行所述存储器中存储的指令,以执行下述方法:
根据所述终端装置所在终端设备发送的第一状态信息进行渲染,获得第一渲染图像;
根据所述第一渲染图像和历史渲染图像,确定所述第一渲染图像中运动区域和所述运动区域的运动趋势,其中,所述历史渲染图像的获得时间早于所述第一渲染图像的获得时间,所述第一渲染图像和所述历史渲染图像中包含相同的目标;
将所述第一渲染图像、所述第一渲染图像的第一深度信息、所述第一渲染图像中运动区域的指示信息、所述运动区域的纹理信息和所述运动区域的运动趋势发送至所述终端设备,其中,所述第一渲染图像中运动区域的指示信息用于指示所述运动区域在所述第一渲染图像中的位置。
22.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至10中任一项所述的方法。
23.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算机设备集群运行时,使得所述计算机设备集群执行如权利要求的1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110915064.4A CN115937284A (zh) | 2021-08-10 | 2021-08-10 | 一种图像生成方法、设备以及存储介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110915064.4A CN115937284A (zh) | 2021-08-10 | 2021-08-10 | 一种图像生成方法、设备以及存储介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115937284A true CN115937284A (zh) | 2023-04-07 |
Family
ID=86549318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110915064.4A Pending CN115937284A (zh) | 2021-08-10 | 2021-08-10 | 一种图像生成方法、设备以及存储介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115937284A (zh) |
-
2021
- 2021-08-10 CN CN202110915064.4A patent/CN115937284A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725297B2 (en) | Method and system for implementing a virtual representation of a physical environment using a virtual reality environment | |
JP7008730B2 (ja) | 画像に挿入される画像コンテンツについての影生成 | |
US20220148279A1 (en) | Virtual object processing method and apparatus, and storage medium and electronic device | |
CN116194867A (zh) | 扩展现实***的用户界面布局和输入的动态配置 | |
US11514658B2 (en) | Enhancing three-dimensional models using multi-view refinement | |
US20220109617A1 (en) | Latency determinations for human interface devices | |
US11748913B2 (en) | Modeling objects from monocular camera outputs | |
US20240031678A1 (en) | Pose tracking for rolling shutter camera | |
US11615506B2 (en) | Dynamic over-rendering in late-warping | |
US20220375110A1 (en) | Augmented reality guided depth estimation | |
US20240029197A1 (en) | Dynamic over-rendering in late-warping | |
CN115937284A (zh) | 一种图像生成方法、设备以及存储介质和程序产品 | |
EP4275176A1 (en) | Three-dimensional scan registration with deformable models | |
Unal et al. | Augmented reality and new opportunities for cultural heritage | |
Košťák et al. | Mobile phone as an interactive device in augmented reality system | |
US20220375026A1 (en) | Late warping to minimize latency of moving objects | |
WO2024144261A1 (en) | Method and electronic device for extended reality | |
WO2015030623A1 (en) | Methods and systems for locating substantially planar surfaces of 3d scene | |
WO2022246384A1 (en) | Late warping to minimize latency of moving objects | |
CN117321472A (zh) | 进行后期扭曲以最小化移动对象的延迟 | |
WO2022245649A1 (en) | Augmented reality guided depth estimation | |
CN118343924A (zh) | 虚拟对象运动处理方法、装置、设备及介质 | |
CN117425869A (zh) | 后期扭曲中的动态过度渲染 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |