首页 > 运动玩具 专利正文
画面生成方法、装置、设备及介质与流程

时间:2022-01-20 阅读: 作者:专利查询

画面生成方法、装置、设备及介质与流程

1.本技术涉及图像处理领域,特别涉及一种画面生成方法、装置、设备及介质。


背景技术:

2.云游戏指以云计算为基础的游戏方式。由服务器来运行游戏,并将渲染完成后的游戏画面发送给客户端,客户端主要负责显示游戏画面。
3.在体感云游戏中,相关技术需要由相机采集用户图像,客户端将用户图像发送给服务器,服务器在接收到用户图像后,会对用户图像进行处理,生成相应的用户模型,之后服务器将用户模型放置到三维虚拟环境中,将用户模型和三维虚拟环境作为一个整体进行渲染,得到游戏画面,并将游戏画面发送给客户端,客户端显示游戏画面。
4.但是当一个虚拟房间内存在多个客户端在进行云游戏时,相关技术会重复渲染三维虚拟环境,渲染效率较低。


技术实现要素:

5.本技术实施例提供了一种画面生成方法、装置、设备及存储介质,该方法只需要渲染一次三维虚拟环境即可,渲染效率较高,并节约了成本。所述技术方案如下:
6.根据本技术的一个方面,提供了一种画面生成方法,该方法应用于服务器中,该方法包括:
7.渲染三维虚拟场景,得到场景背景渲染图;
8.渲染第一客户端上报的第一前景目标,得到第一前景目标渲染图;
9.将所述场景背景渲染图与所述第一前景目标渲染图进行混合,得到第一画面,所述第一画面包括显示在所述三维虚拟场景中的所述第一前景目标;
10.向所述第一客户端提供所述第一画面。
11.根据本技术的一个方面,提供了一种画面生成装置,该装置包括:
12.渲染模块,用于渲染三维虚拟场景,得到场景背景渲染图;
13.所述渲染模块,用于渲染第一客户端上报的第一前景目标,得到第一前景目标渲染图。
14.混合模块,用于将所述场景背景渲染图与所述第一前景目标渲染图进行混合,得到第一画面,所述第一画面包括显示在所述三维虚拟场景中的所述第一前景目标;
15.收发模块,用于向所述第一客户端提供所述第一画面。
16.根据本技术的另一个方面,提供了一种互动方法,该方法应用于至少两个客户端,该方法包括:
17.第一客户端通过第一相机采集第一前景目标;第二客户端通过第二相机采集第二前景目标;
18.所述第一客户端显示所述三维虚拟场景的第一画面,所述第一画面包括显示在所述三维虚拟场景中的所述第一前景目标;所述第二客户端显示所述三维虚拟场景的第二画
面,所述第二画面包括显示在所述三维虚拟场景中的所述第二前景目标;
19.其中,所述第一画面和所述第二画面中的前景目标不同,且所述第一画面和所述第二画面中的场景背景为同一场景背景,所述第一前景目标和所述第二前景目标在同一三维虚拟场景中活动。
20.根据本技术的另一个方面,提供了一种互动系统,该系统包括至少两个互动装置,该系统包括:
21.第一互动装置通过第一相机采集第一前景目标;第二互动装置通过第二相机采集第二前景目标;
22.所述第一互动装置显示所述三维虚拟场景的第一画面,所述第一画面包括显示在所述三维虚拟场景中的所述第一前景目标;所述第二互动装置显示所述三维虚拟场景的第二画面,所述第二画面包括显示在所述三维虚拟场景中的所述第二前景目标;
23.其中,所述第一画面和所述第二画面中的前景目标不同,且所述第一画面和所述第二画面中的场景背景为同一场景背景,所述第一前景目标和所述第二前景目标在同一三维虚拟场景中活动。
24.根据本技术的另一方面,提供了一种计算机设备,该计算机设备包括:处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上方面所述的画面生成方法,或,如上面所述的互动方法。
25.根据本技术的另一方面,提供了一种计算机存储介质,计算机可读存储介质中存储有至少一条程序代码,程序代码由处理器加载并执行以实现如上方面所述的画面生成方法,或,如上面所述的互动方法。
26.根据本技术的另一方面,提供了一种计算机程序产品或计算机程序,上述计算机程序产品或计算机程序包括计算机指令,上述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从上述计算机可读存储介质读取上述计算机指令,上述处理器执行上述计算机指令,使得上述计算机设备执行如上方面所述的画面生成方法,或,如上面所述的互动方法。
27.本技术实施例提供的技术方案带来的有益效果至少包括:
28.在生成画面时,只需要渲染一次三维虚拟场景,得到场景背景渲染图,而后将场景背景渲染图同第一前景目标渲染图进行混合,得到画面。由于整个过程只对三维虚拟场景渲染了一次,既实现了千人千面技术,又减少了渲染次数,使得性能消耗更小,承载上限更高,渲染效率更高,并节约了成本。
附图说明
29.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
30.图1是本技术一个示例性实施例提供的计算机系统的结构框图;
31.图2是本技术一个示例性实施例提供的画面生成方法的流程示意图;
32.图3是本技术一个示例性实施例提供的三维虚拟环境的示意图;
33.图4是本技术一个示例性实施例提供的第一前景目标的示意图;
34.图5是本技术一个示例性实施例提供的第二前景目标的示意图;
35.图6是本技术一个示例性实施例提供的第一画面的示意图;
36.图7是本技术一个示例性实施例提供的第二画面的示意图;
37.图8是本技术一个示例性实施例提供的云游戏画面生成方法的流程示意图;
38.图9是本技术一个示例性实施例提供的画面生成方法的流程示意图;
39.图10是本技术一个示例性实施例提供的场景背景深度渲染图的示意图;
40.图11是本技术一个示例性实施例提供的第一深度信息渲染图的示意图;
41.图12是本技术一个示例性实施例提供的第二深度信息渲染图的示意图;
42.图13是本技术一个示例性实施例提供的画面生成方法的流程示意图;
43.图14是本技术一个示例性实施例提供的计算像素点颜色方法的示意图;
44.图15是本技术一个示例性实施例提供的互动方法的流程示意图;
45.图16是本技术一个示例性实施例提供的直播互动方法的流程示意图;
46.图17是本技术一个示例性实施例提供的第一画面的示意图;
47.图18是本技术一个示例性实施例提供的第二画面的示意图;
48.图19是本技术一个示例性实施例提供的第三画面的示意图;
49.图20是本技术一个示例性实施例提供的游戏对战方法的流程示意图;
50.图21是本技术一个示例性实施例提供的线上会议方法的流程示意图;
51.图22是本技术一个示例性实施例提供的画面生成装置的结构框图;
52.图23是本技术一个示例性实施例提供的互动系统的结构框图;
53.图24是本技术一个示例性实施例提供的一种计算机设备的结构示意图。
具体实施方式
54.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
55.首先,对本技术实施例中涉及的名词进行介绍:
56.三维虚拟场景:在程序开发中使用到的由模型、贴图等资源组合成的一个虚拟世界。
57.深度:用于表述物体到相机之间的远近。距离越远,深度越大。
58.渲染:使用程序代码逻辑,结合游戏引擎、cpu(central processing unit,中央处理器)、显卡,将三维虚拟场景处理成计算机设备画面的过程。
59.云游戏:即游戏逻辑运行在服务器端,用户只需要拥有最基础的云游戏客户端,只需要接收视频流和发送用户输入数据,用户即可在低配置设备上体验高质量游戏。
60.千人千面技术:指与服务器相连的多个客户端上显示的画面具有相同的背景场景和不同的前景目标。比如,第一客户端和第二客户端连接到同一台服务器上,在第一客户端上显示第一画面,第一画面包括森林的场景背景和用户a头像的前景目标,在第二客户端上显示第二画面,第二画面包括森林的场景背景和用户b头像的前景目标。
61.游戏引擎:游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实
时图像应用程序的核心组件。这些系统为技术人员提供各种编写游戏所需的各种工具,其目的在于让技术人员能容易和快速地做出游戏程式。
62.uv(u代表水平方向,v代表垂直方向):又被称为uv坐标,uv坐标是指所有的图像都是二维的一个平面。通过这个平面的,二维的uv坐标系,可以定位画面中的任意一个象素。
63.纹理:在本技术中,纹理指游戏引擎中的二维图像。
64.图1示出了本技术一个示例性实施例提供的计算机系统的结构示意图。计算机系统100包括:终端120和服务器140。
65.终端120包括至少一个终端。终端120上运行有与三维虚拟场景相关的客户端。该客户端可以是app(application,应用程序)中的小程序,也可以是专门的应用程序,也可以是网页客户端。示例性的,终端120上运行有与三维虚拟场景相关的云游戏,在终端120接收到服务器发送的游戏画面后,终端120显示游戏画面。终端120是智能手机、平板电脑、电子书阅读器、mp3播放器、mp4播放器、膝上型便携计算机和台式计算机中的至少一种。终端120上设置有相机,或者,终端120与相机相连。
66.终端120通过无线网络或有线网络与服务器140相连。
67.服务器140可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器140用于为三维虚拟场景的客户端提供后台服务,并将画面发送到终端120上。可选地,服务器140承担主要计算工作,终端120承担次要计算工作。
68.图2示出了本技术一个实施例提供的画面生成方法的流程示意图。该方法应用于服务器中。该方法可应用于图1所示的服务器140中,该方法包括如下步骤:
69.步骤202:渲染三维虚拟场景,得到场景背景渲染图。
70.三维虚拟场景可由技术人员或者用户自行设置。
71.场景背景渲染图是渲染三维虚拟场景得到的二维图像。示例性的,如图3所示,渲染三维虚拟场景301得到场景背景渲染图。
72.步骤204:渲染第一客户端上报的第一前景目标,得到第一前景目标渲染图。
73.第一前景目标渲染图是渲染第一前景目标得到的二维图像。示例性的,如图4所示,渲染第一前景目标401得到第一前景目标渲染图。
74.可选地,第一前景目标是通过第一相机得到,第一相机是第一客户端所在终端上的相机,或者,第一相机是第一客户端所在终端相连的相机。
75.在本技术的一种可选实施方式中,第一前景目标是用户图像。可选地,当第一相机采集到多个用户头像时,将多个用户头像均作为第一前景目标,或者,将多个用户头像中离第一相机最近的用户头像作为第一前景目标,或者,将位于指定区域内的用户头像作为第一前景目标,或者,将多个用户头像中的第一目标用户头像作为第一前景目标,该第一目标用户头像是通过人脸识别的用户头像。
76.步骤206:将场景背景渲染图与第一前景目标渲染图进行混合,得到第一画面,第一画面包括显示在三维虚拟场景中的第一前景目标。
77.在本技术实施例中,第一画面是根据三维虚拟场景的场景深度信息和前景目标的
深度信息确定三维虚拟场景和前景目标之间的前后层级关系。可选地,根据三维虚拟场景的场景深度信息和第一深度信息,对场景背景渲染图和第一前景目标渲染图进行混合,得到第一画面;根据场景深度信息和第二深度信息,对场景背景渲染图和第二前景目标渲染图进行混合,得到第二画面。
78.值得一提的是,在第一前景目标具有相对于第一相机的第一深度信息的情况下,第一画面包括基于第一深度信息显示在所述三维虚拟场景中的所述第一前景目标。此时,本实施例还能保证场景背景和前景目标之间的前后层级关系正确。示例性的,在图3中,飞行器302位于最上方的图层。在图6中,飞行器302挡住了第一前景目标401,表示飞行器302和第一前景目标401位于不同的图层中,且飞行器302所在图层位于靠前图层中,说明飞行器302和第一前景目标401之间的前后层级关系正确。
79.步骤208:向第一客户端提供第一画面。
80.第一客户端在接收第一画面后,显示第一画面。
81.在一种实际的实现方式中,服务器编码第一画面,得到第一编码;服务器向第一客户端提供第一编码。
82.综上所述,本实施例在生成画面时,只需要渲染一次三维虚拟场景,得到场景背景渲染图,而后将场景背景渲染图同第一前景目标渲染图进行混合,得到画面。由于整个过程只对三维虚拟场景渲染了一次,既实现了千人千面技术,又使得性能消耗更小,承载上限更高,渲染效率更高,并节约了成本。
83.在本技术的一种实施方式中,将图2所示的实施例运用在云游戏场景中,可以实现“千人千面”技术,并且在生成不同的画面时,只需要对三维虚拟场景渲染一次即可,可以提高渲染效率,节约成本。
84.图8示出了本技术一个实施例提供的云游戏画面生成方法的流程示意图。该方法应用于服务器中,该服务器与至少两个客户端相连。该方法可应用于图1所示的服务器140中,该方法包括如下步骤:
85.步骤801:渲染三维虚拟场景,得到场景背景渲染图。
86.三维虚拟场景可由技术人员或者用户自行设置。
87.场景背景渲染图是渲染三维虚拟场景得到的二维图像。示例性的,如图3所示,渲染三维虚拟场景301得到场景背景渲染图。
88.步骤802:渲染第一客户端上报的第一前景目标,得到第一前景目标渲染图;渲染第二客户端上报的第二前景目标,得到第二前景目标渲染图。
89.在第一前景目标具有相对于第一相机的第一深度信息的情况下,第一画面包括基于第一深度信息显示在三维虚拟场景中的第一前景目标。
90.第一前景目标渲染图是渲染第一前景目标得到的二维图像。示例性的,如图4所示,渲染第一前景目标401得到第一前景目标渲染图。
91.在第二前景目标具有相对于第二相机的第二深度信息的情况下,第二画面包括基于第二深度信息显示在三维虚拟场景中的第二前景目标。
92.第二前景目标渲染图是渲染第二前景目标得到的二维图像。示例性的,如图5所示,渲染第二前景目标501得到第二前景目标渲染图。
93.第一相机是第一客户端所在终端上的相机,或者,第一相机是第一客户端所在终
端相连的相机。类似的,第二相机是第二客户端所在终端上的相机,或者,第二相机是第一客户端所在终端相连的相机。
94.在本技术的一种可选实施方式中,第一前景目标是用户图像。可选地,当第一相机采集到多个用户头像时,将多个用户头像均作为第一前景目标,或者,将多个用户头像中离第一相机最近的用户头像作为第一前景目标,或者,将位于指定区域内的用户头像作为第一前景目标,或者,将多个用户头像中的第一目标用户头像作为第一前景目标,该第一目标用户头像是通过人脸识别的用户头像。
95.在本技术的一种可选实施方式中,第二前景目标是用户图像。可选地,当第二相机采集到多个用户头像时,将多个用户头像均作为第二前景目标,或者,将多个用户头像中离第二相机最近的用户头像作为第二前景目标,或者,将位于指定区域内的用户头像作为第二前景目标,或者,将多个用户头像中的第二目标用户头像作为第二前景目标,该第二目标用户头像是通过人脸识别的用户头像。
96.步骤803:将场景背景渲染图分别与第一前景目标渲染图和第二前景目标渲染图进行混合,得到第一云游戏画面和第二云游戏画面。
97.需要说明的是,第一云游戏画面和第二云游戏画面中的前景目标不同,且第一云游戏画面和第二云游戏画面中的场景背景为同一场景背景。
98.示例性的,如图6和图7所示,在图6中,第一云游戏画面中的前景目标为第一前景目标401,场景背景是三维虚拟场景301,在图7中,第二云游戏画面中的前景目标位第二前景目标501,场景背景是三维虚拟场景301。因此,第一云游戏画面和第二云游戏画面中的前景目标不同,且第一云游戏画面和第二云游戏画面中的场景背景为同一场景背景。
99.在本技术实施例中,第一云游戏画面和第二云游戏画面是根据三维虚拟场景的场景深度信息和前景目标的深度信息确定三维虚拟场景和前景目标之间的前后层级关系。可选地,根据三维虚拟场景的场景深度信息和第一深度信息,对场景背景渲染图和第一前景目标渲染图进行混合,得到第一云游戏画面;根据场景深度信息和第二深度信息,对场景背景渲染图和第二前景目标渲染图进行混合,得到第二云游戏画面。
100.值得一提的是,本实施例还能保证场景背景和前景目标之间的前后层级关系正确。示例性的,在图3中,飞行器302位于最上方的图层。在图6中,飞行器302挡住了第一前景目标401,表示飞行器302和第一前景目标401位于不同的图层中,且飞行器302所在图层位于靠前图层中,说明飞行器302和第一前景目标401之间的前后层级关系正确。在图7中,飞行器302挡住了第二前景目标501,表示飞行器302第二前景目标501位于不同的图层中,且飞行器302所在图层位于靠前图层中,说明飞行器302和第二前景目标501之间的前后层级关系正确。
101.可选地,在生成第一云游戏画面和第二云游戏画面时,第一云游戏画面和第二云游戏画面还包括第三前景目标,第三前景目标是由第三客户端通过第三相机采集得到的,服务器与第三客户端相连,第三客户端的种类与服务器相连的其它客户端不同。此时,第一云游戏画面是将场景背景彩色图、第三前景目标渲染图和第一前景目标彩色图进行混合得到的,第二云游戏画面是将场景背景彩色图、第三前景目标渲染图和第二前景目标彩色图进行混合得到的,第三前景目标渲染图是渲染第三客户端发送的第三前景目标得到的。
102.步骤804:向第一客户端提供第一云游戏画面,以及向第二客户端提供第二云游戏
画面。
103.第一客户端在接收第一云游戏画面后,显示第一云游戏画面。第二客户端在接收第二云游戏画面后,显示第二云游戏画面。
104.在一种实际的实现方式中,服务器编码第一云游戏画面,得到第一编码;服务器向第一客户端提供第一编码。服务器编码第二云游戏画面,得到第二编码;服务器向第二客户端提供第二编码。
105.综上所述,本实施例在生成多个不同的云游戏画面时,只需要渲染一次三维虚拟场景,得到场景背景渲染图,而后将场景背景渲染图同第一前景目标渲染图和第二前景目标渲染图进行混合,得到两个不同的云游戏画面。由于整个过程只对三维虚拟场景渲染了一次,既实现了千人千面技术,又使得性能消耗更小,承载上限更高,渲染效率更高,并节约了成本。
106.图9示出了本技术一个实施例提供的画面生成方法的流程示意图。该方法应用于服务器中,该服务器与至少两个客户端相连。该方法可应用于图1所示的服务器140中,该方法包括如下步骤:
107.步骤901:渲染三维虚拟场景,得到场景背景渲染图。
108.三维虚拟场景可由技术人员或者用户自行设置。
109.场景背景渲染图是渲染三维虚拟场景得到的二维图像。示例性的,如图3所示,渲染三维虚拟场景得到场景背景渲染图301。
110.步骤902:渲染第一客户端上报的第一前景目标,得到第一前景目标渲染图;渲染第二客户端上报的第二前景目标,得到第二前景目标渲染图。
111.其中,第一前景目标具有相对于第一相机的第一深度信息,第一深度信息指第一前景目标到第一相机的距离,第一相机是用于采集第一前景目标的相机。第二前景目标具有相对于第二相机的第二深度信息,第二深度信息指第二前景目标到第二相机的距离,第二相机是用于采集第二前景目标的相机。
112.第一相机是第一客户端所在终端上的相机,或者,第一相机是第一客户端所在终端相连的相机。类似的,第二相机是第二客户端所在终端上的相机,或者,第二相机是第一客户端所在终端相连的相机。
113.步骤903:根据场景深度信息、第一深度信息和场景背景渲染图,得到第一画面中各个像素点的第一场景背景颜色。
114.可选地,渲染场景深度信息,得到场景深度信息渲染图;渲染第一深度信息,得到第一深度信息渲染图;根据场景深度信息渲染图、第一深度信息渲染图和场景背景渲染图,得到第一画面中各个像素点的第一场景背景颜色。如图10所示,渲染场景深度信息,得到场景深度信息渲染图。如图11所示,渲染第一深度信息,得到第一深度信息渲染图。
115.场景深度信息指三维虚拟场景中的物体到场景相机的距离,场景相机是用于采集三维虚拟场景的虚拟相机。
116.第一场景背景颜色用于表示场景背景渲染图的颜色对第一画面的颜色的影响程度。
117.以第一画面中的第i个像素点为例进行说明,i为正整数,i与第一画面中的像素点数量相关,本步骤可以包括以下子步骤:
118.1、对于第一画面中的第i个像素点,根据场景深度信息中第i个像素点对应的第i个场景深度信息和第一深度信息中第i个像素点对应的第i个第一深度信息确定第i个像素点的第一深度权重参数。
119.设场景深度信息中第i个像素点对应的第i个场景深度信息为d0,第一深度信息中第i个像素点对应的第i个第一深度信息为d1。当d0》d1时,将第i个像素点的第一深度权重参数p记为0,当d0≤d1时,将第i个像素点的第一深度权重参数p记为1。
120.2、计算第i个像素点的第一深度权重参数和第一前景目标渲染图中第i个像素点的透明度的和,得到第i个像素点的第一颜色混合权重。
121.设第一前景目标渲染图中第i个像素点的透明度为a1,则第i个像素点的第一颜色混合权重p0=p+(1-a1),并通过clamp函数(区间限定函数)将p0限定在区间[0,1]中。若p0属于区间[0,1],则clamp函数的返回值为p0;若p0小于0,则clamp函数的返回值为0;若p0大于0,则clamp函数的返回值为1。
[0122]
3、计算第i个像素点的第一颜色混合权重和场景背景渲染图中第i个像素点的颜色的乘积,得到第一画面中的第i个像素点的第一场景背景颜色。
[0123]
设场景背景渲染图中第i个像素点的颜色是c0,则第一画面中的第i个像素点的第一场景背景颜色r0=c0*p0(此处的p0是通过clamp函数限定的p0)。
[0124]
4、重复上述三个步骤,直至得到第一画面中各个像素点的第一场景背景颜色。
[0125]
由于上述子步骤1至子步骤3只得到了第一画面中的第i个像素点的第一场景背景颜色,因此需要重复上述子步骤1至子步骤3,以得到第一画面中各个像素点的第一场景背景颜色。
[0126]
步骤904:根据场景深度信息、第一深度信息和第一前景目标渲染图,得到第一画面中各个像素点的第一前景目标颜色。
[0127]
第一前景目标颜色用于表示第一前景目标渲染图的颜色对第一画面的颜色的影响程度。
[0128]
以第一画面中的第j个像素点为例进行说明,j为正整数,j与第一画面中的像素点数量相关,本步骤可以包括以下子步骤:
[0129]
1、对于第一画面中的第j个像素点,根据场景深度信息中第j个像素点对应的第j个场景深度信息和第一深度信息中第j个像素点对应的第j个第一深度信息确定第j个像素点的第一深度权重参数。
[0130]
设场景深度信息中第j个像素点对应的第j个场景深度信息为d0,第一深度信息中第j个像素点对应的第j个第一深度信息为d1。当d0》d1时,将第j个像素点的第一深度权重参数p记为0,当d0≤d1时,将第j个像素点的第一深度权重参数p记为1。
[0131]
2、计算第j个像素点的第一深度权重参数、第一前景目标渲染图中第j个像素点的透明度和第一前景目标渲染图中第j个像素点的颜色的乘积,得到第一画面中第j个像素点的第一前景目标颜色。
[0132]
设第一前景目标渲染图中第i个像素点的透明度为a1,第一前景目标渲染图中第j个像素点的颜色为c1,则第一画面中第j个像素点的第一前景目标颜色r1=(1-p)*c1*a1。
[0133]
3、重复上述两个步骤,直至得到第一画面中各个像素点的第一前景目标颜色。
[0134]
由于上述子步骤1和子步骤2只得到了第一画面中的第j个像素点的第一场景背景
颜色,因此需要重复上述子步骤1至子步骤3,以得到第一画面中各个像素点的第一场景背景颜色。
[0135]
步骤905:计算第一画面中各个像素点的第一场景背景颜色和第一前景目标颜色的和,得到第一画面。
[0136]
对于第一画面中的任意一个像素点,设第一场景背景颜色为r0,第一前景目标颜色为r1,则第一画面中任意一个像素点的颜色为r=r0+r1。
[0137]
步骤906:根据场景深度信息、第二深度信息和场景背景渲染图,得到第二画面中各个像素点的第二场景背景颜色。
[0138]
可选地,渲染场景深度信息,得到场景深度信息渲染图;渲染第一二深度信息,得到第二深度信息渲染图;根据场景深度信息渲染图、第二深度信息渲染图和场景背景渲染图,得到第二画面中各个像素点的第二场景背景颜色。如图9所示,渲染场景深度信息,得到场景深度信息渲染图。如图11所示,渲染第二深度信息,得到第二深度信息渲染图。
[0139]
第二场景背景颜色用于表示场景背景渲染图的颜色对第二画面的颜色的影响程度。
[0140]
以第二画面中的第m个像素点为例进行说明,m为正整数,m与第一画面中的像素点数量相关,本步骤可以包括以下子步骤:
[0141]
1、对于第二画面中的第m个像素点,根据场景深度信息中第m个像素点对应的第m个场景深度信息和第二深度信息中第m个像素点对应的第m个第二深度信息确定第m个像素点的第二深度权重参数。
[0142]
设场景深度信息中第m个像素点对应的第m个场景深度信息为d0,第二深度信息中第m个像素点对应的第m个第二深度信息为d1。当d0》d1时,将第m个像素点的第二深度权重参数p记为0,当d0≤d1时,将第m个像素点的第二深度权重参数p记为1。
[0143]
2、计算第m个像素点的第二深度权重参数和第二前景目标渲染图中第m个像素点的透明度的和,得到第m个像素点的第二颜色混合权重。
[0144]
设第二前景目标渲染图中第m个像素点的透明度为a1,则第m个像素点的第二颜色混合权重p0=p+(1-a1),并通过clamp函数(区间限定函数)将p0限定在区间[0,1]中。若p0属于区间[0,1],则clamp函数的返回值为p0;若p0小于0,则clamp函数的返回值为0;若p0大于0,则clamp函数的返回值为1。
[0145]
3、计算第m个像素点的第二颜色混合权重和场景背景渲染图中第m个像素点的颜色的乘积,得到第二画面中的第m个像素点的第二场景背景颜色。
[0146]
设场景背景渲染图中第m个像素点的颜色是c0,则第二画面中的第m个像素点的第二场景背景颜色r0=c0*p0。
[0147]
4、重复上述三个步骤,直至得到第二画面中各个像素点的第二场景背景颜色。
[0148]
由于上述子步骤1至子步骤3只得到了第二画面中的第m个像素点的第二场景背景颜色,因此需要重复上述子步骤1至子步骤3,以得到第二画面中各个像素点的第二场景背景颜色。
[0149]
步骤907:根据场景深度信息、第一深度信息和第二前景目标渲染图,得到第一画面中各个像素点的第二前景目标颜色
[0150]
第二前景目标颜色用于表示第二前景目标渲染图的颜色对第二画面的颜色的影
响程度。
[0151]
以第二画面中的第n个像素点为例进行说明,n为正整数,n与第一画面中的像素点数量相关,本步骤可以包括以下子步骤:
[0152]
1、对于第二画面中的第n个像素点,根据场景深度信息中第n个像素点对应的第n个场景深度信息和第二深度信息中第n个像素点对应的第n个第二深度信息确定第n个像素点的第二深度权重参数。
[0153]
设场景深度信息中第n个像素点对应的第n个场景深度信息为d0,第二深度信息中第n个像素点对应的第n个第二深度信息为d1。当d0》d1时,将第n个像素点的第二深度权重参数p记为0,当d0≤d1时,将第n个像素点的第二深度权重参数p记为1。
[0154]
2、计算第n个像素点的第二深度权重参数、第二前景目标渲染图中第n个像素点的透明度和第二前景目标渲染图中第n个像素点的颜色的乘积,得到第二画面中第n个像素点的第二前景目标颜色。
[0155]
设第二前景目标渲染图中第i个像素点的透明度为a1,第二前景目标渲染图中第n个像素点的颜色为c1,则第二画面中第n个像素点的第二前景目标颜色r1=(1-p)*c1*a1。
[0156]
3、重复上述两个步骤,直至得到第二画面中各个像素点的第二前景目标颜色。
[0157]
由于上述子步骤1和子步骤2只得到了第二画面中的第n个像素点的第二场景背景颜色,因此需要重复上述子步骤1至子步骤3,以得到第二画面中各个像素点的第二场景背景颜色。
[0158]
步骤908:计算第二画面中各个像素点的场景背景颜色和第二前景目标颜色的和,得到第二画面。
[0159]
对于第二画面中的任意一个像素点,设第二场景背景颜色为r0,第二前景目标颜色为r1,则第二画面中任意一个像素点的颜色为r=r0+r1。
[0160]
步骤909:向第一客户端提供第一画面,以及向第二客户端提供第二画面。
[0161]
其中,第一画面和第二画面中的前景目标不同,且第一画面和第二画面中的场景背景为同一场景背景。
[0162]
第一客户端在接收第一画面后,显示第一画面。第二客户端在接收第二画面后,显示第二画面。
[0163]
在一种实际的实现方式中,服务器编码第一画面,得到第一编码;服务器向第一客户端提供第一编码。服务器编码第二画面,得到第二编码;服务器向第一二客户端提供第二编码。
[0164]
综上所述,本实施例在生成多个不同的画面时,只需要渲染一次三维虚拟场景,得到场景背景渲染图,而后将场景背景渲染图同第一前景目标渲染图和第二前景目标渲染图进行混合,得到两个不同的画面。由于整个过程只对三维虚拟场景渲染了一次,既实现了千人千面技术,又使得性能消耗更小,承载上限更高,渲染效率更高,并节约了成本。
[0165]
而且,本实施例可以混合出前后层级关系效果,能突出前景目标与场景背景之间的空间层级关系,可以得到更合理的画面。
[0166]
图13示出了本技术一个实施例提供的画面生成方法的流程示意图。该方法应用于服务器中,该服务器与至少两个客户端相连。该方法可应用于图1所示的服务器140中,该方法包括如下步骤:
[0167]
步骤1301:创建用于获取场景背景的第一虚拟相机。
[0168]
第一虚拟相机用于获取场景背景对应的数据。可选地,当服务器通过其他方式获取到场景背景对应的数据时,不需要创建第一虚拟相机。
[0169]
步骤1302:创建用于获取场景深度信息的第二虚拟相机。
[0170]
第二虚拟相机用于获取场景深度信息对应的数据。可选地,当服务器通过其他方式获取到场景深度信息对应的数据时,不需要创建第二虚拟相机。
[0171]
步骤1303:创建用于获取目标前景的第三虚拟相机。
[0172]
第三虚拟相机用于获取目标前景对应的数据。可选地,当服务器通过其他方式获取到目标前景对应的数据,不需要创建第三虚拟相机。
[0173]
步骤1304:创建用于获取前景深度信息的第四虚拟相机。
[0174]
第四虚拟相机用于获取前景深度信息对应的数据。可选地,当服务器通过其他方式获取到前景深度信息对应的数据,不需要创建第四虚拟相机。
[0175]
需要说明的是,上述步骤1301至步骤1304不分先后顺序,可以任意组合排序。
[0176]
步骤1305:通过第一虚拟相机渲染场景背景,得到场景背景渲染图;通过第二虚拟相机渲染场景深度信息,得到场景背景深度图;通过第三虚拟相机渲染目标前景,得到目标前景渲染图;通过第四虚拟相机渲染前景深度信息,得到目标前景深度图。
[0177]
可选地,在服务器通过第一虚拟相机渲染场景背景,得到场景背景渲染图后,服务器会将场景背景保存在场景背景对应的纹理中。
[0178]
可选地,在服务器通过第二虚拟相机渲染场景深度信息,得到场景背景深度图后,服务器会将场景深度信息保存在场景深度信息对应的纹理中。
[0179]
可选地,在服务器通过第三虚拟相机渲染目标前景,得到目标前景渲染图后,服务器会将目标前景保存在目标前景对应的纹理中。
[0180]
可选地,在服务器通过第四虚拟相机渲染前景深度信息,得到目标前景深度图后,服务器会将前景深度信息保存在前景深度信息对应的纹理中。
[0181]
步骤1306:将场景背景渲染图、场景背景深度图、目标前景渲染图和目标前景深度图进行混合,得到混合画面。
[0182]
混合画面包括基于场景深度信息和前景深度信息显示在场景背景中的前景目标。
[0183]
步骤1307:对混合画面进行编码,得到视频编码。
[0184]
服务器会向客户端提供视频编码。客户端在得到视频编码后,会解码视频编码,得到混合画面。
[0185]
综上所述,本实施例通过虚拟相机创建渲染图和深度图,通过场景深度信息和前景深度信息混合场景背景渲染图和目标前景渲染图得到混合画面。由于整个过程只对三维虚拟场景渲染了一次,使得性能消耗更小,承载上限更高,渲染效率更高,并节约了成本。
[0186]
图14示出了本技术一个实施例提供的计算像素点颜色方法的示意图。该方法应用于服务器中,该服务器与至少两个客户端相连。该方法可应用于图1所示的服务器140中。该方法用于计算图2所示实施例中第一画面或第二画面的像素点的颜色。
[0187]
该示意图包括场景背景深度1401、前景目标深度1402、前景目标颜色1404、和背景场景颜色1407。其中,场景背景深度1401的r端输出的是像素点的场景深度信息。前景目标深度1402的r端输出的是像素点的前景深度信息。前景目标颜色1404的rgb端输出的是前景
目标渲染图中像素点的颜色,前景目标颜色1404的a端输出的是前景目标渲染图中像素点的透明度。背景场景颜色1407的rgb端输出的是背景场景渲染图中像素点的颜色。
[0188]
在该示意图中,将场景背景深度1401输出的像素点的场景深度信息和前景目标深度1402输出的像素点的前景深度信息一同输入到条件判断器1403中,条件判断器1403的输出是像素点的深度权重参数p。条件判断器1403用于判断场景背景是否渲染。在场景深度信息大于前景深度信息时,条件判断器1403输出的深度权重参数p是0;在场景深度信息小于或等于前景深度信息时,条件判断器1403输出的深度权重参数p是1。
[0189]
在得到深度权重参数p后,条件判断器1403的输出分为两路。一路输入到加法器1405中,另一路输入到减法器1409中。首先介绍条件判断器1403的输出输入到加法器1405中的一路,加法器1405的输入是像素点的深度权重参数p和前景目标颜色1404的a端输出的是前景目标渲染图中像素点的透明度(1-a1)(需要说明的是,这里前景目标颜色1404的a端输出的是前景目标渲染图中像素点的透明度的反转,在其它可选实施方式中,前景目标颜色1404的a端输出的也可以是前景目标渲染图中像素点的透明度a1),加法器1405的输出是颜色混合权重p0=p+(1-a1)。加法器1405将颜色混合权重输入到区间限定器1406中,区间限定器1406用于将输入值限定在区间[0,1]中。若输入的颜色混合权重p0属于区间[0,1],则区间限定器1406的输出是p0;若输入的颜色混合权重p0小于0,则区间限定器1406的输出是0;若输入的颜色混合权重p0大于1,则区间限定器1406的输出是1。之后,将区间限定器1406的输出p3和背景场景颜色1407的rgb端输出的背景场景渲染图中像素点的颜色c0。最后,将像素点的场景背景颜色r0输入到加法器1413中。
[0190]
接下来介绍条件判断器1403的输出输入到减法器1409中的一路。减法器1409的输出是(1-p),减法器1409将输出输入到乘法器1410中。乘法器1410将输入的(1-p)和前景目标颜色1404的rgb端输出的是前景目标渲染图中像素点的颜色c1相乘,得到(1-p)*c1。而后,乘法器1410将(1-p)*c1输入到乘法器1412中。乘法器1412的另一个输入是由减法器1411输出的前景目标渲染图中像素点的透明度a1,这里减法器1411的输入是前景目标渲染图中像素点的透明度(1-a1),减法器1411通过计算1-(1-a1)=a1得到减法器1411的输出。乘法器1412将输入(1-p)*c1和a1相乘,得到像素点的前景目标颜色r1,最后,将像素点的前景目标颜色r1输入到加法器1413中。加法器1413将场景背景颜色r0和前景目标颜色r1相加,得到第一画面或第二画面的像素点的颜色r。
[0191]
图14示出了本技术一个实施例提供的互动方法的流程示意图。该方法应用于至少两个客户端。该方案可由图1所示的终端120实施,其中。该方法包括如下步骤:
[0192]
步骤1501:第一客户端通过第一相机采集第一前景目标。
[0193]
第一客户端是至少两个客户端中的至少一个。
[0194]
第一相机是第一客户端所在终端上的相机,或者,第一相机是第一客户端所在终端相连的相机。
[0195]
在本技术的一种可选实施方式中,第一前景目标指用户图像。可选地,当第一相机采集到多个用户头像时,将多个用户头像均作为第一前景目标,或者,将多个用户头像中离第一相机最近的用户头像作为第一前景目标,或者,将位于指定区域内的用户头像作为第一前景目标,或者,将多个用户头像中的第一目标用户头像作为第一前景目标,该第一目标用户头像是通过人脸识别的用户头像。
[0196]
示例性的,如图4所示,第一客户端采集到第一前景目标401。
[0197]
步骤1502:第二客户端通过第二相机采集第二前景目标。
[0198]
第二客户端是至少两个客户端中的至少一个。
[0199]
第二相机是第二客户端所在终端上的相机,或者,第二相机是第二客户端所在终端相连的相机。
[0200]
在本技术的一种可选实施方式中,第二前景目标指用户头像。可选地,当第二相机采集到多个用户头像时,将多个用户头像均作为第二前景目标,或者,将多个用户头像中离第二相机最近的用户头像作为第二前景目标,或者,将位于指定区域内的用户头像作为第二前景目标,或者,将多个用户头像中的第二目标用户头像作为第二前景目标,该第二目标用户头像是通过人脸识别的用户头像。
[0201]
示例性的,如图5所示,第二客户端采集到第二前景目标501。
[0202]
步骤1503:第一客户端显示三维虚拟场景的第一画面,第一画面包括显示在三维虚拟场景中的第一前景目标;第二客户端显示三维虚拟场景的第二画面,第二画面包括显示在三维虚拟场景中的第二前景目标;其中,第一画面和第二画面中的前景目标不同,且第一画面和第二画面中的场景背景为同一场景背景,第一前景目标和第二前景目标在同一三维虚拟场景中活动。
[0203]
需要说明的是,第一画面是服务器混合第一前景目标渲染图和场景背景渲染图得到的,第一前景目标渲染图是服务器渲染第一前景目标得到的;第二画面是服务器混合第二前景目标渲染图和场景背景渲染图得到的,第二前景目标渲染图是服务器渲染第二前景目标得到的。其中,场景背景渲染图是渲染三维虚拟场景得到的。示例性的,如图3所示,第一画面显示的是在三维虚拟场景中的第一前景,第二画面显示的是在三维虚拟场景中的第二前景目标。
[0204]
可选地,第一前景目标和第二前景目标在同一三维虚拟场景参与同一场对战。例如,在云游戏场景中,第一客户端和第二客户端参与同一场对战,则第一前景目标和第二前景目标会在同一三维虚拟场景中活动。
[0205]
在本技术的其它可选实施方式中,显示的第一前景目标和第二前景目标可以被替换为其它形象,可选地,第一画面包括基于第一深度信息显示在三维虚拟场景中的第一虚拟形象,基于第二深度信息显示在三维虚拟场景中的第二虚拟形象,其中,第一虚拟形象与第一前景目标相对应,第二虚拟形象与第二前景目标相对应。示例性的,当目标前景为真人时,第一前景目标对应猴子外形的虚拟形象,第二前景目标对应熊猫外形的虚拟形象,则在显示第一画面时,第一画面包括三维虚拟场景中的猴子外形的虚拟形象,在显示第二画面时,第二画面包括三维虚拟场景中的熊猫外形的虚拟形象。
[0206]
综上所述,本实施例提供了一种互动方法,该方法可以在不同的客户端上显示包括不同前景目标的画面。既实现了千人千面技术,又为用户提供了个性化的显示方案,便于用户之间的互动。
[0207]
示例性的,图15所示的实施例可应用在多个现实场景中。在接下来的实施例中,以直播为例进行说明。图16示出了本技术一个实施例提供的直播互动方法的流程示意图。该方法应用于至少三个客户端,至少三个客户端与用于提供三维虚拟场景的服务器相连,其中,第三客户端的种类与服务器相连的其它客户端不同。该方案可由图1所示的计算机系统
100实施。该方法包括如下步骤:
[0208]
步骤1601:第一客户端通过第一相机采集第一前景目标。
[0209]
第一相机是第一客户端所在终端上的相机,或者,第一相机是第一客户端所在终端相连的相机。
[0210]
第一前景目标具有相对于第一相机的第一深度信息。
[0211]
在本技术的另一种可选实施方式中,第一客户端通过存储器获取第一前景目标,或者,第一客户端通过访问网络获取第一前景目标。
[0212]
步骤1602:第一客户端向服务器提供第一前景目标。
[0213]
第一客户端向服务器发送第一目标前景。
[0214]
步骤1603:第二客户端通过第二相机采集第二前景目标。
[0215]
第二相机是第二客户端所在终端上的相机,或者,第二相机是第二客户端所在终端相连的相机。
[0216]
在本技术的另一种可选实施方式中,第二客户端通过存储器获取第二前景目标,或者,第二客户端通过访问网络获取第二前景目标。
[0217]
第二前景目标具有相对于第二相机的第二深度信息。
[0218]
步骤1604:第二客户端向服务器提供第二前景目标。
[0219]
第二客户端向服务器发送第二前景目标。
[0220]
步骤1605:第三客户端通过第三相机采集第三前景目标。
[0221]
在本技术的一种具体实施方式中,第三客户端为主播客户端,其它客户端为用户客户端。
[0222]
第三相机是第三客户端所在终端上的相机,或者,第三相机是第三客户端所在终端相连的相机。
[0223]
在本技术的另一种可选实施方式中,第三客户端通过存储器获取第三前景目标,或者,第三客户端通过访问网络获取第三前景目标。
[0224]
第三前景目标具有相对于第三相机的第三深度信息。
[0225]
步骤1606:第三客户端向服务器提供第三前景目标。
[0226]
第三客户端向服务器发送第三前景目标。
[0227]
步骤1607:服务器渲染三维虚拟场景得到场景背景渲染图;服务器渲染第一前景目标得到第一前景目标渲染图;服务器渲染第二前景目标得到第二前景目标渲染图,服务器渲染第三前景目标得到第三前景目标渲染图。
[0228]
场景背景渲染图是渲染三维虚拟场景得到的二维图像。
[0229]
第一前景目标渲染图是渲染第一前景目标得到的二维图像。
[0230]
第二前景目标渲染图是渲染第二前景目标得到的二维图像。
[0231]
第三前景目标渲染图是渲染第三前景目标得到的二维图像。
[0232]
步骤1608:服务器混合第一前景目标渲染图、第三前景目标渲染图和场景背景渲染图得到第一画面;服务器混合第二前景目标渲染图、第三前景目标渲染图和所述场景背景渲染图得到第二画面;服务器混合候选前景目标渲染图和所述场景背景渲染图得到第三画面。
[0233]
第一画面包括基于第一深度信息显示在三维虚拟场景中的第一前景目标和基于
第三深度信息显示在三维虚拟场景中的第三前景目标。
[0234]
第二画面包括基于第二深度信息显示在三维虚拟场景中的第二前景目标和基于第三深度信息显示在三维虚拟场景中的第三前景目标。
[0235]
第二画面包括基于候选深度信息显示在三维虚拟场景中的候选前景目标,候选前景目标是其他客户端对应的前景目标。例如,候选前景目标是上述的歧义前景目标。
[0236]
步骤1609:服务器向第一客户端提供第一画面。
[0237]
服务器向第一客户端发送编码后的第一画面。
[0238]
步骤1610:第一客户端显示第一画面。
[0239]
示例性的,如图17所示,第一画面包括第一前景目标1701和第三前景目标1702。
[0240]
步骤1611:服务器向第二客户端提供第二画面。
[0241]
服务器向第二客户端发送编码后的第二画面。
[0242]
步骤1612:第二客户端显示第二画面。
[0243]
示例性的,如图18所示,第二画面包括第二前景目标1801和第三前景目标1702。
[0244]
步骤1613:服务器向第三客户端提供第三画面。
[0245]
服务器向第三客户端发送编码后的第三画面。
[0246]
步骤1614:第三客户端显示第三画面。
[0247]
在第三客户端是主播客户端的情况下,第三客户端对应的用户可以选择在第二客户端上显示候选前景目标。可选地,第三客户端显示其它客户端的用户信息;响应于第三客户端上对用户信息中目标用户信息的选择操作,第三客户端显示目标用户信息对应的前景目标。示例性的,如图所示,第三客户端对应的用户点击目标用户信息后,在第三画面中显示对应的前景目标。
[0248]
可选地,响应于第三客户端上的隐藏操作,第三客户端取消显示用户信息。
[0249]
示例性的,如图19所示,在第三画面191中显示有第三前景目标1702,且在第三画面的右侧显示有用户信息,用户点击用户信息中的目标用户信息1901,显示如第三画面192所示的界面,在第三画面192中显示与目标用户信息1901对应的前景目标1902。
[0250]
在实际的直播过程中,主播可以自行选择直播的内容,因此,主播可以修改用到的三维虚拟场景。可选地,响应于第三客户端上的场景切换操作,切换三维虚拟场景。比如,将城市夜景的三维虚拟场景切换为星空的三维虚拟场景。
[0251]
综上所述,本实施例应用在直播中,通过只渲染一次三维虚拟场景,得到场景背景渲染图,而后将场景背景渲染图同不同的前景目标渲染图进行混合,得到不同的画面。由于整个过程只对三维虚拟场景渲染了一次,使得性能消耗更小,承载上限更高,渲染效率更高,并节约了成本。
[0252]
在接下来的实施例中,以游戏对战为例进行说明。图20示出了本技术一个实施例提供的游戏对战方法的流程示意图。该方法应用于至少两个客户端。该方案可由图1所示的计算机系统100实施。该方法包括如下步骤:
[0253]
步骤2001:第一客户端通过第一相机采集第一前景目标。
[0254]
第一相机是第一客户端所在终端上的相机,或者,第一相机是第一客户端所在终端相连的相机。
[0255]
第一前景目标具有相对于第一相机的第一深度信息。
[0256]
在本技术的另一种可选实施方式中,第一客户端通过存储器获取第一前景目标,或者,第一客户端通过访问网络获取第一前景目标。
[0257]
步骤2002:第一客户端向服务器提供第一前景目标。
[0258]
第一客户端向服务器发送第一目标前景。
[0259]
步骤2003:第二客户端通过第二相机采集第二前景目标。
[0260]
第二相机是第二客户端所在终端上的相机,或者,第二相机是第二客户端所在终端相连的相机。
[0261]
在本技术的另一种可选实施方式中,第二客户端通过存储器获取第二前景目标,或者,第二客户端通过访问网络获取第二前景目标。
[0262]
第二前景目标具有相对于第二相机的第二深度信息。
[0263]
步骤2004:第二客户端向服务器提供第二前景目标。
[0264]
第二客户端向服务器发送第二前景目标。
[0265]
步骤2005:服务器渲染三维虚拟场景得到场景背景渲染图;服务器渲染第一前景目标得到第一前景目标渲染图;服务器渲染第二前景目标得到第二前景目标渲染图。
[0266]
场景背景渲染图是渲染三维虚拟场景得到的二维图像。
[0267]
第一前景目标渲染图是渲染第一前景目标得到的二维图像。
[0268]
第二前景目标渲染图是渲染第二前景目标得到的二维图像。
[0269]
步骤2006:服务器混合第一前景目标渲染图集合和场景背景渲染图得到第一游戏画面;服务器混合第二前景目标渲染图集合和所述场景背景渲染图得到第二游戏画面。
[0270]
第一前景目标渲染图集合包括与用于提供三维虚拟场景的服务器相连的客户端对应的前景目标渲染图中的至少一个。第一前景目标渲染图集合可由第一客户端对应的用户确定。
[0271]
第一游戏画面包括的前景目标与第一前景目标渲染图集合相对应。示例性的,与用于提供三维虚拟场景的服务器相连的客户端共有4个,在游戏对战时,用户a期望在第一游戏画面上显示参与游戏对战的用户b和用户c,那么在服务器生成第一游戏画面时,服务器混合用户b和用户c对应的前景目标渲染图以及场景背景渲染图,得到第一画面,这样得到的第一游戏画面包括用户b和用户c。
[0272]
第二前景目标渲染图集合包括与用于提供三维虚拟场景的服务器相连的客户端对应的前景目标渲染图中的至少一个。第二前景目标渲染图集合可由第二客户端对应的用户确定。
[0273]
第二游戏画面包括的前景目标与第二前景目标渲染图集合相对应。
[0274]
步骤2007:服务器向第一客户端提供第一游戏画面。
[0275]
服务器向第一客户端发送编码后的第一游戏画面。
[0276]
步骤2008:第一客户端显示第一游戏画面。
[0277]
需要说明的是,参与游戏对战的用户会随着游戏对战的进行被淘汰,因此第一游戏画面显示的前景目标会变化。示例性的,在游戏对战开始前时,第一游戏画面包括作为前景目标的用户a和用户b,在游戏对战的过程中,用户b被淘汰,则取消显示第一游戏画面中的用户b。示例性的,在游戏对战开始前时,第一游戏画面包括作为前景目标的用户a和用户b,在游戏对战的过程中,用户c中途加入到游戏对战中,则在第一游戏画面中显示用户c。
[0278]
步骤2009:服务器向第二客户端提供第二游戏画面。
[0279]
服务器向第二客户端发送编码后的第二游戏画面。
[0280]
步骤2010:第二客户端显示第二游戏画面。
[0281]
需要说明的是,参与游戏对战的用户会随着游戏对战的进行被淘汰,因此第二游戏画面显示的前景目标会变化。
[0282]
综上所述,本实施例应用在游戏对战中,通过只渲染一次三维虚拟场景,得到场景背景渲染图,而后将场景背景渲染图同不同的前景目标渲染图进行混合,得到不同的画面。由于整个过程只对三维虚拟场景渲染了一次,使得性能消耗更小,承载上限更高,渲染效率更高,并节约了成本。
[0283]
在接下来的实施例中,以线上会议为例进行说明。图21示出了本技术一个实施例提供的线上会议的实现方法的流程示意图。该方法应用于至少两个客户端,至少两个客户端与用于提供三维虚拟场景的服务器相连。该方案可由图1所示的计算机系统100实施。该方法包括如下步骤:
[0284]
步骤2101:第一客户端通过第一相机采集第一前景目标。
[0285]
第一相机是第一客户端所在终端上的相机,或者,第一相机是第一客户端所在终端相连的相机。
[0286]
第一前景目标具有相对于第一相机的第一深度信息。
[0287]
在本技术的另一种可选实施方式中,第一客户端通过存储器获取第一前景目标,或者,第一客户端通过访问网络获取第一前景目标。
[0288]
步骤2102:第一客户端向服务器提供第一前景目标。
[0289]
第一客户端向服务器发送第一目标前景。
[0290]
步骤2103:第二客户端通过第二相机采集第二前景目标。
[0291]
第二相机是第二客户端所在终端上的相机,或者,第二相机是第二客户端所在终端相连的相机。
[0292]
在本技术的另一种可选实施方式中,第二客户端通过存储器获取第二前景目标,或者,第二客户端通过访问网络获取第二前景目标。
[0293]
第二前景目标具有相对于第二相机的第二深度信息。
[0294]
步骤2104:第二客户端向服务器提供第二前景目标。
[0295]
第二客户端向服务器发送第二前景目标。
[0296]
步骤2105:服务器渲染三维虚拟场景得到场景背景渲染图;服务器渲染第一前景目标得到第一前景目标渲染图;服务器渲染第二前景目标得到第二前景目标渲染图。
[0297]
场景背景渲染图是渲染三维虚拟场景得到的二维图像。
[0298]
第一前景目标渲染图是渲染第一前景目标得到的二维图像。
[0299]
第二前景目标渲染图是渲染第二前景目标得到的二维图像。
[0300]
步骤2106:服务器混合第一前景目标渲染图集合和场景背景渲染图得到第一游戏画面;服务器混合第二前景目标渲染图集合和所述场景背景渲染图得到第二游戏画面。
[0301]
第一前景目标渲染图集合包括与用于提供三维虚拟场景的服务器相连的客户端对应的前景目标渲染图中的至少一个。第一前景目标渲染图集合可由第一客户端对应的用户确定。
[0302]
第一会议画面包括的前景目标与第一前景目标渲染图集合相对应。示例性的,与用于提供三维虚拟场景的服务器相连的客户端共有6个,在会议对战时,用户a期望在第一会议画面上显示参与会议的用户b和用户c,那么在服务器生成第一会议画面时,服务器混合用户b和用户c对应的前景目标渲染图以及场景背景渲染图,得到第一画面,这样得到的第一会议画面包括用户b和用户c。
[0303]
第二前景目标渲染图集合包括与用于提供三维虚拟场景的服务器相连的客户端对应的前景目标渲染图中的至少一个。第二前景目标渲染图集合可由第二客户端对应的用户确定。
[0304]
第二会议画面包括的前景目标与第二前景目标渲染图集合相对应。
[0305]
步骤2107:服务器向第一客户端提供第一会议画面。
[0306]
服务器向第一客户端发送编码后的第一会议画面。
[0307]
步骤2108:第一客户端显示第一会议画面。
[0308]
需要说明的是,在会议的进行过程中,会有用户离开当前会议或者,会有用户进入当前会议,因此第一会议画面显示的前景目标会变化。示例性的,在会议开始前时,第一会议画面包括作为前景目标的用户a和用户b,在会议的过程中,用户b离开了会议,则取消显示第一会议画面中的用户b。示例性的,在会议开始前时,第一会议画面包括作为前景目标的用户a和用户b,在会议的过程中,用户c中途加入到会议中,则在第一会议画面中显示用户c。
[0309]
步骤2109:服务器向第二客户端提供第二会议画面。
[0310]
服务器向第二客户端发送编码后的第二会议画面。
[0311]
步骤2110:第二客户端显示第二会议画面。
[0312]
需要说明的是,在会议的进行过程中,会有用户离开当前会议或者,会有用户进入当前会议,因此第二会议画面显示的前景目标会变化。
[0313]
综上所述,本实施例应用在会议对战中,通过只渲染一次三维虚拟场景,得到场景背景渲染图,而后将场景背景渲染图同不同的前景目标渲染图进行混合,得到不同的画面。由于整个过程只对三维虚拟场景渲染了一次,使得性能消耗更小,承载上限更高,渲染效率更高,并节约了成本。
[0314]
图22示出了本技术的一个示例性实施例提供的画面生成装置的结构示意图。该装置2200可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分,具体包括:
[0315]
渲染模块2201,用于渲染三维虚拟场景,得到场景背景渲染图;
[0316]
所述渲染模块2201,还用于渲染第一客户端上报的第一前景目标,得到第一前景目标渲染图;
[0317]
混合模块2202,用于将所述场景背景渲染图与所述第一前景目标渲染图进行混合,得到第一画面,所述第一画面包括显示在所述三维虚拟场景中的所述第一前景目标;
[0318]
收发模块2203,用于向所述第一客户端提供所述第一画面。
[0319]
在本技术的一种可选设计中,所述混合模块2202,还用于根据所述三维虚拟场景的场景深度信息和第一深度信息,对所述场景背景渲染图和所述第一前景目标渲染图进行混合,得到所述第一画面,所述第一深度信息是所述第一前景目标相对于第一相机的深度
信息。
[0320]
在本技术的一种可选设计中,所述混合模块2202,还用于根据所述场景深度信息、所述第一深度信息和所述场景背景渲染图,得到所述第一画面中各个像素点的第一场景背景颜色,所述第一场景背景颜色用于表示所述场景背景渲染图的颜色对所述第一画面的颜色的影响程度;根据所述场景深度信息、所述第一深度信息和所述第一前景目标渲染图,得到所述第一画面中各个像素点的第一前景目标颜色,所述第一前景目标颜色用于表示所述第一前景目标渲染图的颜色对所述第一画面的颜色的影响程度;计算所述第一画面中各个像素点的所述第一场景背景颜色和第一前景目标颜色的和,得到所述第一画面。
[0321]
在本技术的一种可选设计中,所述混合模块2202,还用于对于所述第一画面中的第i个像素点,根据所述场景深度信息中所述第i个像素点对应的第i个场景深度信息和所述第一深度信息中所述第i个像素点对应的第i个第一深度信息确定所述第i个像素点的第一深度权重参数,i为正整数;计算所述第i个像素点的第一深度权重参数和所述第一前景目标渲染图中所述第i个像素点的透明度的和,得到所述第i个像素点的第一颜色混合权重;计算所述第i个像素点的第一颜色混合权重和所述场景背景渲染图中所述第i个像素点的颜色的乘积,得到所述第一画面中的所述第i个像素点的第一场景背景颜色;重复上述三个步骤,直至得到所述第一画面中各个像素点的第一场景背景颜色。
[0322]
在本技术的一种可选设计中,所述混合模块2202,还用于对于所述第一画面中的第j个像素点,根据所述场景深度信息中所述第j个像素点对应的第j个场景深度信息和所述第一深度信息中所述第j个像素点对应的第j个第一深度信息确定所述第j个像素点的第一深度权重参数,j为正整数;计算所述第j个像素点的第一深度权重参数、所述第一前景目标渲染图中所述第j个像素点的透明度和所述第一前景目标渲染图中第j个像素点的颜色的乘积,得到所述第一画面中所述第j个像素点的第一前景目标颜色;重复上述两个步骤,直至得到所述第一画面中各个像素点的第一前景目标颜色。
[0323]
在本技术的一种可选设计中,所述服务器与至少两个客户端相连。所述渲染模块2201,还用于渲染第二客户端上报的第二前景目标,得到第二前景目标渲染图,所述第二前景目标具有相对于第二相机的第二深度信息;所述混模块2202,还用于将所述场景背景渲染图与所述第二前景目标渲染图进行混合,得到第二画面,所述第二画面包括显示在所述三维虚拟场景中的所述第二前景目标;所述收发模块2203,还用于向所述第二客户端提供所述第二画面;其中,所述第一画面和所述第二画面中的前景目标不同,且所述第一画面和所述第二画面中的场景背景为同一场景背景。
[0324]
在本技术的一种可选设计中,在所述第一前景目标具有相对于第一相机的第一深度信息的情况下,所述第一画面包括基于所述第一深度信息显示在所述三维虚拟场景中的所述第一前景目标;在所述第二前景目标具有相对于第二相机的第二深度信息的情况下,所述第二画面包括基于所述第二深度信息显示在所述三维虚拟场景中的所述第二前景目标。
[0325]
在本技术的一种可选设计中,所述服务器还与第三客户端相连,所述第三客户端的种类与所述服务器相连的其它客户端不同,所述第一画面和所述第二画面还包括第三前景目标,所述第三前景目标是由所述第三客户端通过第三相机采集得到的;所述渲染模块2201,还用于渲染所述第三客户端发送的第三前景目标,得到第三前景目标渲染图;将所述
场景背景彩色图、所述第三前景目标渲染图和所述第一前景目标彩色图进行混合,得到所述第一画面;所述混合模块,还用于将所述场景背景彩色图、所述第三前景目标渲染图和所述第二前景目标彩色图进行混合,得到所述第二画面。
[0326]
在本技术的一种可选设计中,所述渲染模块2201,还用于在所述三维虚拟场景上添加场景标记;在所述第一前景目标和所述第二前景目标上添加前景标记,所述场景标记和所述前景标记用于区分所述三维虚拟场景和前景目标。
[0327]
综上所述,在生成多个不同的画面时,只需要渲染一次三维虚拟场景,得到场景背景渲染图,而后将场景背景渲染图同第一前景目标渲染图和第二前景目标渲染图进行混合,得到两个不同的画面。由于整个过程只对三维虚拟场景渲染了一次,既实现了千人千面技术,又减少了渲染次数,使得性能消耗更小,承载上限更高,渲染效率更高,并节约了成本。
[0328]
图23示出了本技术的一个示例性实施例提供的互动系统的结构示意图。该系统可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分,具体包括:
[0329]
第一互动装置2301通过第一相机采集第一前景目标;第二互动装置2302通过第二相机采集第二前景目标;
[0330]
所述第一互动装置2301显示所述三维虚拟场景的第一画面,所述第一画面包括显示在所述三维虚拟场景中的所述第一前景目标;所述第二互动装置2302显示所述三维虚拟场景的第二画面,所述第二画面包括显示在所述三维虚拟场景中的所述第二前景目标;
[0331]
其中,所述第一画面和所述第二画面中的前景目标不同,且所述第一画面和所述第二画面中的场景背景为同一场景背景。
[0332]
在本技术的一个可选设计中,所述第一画面是所述服务器混合第一前景目标渲染图和场景背景渲染图得到的,所述第一前景目标渲染图是所述服务器渲染所述第一前景目标得到的;所述第二画面是所述服务器混合第二前景目标渲染图和所述场景背景渲染图得到的,所述第二前景目标渲染图是所述服务器渲染所述第二前景目标得到的;其中,所述场景背景渲染图是渲染所述三维虚拟场景得到的。
[0333]
在本技术的一个可选设计中,所述服务器还与第三互动装置2303相连,所述第三互动装置2303的种类与所述服务器相连的其它互动装置不同。所述第一互动装置2301向所述服务器提供所述第一前景目标;响应于所述第一互动装置2301接收到所述第一画面,所述第一互动装置2301显示所述第一画面,所述第一画面和所述第二画面还包括第三前景目标,所述第三前景目标是由所述第三互动装置2303通过第三相机采集得到的,所述第三前景目标具有相对于所述第三相机的第三深度信息。
[0334]
在本技术的一个可选设计中,所述服务器还与第三互动装置2303相连,所述第三互动装置2303的种类与所述服务器相连的其它互动装置不同。所述第二互动装置2302向所述服务器提供所述第二前景目标;响应于所述第二互动装置2302接收到所述第二画面,所述第二互动装置2302显示所述第二画面,所述第一画面和所述第二画面还包括第三前景目标,所述第三前景目标是由所述第三互动装置2303通过第三相机采集得到的,所述第三前景目标具有相对于所述第三相机的第三深度信息。
[0335]
在本技术的一个可选设计中,所述第三互动装置2303显示第三画面,所述第三画面包括基于候选深度信息显示在所述三维虚拟场景中的候选前景目标,所述候选前景目标
是所述其他互动装置对应的前景目标。
[0336]
在本技术的一个可选设计中,在所述第一前景目标具有相对于第一相机的第一深度信息的情况下,所述第一画面包括基于所述第一深度信息显示在所述三维虚拟场景中的所述第一前景目标;在所述第二前景目标具有相对于第二相机的第二深度信息的情况下,所述第二画面包括基于所述第二深度信息显示在所述三维虚拟场景中的所述第二前景目标。
[0337]
在本技术的一个可选设计中,所述第三互动装置2303显示所述其它互动装置的用户信息;响应于所述第三互动装置2303上对所述用户信息中目标用户信息的选择操作,所述第三互动装置2303显示所述目标用户信息对应的前景目标。
[0338]
在本技术的一个可选设计中,响应于所述第三互动装置2303上的场景切换操作,切换所述三维虚拟场景。
[0339]
综上所述,本实施例能够在不同的互动装置上显示不同的画面,为每个用户提供个性化的画面显示,同时,既实现了千人千面技术,还可以减少渲染次数,使得性能消耗更小,承载上限更高,渲染效率更高,并节约了成本。
[0340]
图24是根据一示例性实施例示出的一种计算机设备的结构示意图。所述计算机设备2400包括中央处理单元(central processing unit,cpu)2401、包括随机存取存储器(random access memory,ram)2402和只读存储器(read-only memory,rom)2403的系统存储器2404,以及连接系统存储器2404和中央处理单元2401的系统总线2405。所述计算机设备2400还包括帮助计算机设备内的各个器件之间传输信息的基本输入/输出系统(input/output,i/o系统)2406,和用于存储操作系统2413、应用程序2414和其他程序模块2415的大容量存储设备2407。
[0341]
所述基本输入/输出系统2406包括有用于显示信息的显示器2408和用于用户输入信息的诸如鼠标、键盘之类的输入设备2409。其中所述显示器2408和输入设备2409都通过连接到系统总线2405的输入输出控制器2410连接到中央处理单元2401。所述基本输入/输出系统2406还可以包括输入输出控制器2410以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器2410还提供输出到显示屏、打印机或其他类型的输出设备。
[0342]
所述大容量存储设备2407通过连接到系统总线2405的大容量存储控制器(未示出)连接到中央处理单元2401。所述大容量存储设备2407及其相关联的计算机设备可读介质为计算机设备2400提供非易失性存储。也就是说,所述大容量存储设备2407可以包括诸如硬盘或者只读光盘(compact disc read-only memory,cd-rom)驱动器之类的计算机设备可读介质(未示出)。
[0343]
不失一般性,所述计算机设备可读介质可以包括计算机设备存储介质和通信介质。计算机设备存储介质包括以用于存储诸如计算机设备可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机设备存储介质包括ram、rom、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、带电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom),cd-rom、数字视频光盘(digital video disc,dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员
可知所述计算机设备存储介质不局限于上述几种。上述的系统存储器2404和大容量存储设备2407可以统称为存储器。
[0344]
根据本公开的各种实施例,所述计算机设备2400还可以通过诸如因特网等网络连接到网络上的远程计算机设备运行。也即计算机设备2400可以通过连接在所述系统总线2405上的网络接口单元2412连接到网络2411,或者说,也可以使用网络接口单元2412来连接到其他类型的网络或远程计算机设备系统(未示出)。
[0345]
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器2401通过执行该一个或一个以上程序来实现上述图像生成方法,或,如上面所述的互动方法的全部或者部分步骤。
[0346]
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述各个方法实施例提供的图像生成方法,或,如上面所述的互动方法。
[0347]
本技术还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方法实施例提供的图像生成方法,或,如上面所述的互动方法。
[0348]
本技术还提供一种计算机程序产品或计算机程序,上述计算机程序产品或计算机程序包括计算机指令,上述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从上述计算机可读存储介质读取上述计算机指令,上述处理器执行上述计算机指令,使得上述计算机设备执行如上方面实施例提供的图像生成方法,或,如上面所述的互动方法。
[0349]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0350]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0351]
以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
[0352]
以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。