CN113256781B - 虚拟场景的渲染和装置、存储介质及电子设备 - Google Patents

虚拟场景的渲染和装置、存储介质及电子设备 Download PDF

Info

Publication number
CN113256781B
CN113256781B CN202110673725.7A CN202110673725A CN113256781B CN 113256781 B CN113256781 B CN 113256781B CN 202110673725 A CN202110673725 A CN 202110673725A CN 113256781 B CN113256781 B CN 113256781B
Authority
CN
China
Prior art keywords
target virtual
pixel point
distance
picture
depth value
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.)
Active
Application number
CN202110673725.7A
Other languages
English (en)
Other versions
CN113256781A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110673725.7A priority Critical patent/CN113256781B/zh
Publication of CN113256781A publication Critical patent/CN113256781A/zh
Application granted granted Critical
Publication of CN113256781B publication Critical patent/CN113256781B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/02Non-photorealistic rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种虚拟场景的渲染和装置、存储介质及电子设备。其中,该方法包括:获取第一图片对应的第一贴图文件;根据第一贴图文件中的每个像素点的深度值,确定第二图片对应的第二贴图文件;根据第二贴图文件中的深度值,确定目标虚拟场景中的目标虚拟物体的投影区域;根据目标虚拟场景中的目标虚拟物体的投影区域,对目标虚拟场景进行渲染。本发明解决了画面渲染效率低的技术问题。

Description

虚拟场景的渲染和装置、存储介质及电子设备
技术领域
本发明涉及计算机领域,具体而言,涉及一种虚拟场景的渲染和装置、存储介质及电子设备。
背景技术
布告板技术(Billboard)是在画面渲染中通过一个面片来伪装显示成真正物体的技术。其方法是在面片上显示真实物体在某视角下提前拍摄好的一个画面,并将该画面的背景部分剔除,在较远距离看,就好像是一个真实物体被渲染出来,但实际上只是一个面片,这样做可以较大的减少所绘制面片的数量。由于布告板技术中渲染出来的只是一个面片,并没有立体效果,例如渲染出的物体没有阴影。因此,布告板技术目前仅在渲染远景时使用。
画面中的立体效果会影响用户体验,对于画面中的近景立体效果比较重要。由于近景距离用户视角较近,不渲染阴影的话,视觉效果会大打折扣。目前画面中近景部分的渲染需要开发人员人工对近景物体和阴影进行绘制,而此种方式渲染效率低。
针对相关技术中,画面渲染效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种虚拟场景的渲染和装置、存储介质及电子设备,以至少解决画面渲染效率低的技术问题。
根据本发明实施例的一个方面,提供了一种虚拟场景的渲染方法,包括:获取第一图片对应的第一贴图文件,其中,所述第一图片中显示有目标虚拟物体,所述第一贴图文件包括所述目标虚拟物体中的每个像素点的深度值;根据所述第一贴图文件中的所述每个像素点的深度值,确定第二图片对应的第二贴图文件,其中,所述第二图片是第一虚拟相机对目标虚拟光源照射的目标虚拟场景进行拍摄所得到的图片,所述第一虚拟相机位于所述目标虚拟光源所在的位置,所述目标虚拟场景中包括所述第一图片,所述第二贴图文件包括所述第二图片中的每个像素点的深度值;根据所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的投影区域;根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染。
可选地,所述根据所述第一贴图文件中的所述每个像素点的深度值,确定第二图片对应的第二贴图文件,包括:获取所述第一贴图文件中的第一像素点的深度值,其中,所述第一图片是第二虚拟相机对所述目标虚拟物体进行拍摄所得到的图片,所述第一像素点是所述目标虚拟物体中的像素点,所述第一像素点的深度值是根据第一距离和预设裁剪距离确定的归一化取值,所述第一距离为所述第一像素点所对应的位置与所述第二虚拟相机之间的距离;根据所述第一像素点的深度值以及所述预设裁剪距离,确定所述第一像素点的偏移距离;根据第二距离以及所述偏移距离,确定所述第二图片中的所述第一像素点的深度值,其中,所述第二距离是所述第二图片中的所述第一像素点所对应的位置与所述目标虚拟光源之间的距离。
可选地,所述根据所述第一像素点的深度值以及所述预设裁剪距离,确定所述第一像素点的偏移距离,包括:确定所述第一像素点的深度值与预设的所述第一图片的深度值之间的差值,其中,所述第一图片的深度值是根据第三距离和所述预设裁剪距离确定的归一化取值,所述第三距离为所述目标虚拟物体与所述第二虚拟相机之间的距离;将所述第一像素点的偏移距离确定为等于所述差值与所述预设裁剪距离之间的乘积。
可选地,所述根据第二距离以及所述偏移距离,确定所述第二图片中的所述第一像素点的深度值,包括:在所述第一像素点的深度值小于所述第一图片的深度值时,获取所述第二距离与所述偏移距离之间的差值;根据所述第一虚拟相机的相机参数,对所述第二距离与所述偏移距离之间的差值进行归一化处理,得到所述第二图片中的所述第一像素点的深度值;在所述第一像素点的深度值大于所述第一图片的深度值时,获取所述第二距离与所述偏移距离之间的加和值;根据所述第一虚拟相机的相机参数,对所述第二距离与所述偏移距离之间的加和值进行归一化处理,得到所述第二图片中的所述第一像素点的深度值。
可选地,所述根据所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的投影区域,包括:获取第三图片中的第二像素点所对应的位置与第三虚拟相机之间的第四距离,其中,所述第三图片是所述第三虚拟相机对所述目标虚拟光源照射的所述目标虚拟场景进行拍摄所得到的图片,所述第二像素点是所述目标虚拟场景中除所述目标虚拟物体之外的像素点;根据所述第四距离、所述第二像素点在预设的三维坐标系下的坐标、所述第三虚拟相机在所述三维坐标系下的坐标、以及所述目标虚拟光源在所述三维坐标系下的坐标,确定所述第二像素点所对应的位置与所述目标虚拟光源之间的第五距离;根据所述第三虚拟相机的相机参数,对所述第五距离进行归一化处理,得到所述第二像素点的当前深度值;在所述第二像素点的当前深度值大于所述第二贴图文件中的所述第二像素点的深度值时,将所述第二像素点确定为所述投影区域中的像素点。
可选地,所述根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染,包括:根据所述第一贴图文件中的颜色值,对所述目标虚拟场景中的所述目标虚拟物体进行渲染,并将所述目标虚拟场景中位于所述投影区域的像素点渲染成黑色,其中,所述第一贴图文件还包括所述目标虚拟物体中的每个像素点的颜色值。
可选地,所述方法还包括:根据所述第一贴图文件中的深度值和所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的自阴影区域,其中,所述自阴影区域是所述目标虚拟场景中的所述目标虚拟物体所在的区域中的一部分;所述根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染,包括:根据所述目标虚拟物体的投影区域以及所述目标虚拟物体的自阴影区域,对所述目标虚拟场景进行渲染。
可选地,所述根据所述第一贴图文件中的深度值和所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的自阴影区域,包括:获取所述第一贴图文件中的第三像素点的深度值,其中,所述第一图片是第二虚拟相机对所述目标虚拟物体进行拍摄所得到的图片,所述第三像素点是所述目标虚拟物体中的像素点,所述第三像素点的深度值是根据第一距离和预设裁剪距离确定的归一化取值,所述第一距离为所述第三像素点所对应的位置与所述第二虚拟相机之间的距离;根据所述第三像素点的深度值以及所述预设裁剪距离,确定所述第三像素点的偏移距离;获取第三图片中的所述第三像素点所对应的位置与第三虚拟相机之间的第六距离,其中,所述第三图片是所述第三虚拟相机对所述目标虚拟光源照射的所述目标虚拟场景进行拍摄所得到的图片;根据所述第六距离与所述偏移距离、以及所述第三像素点在预设的三维坐标系下的坐标、所述第三虚拟相机在所述三维坐标系下的坐标、以及所述目标虚拟光源在所述三维坐标系下的坐标,确定所述第三像素点所对应的位置与所述目标虚拟光源之间的第七距离;根据所述第三虚拟相机的相机参数,对所述第七距离进行归一化处理,得到所述第三像素点的当前深度值;在所述第三像素点的当前深度值大于所述第二贴图文件中的所述第三像素点的深度值时,将所述第三像素点确定为所述自阴影区域中的像素点。
可选地,所述根据所述目标虚拟物体的投影区域以及所述目标虚拟物体的自阴影区域,对所述目标虚拟场景进行渲染,包括:根据所述第一贴图文件中的颜色值,对所述目标虚拟场景中的所述目标虚拟物体中除所述自阴影区域之外的区域上的像素点进行渲染,将所述目标虚拟场景中的所述目标虚拟物体中位于所述自阴影区域的像素点渲染成黑色,并将所述目标虚拟场景中位于所述投影区域的像素点渲染成黑色,其中,所述第一贴图文件还包括所述目标虚拟物体中的每个像素点的颜色值。
根据本发明实施例的另一方面,还提供了一种虚拟场景的渲染装置,包括:获取模块,用于获取第一图片对应的第一贴图文件,其中,所述第一图片中显示有目标虚拟物体,所述第一贴图文件包括所述目标虚拟物体中的每个像素点的深度值;第一确定模块,用于根据所述第一贴图文件中的所述每个像素点的深度值,确定第二图片对应的第二贴图文件,其中,所述第二图片是第一虚拟相机对目标虚拟光源照射的目标虚拟场景进行拍摄所得到的图片,所述第一虚拟相机位于所述目标虚拟光源所在的位置,所述目标虚拟场景中包括所述第一图片,所述第二贴图文件包括所述第二图片中的每个像素点的深度值;第二确定模块,用于根据所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的投影区域;渲染模块,用于根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述虚拟场景的渲染方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的虚拟场景的渲染方法。
在本发明实施例中,采用布告板技术渲染的方式,通过根据第一图片对应的第一贴图文件中的每个像素点的深度值,确定第二图片对应的第二贴图文件,第一图片中显示有目标虚拟物体;根据第二贴图文件中的深度值,确定目标虚拟场景中的目标虚拟物体的投影区域;根据目标虚拟场景中的目标虚拟物体的投影区域,对目标虚拟场景进行渲染。达到了对目标虚拟物体的投影区域进行渲染的目的,从而实现了提高画面渲染效率的技术效果,进而解决了画面渲染效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的虚拟场景的渲染方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的虚拟场景的渲染方法流程图;
图3是根据本发明实施例的一种可选的第一图片的示意图;
图4是根据本发明实施例的一种可选的拍摄第二图片的示意图;
图5是根据本发明实施例的一种可选的投影区域示意图;
图6是根据本发明实施例的一种可选的距离示意图;
图7是根据本发明实施例的一种可选的拍摄第三图片的示意图;
图8是根据本发明实施例的一种可选的渲染示意图;
图9是根据本发明实施例的一种可选的不完整目标虚拟物体示意图;
图10是根据本发明实施例的一种可选的完整目标虚拟物体示意图;
图11是根据本发明实施例的一种可选的目标虚拟物体充满相机画面的示意图;
图12是根据本发明实施例的一种可选的虚拟场景的渲染装置的结构示意图;
图13根据本发明实施例的一种可选的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种虚拟场景的渲染方法,可选地,作为一种可选的实施方式,上述虚拟场景的渲染方法可以但不限于应用于如图1所示的系统环境中。上述系统环境中包括终端设备102、网络110和服务器112。
可选地,在本实施例中,上述终端设备102可具备摄像功能,用于获取图片,上述图片包括但不限于第一图片。终端设备102中包括存储器104、处理器106和显示器108,其中,存储器102包括但不限于存储第一图片,处理器106包括但不限于对终端设备获取到的图片进行处理,例如,对获取到的图片进行剪裁得到上述第一图片。上述显示器108包括但不限于用于显示上述第一图片,以及渲染得到的目标虚拟场景。上述终端设备可以是配置有目标客户端的终端设备,可以包括但不限于以下至少之一:手机(如Android手机、iOS手机等)、笔记本电脑、平板电脑、掌上电脑、MID(Mobile Internet Devices,移动互联网设备)、PAD、台式电脑、智能电视等。目标客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端等。
可选地,在本实施例中,上述网络110可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。
上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述服务器中包括数据库114和处理引擎116,上述数据库用于存储数据,包括但不限于第一贴图文件、第二贴图文件等。上述处理引擎可以用于对数据进行处理。
上述仅是一种示例,本实施例中对此不作任何限定。
可选地,作为一种可选的实施方式,下面对本申请中涉及到的术语进行如下说明:
布告板技术(Billboard)是通过一个面片来伪装显示成真正物体的技术。其方法是在该面片上显示真实物体在某视角下提前拍摄好的一个画面,并将该画面的背景部分剔除,在较远距离看,就好像是一个真实物体被渲染出来,但实际上只是一个面片,这样做可以较大的减少所绘制面片的数量,优化性能。
ShadowMap:绘制阴影时所需要的一张图片。每个需要绘制阴影的虚拟物体都需要向Shadowmap内写入虚拟物体与灯光的距离。最后在实际进行阴影绘制时,根据虚拟物体与灯光的距离与Shadowmap中已经记录的距离,来判断虚拟物体是否在阴影区域内,如果在的话,则绘制阴影。
烘焙:烘焙指将所需要的资源以图片的形式绘制到贴图上,在运行时就可以直接读取贴图上已经绘制好的内容进行显示,是节省性能的一种方式。
最小包围盒:指某个物体可以完整包裹其的最小立方体。
摄像机的近裁剪平面与远裁剪平面:以一维空间举例,假设摄像机在0点位置,近裁剪平面在0.1的位置,远裁剪平面在100的位置,则只有当物体出现在0.1-100这个范围内时,才会被摄像机拍摄到,超出这个范围(比如在101的位置,或者在0.01的位置),就不会出现在画面内,称之为被裁剪。
深度:一般指距离。可以指拍摄物体距离摄像机的距离。例如,深度是5表示拍摄物体距离摄像机5个单位距离远。若考虑上述摄像机的近裁剪平面与远裁剪平面,假设面片的深度为2,表示此面片距离近裁剪平面2个单位远。假设摄像机在0点位置,近裁剪平面在0.1的位置,则如果物体在1.0的位置,则深度为1.0-0.1=0.9;如果物体在50.0的位置,则深度为50.0–0.1=49.9。
Overdraw:过多绘制,指屏幕上的每个像素被绘制了过多的次数。理想的情况下,屏幕的每个像素可能只被填充一次颜色就可以,但有时由于某些透明物体的存在,某个像素可能会被反复填充很多次颜色,才得到最终颜色,该行为即为Overdraw,Overdraw次数过多,会影响性能。
可选地,作为一种可选的实施方式,如图2所示,上述虚拟场景的渲染方法包括:
步骤S202,获取第一图片对应的第一贴图文件,其中,所述第一图片中显示有目标虚拟物体,所述第一贴图文件包括所述目标虚拟物体中的每个像素点的深度值;
其中,第一图片可以是在Billboard的资源准备阶段,使用第二虚拟相机在某个视角下对目标虚拟物体进行拍摄得到的图像,拍摄得到的第一图片可以称为面片。目标虚拟物体可以是物体模型,如山、树木、人物、车辆等模型。上述视角可以是任意视角,可以根据实际情况选择,例如可以是目标虚拟物体的正前方、正后方、左侧、右侧等,以正前方为例,如图3所示是根据本发明可选实施例的第一图片的示意图,第二虚拟相机位于目标虚拟物体正前方拍摄得到第一图片。具体可以根据实际场景而定,在此不作限定。上述第一贴图文件可以是Billboard资源,第一贴图文件中可以包括第一图像中的目标虚拟物体的每个像素点的深度值,还可以包括目标虚拟物体的光照颜色信息。具体地,可以将光照颜色信息存储在第一贴图文件的RGB通道中,在第一贴图文件的透明通道中生成目标虚拟物体在空间中的深度信息。
步骤S204,根据所述第一贴图文件中的所述每个像素点的深度值,确定第二图片对应的第二贴图文件,其中,所述第二图片是第一虚拟相机对目标虚拟光源照射的目标虚拟场景进行拍摄所得到的图片,所述第一虚拟相机位于所述目标虚拟光源所在的位置,所述目标虚拟场景中包括所述第一图片,所述第二贴图文件包括所述第二图片中的每个像素点的深度值;
其中,将第一图片放置在目标虚拟场景中,目标虚拟场景可以是终端画面中显示的场景,例如可以是游戏场景,视频场景等。将第一图片设置在目标虚拟场景中,以光源位置为视角对目标虚拟场景进行拍摄,如图4所示是根据本发明可选实施例的拍摄第二图片的示意图,其中,第一虚拟相机与光源在同一位置,对目标虚拟场景进行拍摄得到第二图片。上述第二贴图文件可以是Shadowmap,第二贴图文件中包括第二图片中每个像素点的深度值。
步骤S206,根据所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的投影区域;
其中,上述投影区域可以包括目标虚拟场景中背景上的投影区域,也可以包括自投影区域,如图5所示是根据本发明可选实施例的投影区域示意图,图中包括目标虚拟物体在目标虚拟场景的背景上形成的投影区域,以及目标虚拟物体上的自投影区域。
步骤S208,根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染。
通过上述实施例,在Billboard的资源准备阶段,可以利用程序生成的方式,让第二虚拟相机在某个视角下对目标虚拟物体进行拍摄,得到第一图片。将第一图片的光照颜色信息存储在第一贴图文件的RGB通道中,在第一贴图文件的透明通道中生成目标虚拟物体的深度信息。在绘制ShadowMap时,将Billboard面向光源方向,在光源视角下,同样重新计算Billbaord面片各个像素距离灯光位置的距离,将对应结果写入第二贴图文件Shadowmap中,用于后续的阴影计算。在显示时,将Billboard重新计算深度后的各像素位置,与Shadowmap中记录的深度做对比,看是否在阴影区域中。如果在阴影区域中,则进行阴影的光照绘制。本实施例采用了基于面片的阴影渲染方式,达到了在提高渲染效率的同时,保证了目标虚拟物体的立体感。
可选地,获取所述第一贴图文件中的第一像素点的深度值,其中,所述第一图片是第二虚拟相机对所述目标虚拟物体进行拍摄所得到的图片,所述第一像素点是所述目标虚拟物体中的像素点,所述第一像素点的深度值是根据第一距离和预设裁剪距离确定的归一化取值,所述第一距离为所述第一像素点所对应的位置与所述第二虚拟相机之间的距离;根据所述第一像素点的深度值以及所述预设裁剪距离,确定所述第一像素点的偏移距离;根据第二距离以及所述偏移距离,确定所述第二图片中的所述第一像素点的深度值,其中,所述第二距离是所述第二图片中的所述第一像素点所对应的位置与所述目标虚拟光源之间的距离。
作为一个可选的实施方式,上述第一像素点可以是第一图片上目标虚拟对象的任意一个像素点,上述第一像素点所对应的位置是第二虚拟相机对目标虚拟物体进行拍摄时,目标虚拟物体上与第一像素点对应的点所在的位置,预设剪裁距离可以是上述近裁剪平面与远裁剪平面之间的距离。
作为一个可选的实施方式,在绘制自阴影时,由于第一图片是一个面片,所以第一图片的各像素是在同一个面片平面上的,这显然是无法制作自阴影的。首先要对在一个面片平面的像素进行偏移(第一贴图文件中的每个像素点的归一化的深度值在0-1,整个面片的归一化的深度值为0.5,如果0.6,离灯光更远,0.4,离灯光更近),让其具有“体积感”,其方法同样利用深度还原,与绘制Shadowmap时的深度还原相似。
作为一个可选的实施方式,如图6所示是根据本发明可选实施例的距离示意图,图中,A为第一像素点所在的位置与第二虚拟相机之间的距离,b为预设剪裁距离,上述预设剪裁距离是近裁剪平面与远裁剪平面之间的距离。a为第一像素点所在的位置与近裁剪平面之间的距离,c为第二虚拟相机与近裁剪平面之间的距离。由于第二虚拟相机所在的位置和近裁剪平面所在的位置已知,所以c值已知,进而可以求得a=A-c,归一化取值S=a/b。确定第一像素点的深度值为归一化取值S=a/b。在本实施例中,假设第二虚拟相机与第一像素点所在的位置P1之间的距离是A=10米,近裁剪平面与远裁剪平面之间的预设裁剪距离是b=2米,第二虚拟相机与近裁剪平面之间的距离是9.2米,则可以得到近裁剪平面与第一像素点所在的位置之间的距离是a=10-9.2=0.8米,由此可以得到第一像素点的深度值为a/b=0.8/2=0.4。将该值存储在第一贴图文件中。在本实施例中,上述数据是为了对本实施例进行举例说明,在此不作限定。根据上述第一像素点的深度值0.4,以及近裁剪平面与远裁剪平面之间的预设裁剪距离2可以得到第一像素点的偏移距离,根据偏移距离,第二图片中第一像素点所对应的位置与目标虚拟光源之间的距离,可以得到第二图片中第一像素点的像素值。在本实施例中,将像素通过深度还原进行偏移后(计算世界空间中的位置,转换成灯光空间的位置),将偏移后的位置作为采样Shadowmap的位置,来判断该像素是否处于阴影中,如果在阴影中,则不绘制该光源对该像素的影响,即为自阴影效果。
可选地,所述根据所述第一像素点的深度值以及所述预设裁剪距离,确定所述第一像素点的偏移距离,包括:确定所述第一像素点的深度值与预设的所述第一图片的深度值之间的差值,其中,所述第一图片的深度值是根据第三距离和所述预设裁剪距离确定的归一化取值,所述第三距离为所述目标虚拟物体与所述第二虚拟相机之间的距离;将所述第一像素点的偏移距离确定为等于所述差值与所述预设裁剪距离之间的乘积。
作为一个可选的实施方式,第一图片的深度值是整个面片(第一图片)的归一化的深度值,可以根据第二虚拟相机在对目标虚拟物体进行拍摄时,目标虚拟物体与第二虚拟相机之间的第三距离,以及预设裁剪距离确定的归一化取值得到第一图片的深度值。假设A为目标虚拟物体所在的位置与第二虚拟相机之间的距离,b为预设剪裁距离,上述预设剪裁距离是近裁剪平面与远裁剪平面之间的距离。a为目标虚拟物体所在的位置与近裁剪平面之间的距离,c为第二虚拟相机与近裁剪平面之间的距离。由于第二虚拟相机所在的位置和近裁剪平面所在的位置已知,所以c值已知,进而可以求得a=A-c,归一化取值S=a/b。确定目标虚拟物体的深度值为归一化取值S=a/b。在本实施例中,假设第二虚拟相机与目标虚拟物体之间的距离是A=10.2米,近裁剪平面与远裁剪平面之间的预设裁剪距离是b=2米,第二虚拟相机与近裁剪平面之间的距离是9.2米,则可以得到近裁剪平面与目标虚拟物体所在的位置P之间的距离是a=10.2-9.2=1米,由此可以得到第一图片的深度值的深度值为a/b=1/2=0.5。
以上述第一像素点的深度值为0.4为例,则第一像素点的深度值与第一图片的深度值之间的差值为0.5-0.4=0.1,由于近裁剪平面与远裁剪平面之间的预设裁剪距离是b=2,可以得到第一像素点的偏移距离为0.1*2=0.2。
可选地,所述根据第二距离以及所述偏移距离,确定所述第二图片中的所述第一像素点的深度值,包括:在所述第一像素点的深度值小于所述第一图片的深度值时,获取所述第二距离与所述偏移距离之间的差值;根据所述第一虚拟相机的相机参数,对所述第二距离与所述偏移距离之间的差值进行归一化处理,得到所述第二图片中的所述第一像素点的深度值;在所述第一像素点的深度值大于所述第一图片的深度值时,获取所述第二距离与所述偏移距离之间的加和值;根据所述第一虚拟相机的相机参数,对所述第二距离与所述偏移距离之间的加和值进行归一化处理,得到所述第二图片中的所述第一像素点的深度值。
作为一个可选的实施方式,假设第一贴图文件中存储的像素点P1的深度值为0.4,像素点P1所对应的位置与第二虚拟相机之间的距离是10米,近裁剪平面与远裁剪平面之间的预设裁剪距离是b=2(可以称为烘焙空间为2)。首先需要计算第一贴图文件中存储的像素点P1的深度值0.4会让像素点P1对第一图片(也称为面片)向靠近目标虚拟光源(第一虚拟相机与目标虚拟光源在同一位置)的方向移动多少(第一图片的深度值是0.5)。因为在烘焙时,烘焙空间为2米,像素点P1的偏移距离为(0.5-0.4)*2=0.2。由此像素点P1向靠近目标虚拟光源(第一虚拟相机)的方向移动0.2。移动后像素点P1与目标虚拟光源(第一虚拟相机)之间的距离为9.8,之后将9.8米用第一虚拟相机的参数进行归一化(第一虚拟相机会提供一个参数,将一个在远近裁剪平面之间的距离,转换在0-1之间的),假设得到的归一化数值为0.12345,得到第二图片中的像素点P1的深度值为0.12345,将该值存储在第二贴图文件shadowmap中。
作为一个可选的实施方式,假设第一贴图文件中存储的像素点P2的深度值为0.7,像素点P2所对应的位置与第二虚拟相机之间的距离是5米,近裁剪平面与远裁剪平面之间的预设裁剪距离是b=2(可以称为烘焙空间为2)。首先需要计算第一贴图文件中存储的像素点P2的深度值0.7会让像素点P2对第一图片(也称为面片)向远离目标虚拟光源(第一虚拟相机与目标虚拟光源在同一位置)的方向移动多少(第一图片的深度值是0.5)。因为在烘焙时,烘焙空间为2米,像素点P2的偏移距离为(0.7-0.5)*2=0.4。由此像素点P2向远离目标虚拟光源(第一虚拟相机)的方向移动0.4。移动后像素点P2与目标虚拟光源(第一虚拟相机)之间的距离为5.4。使用第一虚拟相机的相机参数对5.4进行归一化,得到像素点P2的深度值,将该值存储在第二贴图文件shadowmap中。
可选地,所述根据所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的投影区域,包括:获取第三图片中的第二像素点所对应的位置与第三虚拟相机之间的第四距离,其中,所述第三图片是所述第三虚拟相机对所述目标虚拟光源照射的所述目标虚拟场景进行拍摄所得到的图片,所述第二像素点是所述目标虚拟场景中除所述目标虚拟物体之外的像素点;根据所述第四距离、所述第二像素点在预设的三维坐标系下的坐标、所述第三虚拟相机在所述三维坐标系下的坐标、以及所述目标虚拟光源在所述三维坐标系下的坐标,确定所述第二像素点所对应的位置与所述目标虚拟光源之间的第五距离;根据所述第三虚拟相机的相机参数,对所述第五距离进行归一化处理,得到所述第二像素点的当前深度值;在所述第二像素点的当前深度值大于所述第二贴图文件中的所述第二像素点的深度值时,将所述第二像素点确定为所述投影区域中的像素点。
作为一个可选的实施方式,如图7所示是根据本发明可选实施例的拍摄第三图片的示意图,第三虚拟相机与目标虚拟光源可以位于不同的位置,第三虚拟相机对目标虚拟光源照射的目标虚拟物体进行拍摄。第二像素点是P3第三图片中除了目标虚拟物体之外的像素点,例如可以是背景区域的像素点。获取在第三虚拟相机对目标虚拟物体拍摄时,目标虚拟场景中背景区域中的第二像素点P3对应的位置与第三虚拟相机之间的距离,称为第四距离。上述预设的三维坐标系可以是世界坐标系,世界坐标系是以世界原点创建的三维坐标。根据第二像素点P3与第三虚拟相机之间的距离,以及第二像素点P3的世界坐标,目标虚拟光源的世界坐标,确定第二像素点P3与目标虚拟光源间的第五距离。使用第三虚拟相机的相机参数,对第五距离进行归一化,得到第二像素点P3的当前深度值。由于已知目标虚拟光源的位置,也知道第三虚拟相机的拍摄方向,以及第二像素点P3与目标虚拟光源之间的距离,由此可以得到像第二像素点P3在世界坐标系中的具体位置。将第二像素点P3在世界坐标系中的具体位置转换到第三虚拟相机所在的空间,可以得到第二像素点P3距离目标虚拟光源的距离,用第三虚拟相机的归一化参数转换为归一化后的参数,得到的数值比如是0.2468,如果在第二贴图文件shadowmap中存储的第二像素点P3的深度值为0.12345,由于0.2468大于0.12345,所以得到第二像素点P3更远离目标虚拟光源,可以得到第二像素点P3在阴影中。
可选地,所述根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染,包括:根据所述第一贴图文件中的颜色值,对所述目标虚拟场景中的所述目标虚拟物体进行渲染,并将所述目标虚拟场景中位于所述投影区域的像素点渲染成黑色,其中,所述第一贴图文件还包括所述目标虚拟物体中的每个像素点的颜色值。
作为一个可选的实施方式,第一图片的光照颜色信息存储在第一贴图文件的RGB通道中,使用第一贴图文件RGB通道中存储的光照颜色信息中的目标虚拟物体进行渲染,将位于投影区域的像素点渲染成黑色,如图8所示是根据本发明可选实施例的渲染示意图,由此,对目标虚拟场景中的目标虚拟物体的阴影进行渲染,达到了立体效果。
可选地,所述方法还包括:根据所述第一贴图文件中的深度值和所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的自阴影区域,其中,所述自阴影区域是所述目标虚拟场景中的所述目标虚拟物体所在的区域中的一部分;所述根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染,包括:根据所述目标虚拟物体的投影区域以及所述目标虚拟物体的自阴影区域,对所述目标虚拟场景进行渲染。
作为一个可选的实施方式,对于目标虚拟物体上的像素点存在自阴影区域。可以根据第一贴图文件中的深度值,确定目标虚拟物体中的自阴影区域。对目标虚拟物体中的自阴影区域中的像素点,以及目标虚拟场景中除了目标虚拟物体之外的其他像素点进行渲染,可以渲染出阴影,提高目标虚拟物体的立体感。
可选地,所述根据所述第一贴图文件中的深度值和所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的自阴影区域,包括:获取所述第一贴图文件中的第三像素点的深度值,其中,所述第一图片是第二虚拟相机对所述目标虚拟物体进行拍摄所得到的图片,所述第三像素点是所述目标虚拟物体中的像素点,所述第三像素点的深度值是根据第一距离和预设裁剪距离确定的归一化取值,所述第一距离为所述第三像素点所对应的位置与所述第二虚拟相机之间的距离;根据所述第三像素点的深度值以及所述预设裁剪距离,确定所述第三像素点的偏移距离;获取第三图片中的所述第三像素点所对应的位置与第三虚拟相机之间的第六距离,其中,所述第三图片是所述第三虚拟相机对所述目标虚拟光源照射的所述目标虚拟场景进行拍摄所得到的图片;根据所述第六距离与所述偏移距离、以及所述第三像素点在预设的三维坐标系下的坐标、所述第三虚拟相机在所述三维坐标系下的坐标、以及所述目标虚拟光源在所述三维坐标系下的坐标,确定所述第三像素点所对应的位置与所述目标虚拟光源之间的第七距离;根据所述第三虚拟相机的相机参数,对所述第七距离进行归一化处理,得到所述第三像素点的当前深度值;在所述第三像素点的当前深度值大于所述第二贴图文件中的所述第三像素点的深度值时,将所述第三像素点确定为所述自阴影区域中的像素点。
作为一个可选的实施方式,第三像素点P4是目标虚拟物体中的像素点。使用图3所示的拍摄方式对目标虚拟物体进行拍摄得到第一图片,第二虚拟相机可以位于目标虚拟物体的任意方向,图3仅为示例。假设第一贴图文件中存储的第三像素点P4的深度值0.7。第一图片的深度值为0.5,由于近裁剪平面与远裁剪平面之间的预设裁剪距离是b=2,可以得到第三像素点P4的偏移距离为0.2*2=0.4。
假设第一贴图文件中存储的第三像素点P4的深度值为0.7,第三像素点P4所对应的位置与第二虚拟相机之间的距离是5米,近裁剪平面与远裁剪平面之间的预设裁剪距离是b=2(可以称为烘焙空间为2)。首先需要计算第一贴图文件中存储的第三像素点P4的深度值0.7会让第三像素点P4对第一图片(也称为面片)向远离目标虚拟光源的方向移动多少(第一图片的深度值是0.5)。因为在烘焙时,烘焙空间为2米,第三像素点P4的偏移距离为(0.7-0.5)*2=0.4。由此第三像素点P4向远离目标虚拟光源的方向移动0.4。移动后第三像素点P4与目标虚拟光源之间的距离为5.4。由于已知目标虚拟光源的位置,也知道第三虚拟相机的拍摄方向,以及第三像素点P4与目标虚拟光源之间的距离5.4,由此可以得到像第三像素点P4在世界坐标系中的具体位置,假设为(2,3,4)。将第三像素点P4在世界坐标系中的具体位置转换到第三虚拟相机所在的空间,可以得到第三像素点P4距离目标虚拟光源的距离,比如9.9米,用第三虚拟相机的归一化参数转换为归一化后的参数,得到的数值比如是0.2468,如果在第二贴图文件shadowmap中存储的第三像素点P4的深度值为0.12345,由于0.2468大于0.12345,所以得到第三像素点P4更远离目标虚拟光源,可以得到第三像素点P4在自阴影区域中,如图8中自阴影区域。
可选地,所述根据所述目标虚拟物体的投影区域以及所述目标虚拟物体的自阴影区域,对所述目标虚拟场景进行渲染,包括:根据所述第一贴图文件中的颜色值,对所述目标虚拟场景中的所述目标虚拟物体中除所述自阴影区域之外的区域上的像素点进行渲染,将所述目标虚拟场景中的所述目标虚拟物体中位于所述自阴影区域的像素点渲染成黑色,并将所述目标虚拟场景中位于所述投影区域的像素点渲染成黑色,其中,所述第一贴图文件还包括所述目标虚拟物体中的每个像素点的颜色值。
作为一个可选的实施方式,第一图片的光照颜色信息存储在第一贴图文件的RGB通道中,使用第一贴图文件RGB通道中存储的光照颜色信息中的目标虚拟物体进行渲染,将位于自阴影区域和投影区域的像素点渲染成黑色得到如图8所示的渲染示意图,由此,对目标虚拟场景中的目标虚拟物体的阴影进行渲染,达到了立体效果。
作为一个可选的实施方式,在拍摄上述第一图片时,通过调整第二虚拟像机的拍摄参数,让目标虚拟物体可以充满二虚拟像机的拍摄画面。首先第一步是获得该资源的最小包围盒,以最小包围盒的对角线为基准,将二虚拟像机的拍摄视角长宽设定为与对角线长度一致的大小,来确保所拍摄的资源能够完整的出现在第二虚拟像机画面内,如图9所示是不完整目标虚拟物体示意图,图10所示是完整目标虚拟物体示意图。为了让目标虚拟物体充满摄像机画面,需要进行进一步的调整。读取拍摄画面内带像素部分的长宽,与当前第二虚拟像机拍摄画面的长宽换算成比例系数(举例:比如当前拍摄画面内只有500*500的像素框内带有像素,而当前拍摄画面整体却是1000*1000像素的,则比例系数即为500/1000=0.5,那么当前相机拍摄长宽就都应该进行0.5倍的缩放)。通过该比例系数来缩放第二虚拟像机拍摄画面的长宽后,即可得到一个正好能让目标虚拟物体充满第二虚拟像机画面的拍摄系数,如图11是目标虚拟物体充满相机画面的示意图。
对目标虚拟物体进行拍照,将拍照的结果写入第一贴图文件中。其中RGB通道写入颜色值,而Alpha通道需要写入归一化后的深度值。其中0即为黑色,1即为白色。归一化后的深度值指:对于每个像素来说,计算该像素当前对应的位置到第二虚拟像机近裁剪平面的距离,得到深度;将该深度与近裁剪平面和远裁剪平面之间的总距离进行比值,就可以换算成归一化后的深度值。
运行时需要渲染一张一直朝向虚拟像机的面片,其采用的是通用的Billboard渲染方式。在在绘制第一图片的阴影时,由于之前一直用算法使第一图片朝向摄像机,现用同样的算法,使其临时朝向光源的方向,以光源视角,渲染Shadowmap。在渲染时,读取在资源烘焙时存储在Alpha通道内的深度信息,将其还原。计算出该像素距离灯光渲染相机的实际深度,将该深度写入第二贴图文件Shadowmap。所述的还原指,由于之前为了将深度信息存储在第一贴图文件中,所以将其归一化,转换到了0-1之间,需要根据归一化后的深度,再根据近裁剪平面和远裁剪平面的参数,来复原原本的深度值。
在绘制Shadowmap时,采用AlphaTest的模式进行绘制,即如果从Alpha通道中读取的值小于AlphaTest的阈值,则该像素将不会被绘制。该阈值可设置。AlphaTest是一种绘制透明物体的方式,比如,如果AlphaTest的阈值为0.1,在绘制物体每个像素时,会看该像素的Alpha值是否达到了0.1,如果不足0.1,则该像素不会绘制。
在绘制投影(地面的阴影):通过对深度的还原将正确的深度值写入了第二贴图文件Shadowmap,所以在绘制投影时,只需要按照传统的方式去采样Shadowmap,将当前将要绘制的像素值相对于灯光的深度与存储在Shadowmap中的深度值进行比较,来判断其是否在阴影内即可。
绘制自阴影:在绘制自阴影时,由于第一图片是一个面片,所以各像素原本是在同一个面片平面上的,这显然是无法制作自阴影的。所以首先要对在一个面片平面的像素进行偏移(贴图文件中的每个像素点的归一化的深度值在0-1,整个面片的归一化的深度值为0.5,如果0.6离目标虚拟光源更远,0.4离目标虚拟光源更近),让其具有“体积感”,其方法同样利用深度还原,与绘制Shadowmap时的深度还原相似。将像素通过深度还原进行偏移后(计算世界空间中的位置,转换成灯光空间的位置),将偏移后的位置作为采样Shadowmap的位置,来判断该像素是否处于阴影中,如果在阴影中,则不绘制该光源对该像素的影响,即为自阴影效果。
本申请为Billboard模式添加了阴影与自阴影的效果,可以达到伪装成实体模型的效果,从而在性能较差的设备上,可以用Billboard来代替实体模型,优化了游戏的性能。以较低的运行成本来实现了较好的效果。减少了同屏中Overdraw的次数,原本的实体模型,由于目标虚拟问题多为插片形式制作,Overdraw较多,改为Billboard模式,Overdraw显著降低。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述虚拟场景的渲染方法的虚拟场景的渲染装置。如图12所示,该装置包括:获取模块1202,用于获取第一图片对应的第一贴图文件,其中,所述第一图片中显示有目标虚拟物体,所述第一贴图文件包括所述目标虚拟物体中的每个像素点的深度值;第一确定模块1204,用于根据所述第一贴图文件中的所述每个像素点的深度值,确定第二图片对应的第二贴图文件,其中,所述第二图片是第一虚拟相机对目标虚拟光源照射的目标虚拟场景进行拍摄所得到的图片,所述第一虚拟相机位于所述目标虚拟光源所在的位置,所述目标虚拟场景中包括所述第一图片,所述第二贴图文件包括所述第二图片中的每个像素点的深度值;第二确定模块1206,用于根据所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的投影区域;渲染模块1208,用于根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染。
可选地,上述装置用于获取所述第一贴图文件中的第一像素点的深度值,其中,所述第一图片是第二虚拟相机对所述目标虚拟物体进行拍摄所得到的图片,所述第一像素点是所述目标虚拟物体中的像素点,所述第一像素点的深度值是根据第一距离和预设裁剪距离确定的归一化取值,所述第一距离为所述第一像素点所对应的位置与所述第二虚拟相机之间的距离;根据所述第一像素点的深度值以及所述预设裁剪距离,确定所述第一像素点的偏移距离;根据第二距离以及所述偏移距离,确定所述第二图片中的所述第一像素点的深度值,其中,所述第二距离是所述第二图片中的所述第一像素点所对应的位置与所述目标虚拟光源之间的距离。
可选地,上述装置用于确定所述第一像素点的深度值与预设的所述第一图片的深度值之间的差值,其中,所述第一图片的深度值是根据第三距离和所述预设裁剪距离确定的归一化取值,所述第三距离为所述目标虚拟物体与所述第二虚拟相机之间的距离;将所述第一像素点的偏移距离确定为等于所述差值与所述预设裁剪距离之间的乘积。
可选地,上述装置用于在所述第一像素点的深度值小于所述第一图片的深度值时,获取所述第二距离与所述偏移距离之间的差值;根据所述第一虚拟相机的相机参数,对所述第二距离与所述偏移距离之间的差值进行归一化处理,得到所述第二图片中的所述第一像素点的深度值;在所述第一像素点的深度值大于所述第一图片的深度值时,获取所述第二距离与所述偏移距离之间的加和值;根据所述第一虚拟相机的相机参数,对所述第二距离与所述偏移距离之间的加和值进行归一化处理,得到所述第二图片中的所述第一像素点的深度值。
可选地,上述装置用于获取第三图片中的第二像素点所对应的位置与第三虚拟相机之间的第四距离,其中,所述第三图片是所述第三虚拟相机对所述目标虚拟光源照射的所述目标虚拟场景进行拍摄所得到的图片,所述第二像素点是所述目标虚拟场景中除所述目标虚拟物体之外的像素点;根据所述第四距离、所述第二像素点在预设的三维坐标系下的坐标、所述第三虚拟相机在所述三维坐标系下的坐标、以及所述目标虚拟光源在所述三维坐标系下的坐标,确定所述第二像素点所对应的位置与所述目标虚拟光源之间的第五距离;根据所述第三虚拟相机的相机参数,对所述第五距离进行归一化处理,得到所述第二像素点的当前深度值;在所述第二像素点的当前深度值大于所述第二贴图文件中的所述第二像素点的深度值时,将所述第二像素点确定为所述投影区域中的像素点。
可选地,上述装置用于根据所述第一贴图文件中的颜色值,对所述目标虚拟场景中的所述目标虚拟物体进行渲染,并将所述目标虚拟场景中位于所述投影区域的像素点渲染成黑色,其中,所述第一贴图文件还包括所述目标虚拟物体中的每个像素点的颜色值。
可选地,上述装置用于根据所述第一贴图文件中的深度值和所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的自阴影区域,其中,所述自阴影区域是所述目标虚拟场景中的所述目标虚拟物体所在的区域中的一部分;根据所述目标虚拟物体的投影区域以及所述目标虚拟物体的自阴影区域,对所述目标虚拟场景进行渲染。
可选地,上述装置用于获取所述第一贴图文件中的第三像素点的深度值,其中,所述第一图片是第二虚拟相机对所述目标虚拟物体进行拍摄所得到的图片,所述第三像素点是所述目标虚拟物体中的像素点,所述第三像素点的深度值是根据第一距离和预设裁剪距离确定的归一化取值,所述第一距离为所述第三像素点所对应的位置与所述第二虚拟相机之间的距离;根据所述第三像素点的深度值以及所述预设裁剪距离,确定所述第三像素点的偏移距离;获取第三图片中的所述第三像素点所对应的位置与第三虚拟相机之间的第六距离,其中,所述第三图片是所述第三虚拟相机对所述目标虚拟光源照射的所述目标虚拟场景进行拍摄所得到的图片;根据所述第六距离与所述偏移距离、以及所述第三像素点在预设的三维坐标系下的坐标、所述第三虚拟相机在所述三维坐标系下的坐标、以及所述目标虚拟光源在所述三维坐标系下的坐标,确定所述第三像素点所对应的位置与所述目标虚拟光源之间的第七距离;根据所述第三虚拟相机的相机参数,对所述第七距离进行归一化处理,得到所述第三像素点的当前深度值;在所述第三像素点的当前深度值大于所述第二贴图文件中的所述第三像素点的深度值时,将所述第三像素点确定为所述自阴影区域中的像素点。
可选地,上述装置用于根据所述第一贴图文件中的颜色值,对所述目标虚拟场景中的所述目标虚拟物体中除所述自阴影区域之外的区域上的像素点进行渲染,将所述目标虚拟场景中的所述目标虚拟物体中位于所述自阴影区域的像素点渲染成黑色,并将所述目标虚拟场景中位于所述投影区域的像素点渲染成黑色,其中,所述第一贴图文件还包括所述目标虚拟物体中的每个像素点的颜色值。
根据本发明实施例的又一个方面,还提供了一种用于实施上述虚拟场景的渲染方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为13为例来说明。如图13所示,该电子设备包括存储器1302和处理器1304,该存储器1302中存储有计算机程序,该处理器1304被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取第一图片对应的第一贴图文件,其中,所述第一图片中显示有目标虚拟物体,所述第一贴图文件包括所述目标虚拟物体中的每个像素点的深度值;
S2,根据所述第一贴图文件中的所述每个像素点的深度值,确定第二图片对应的第二贴图文件,其中,所述第二图片是第一虚拟相机对目标虚拟光源照射的目标虚拟场景进行拍摄所得到的图片,所述第一虚拟相机位于所述目标虚拟光源所在的位置,所述目标虚拟场景中包括所述第一图片,所述第二贴图文件包括所述第二图片中的每个像素点的深度值;
S3,根据所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的投影区域;
S4,根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染。
可选地,本领域普通技术人员可以理解,图13所示的结构仅为示意,电子装置电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图13其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图13中所示更多或者更少的组件(如网络接口等),或者具有与图13所示不同的配置。
其中,存储器1302可用于存储软件程序以及模块,如本发明实施例中的虚拟场景的渲染方法和装置对应的程序指令/模块,处理器1304通过运行存储在存储器1302内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟场景的渲染方法。存储器1302可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1302可进一步包括相对于处理器1304远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1302具体可以但不限于用于存储物品的样本特征与目标虚拟资源账号等信息。作为一种示例,如图13所示,上述存储器1302中可以但不限于包括上述虚拟场景的渲染装置中的获取模块1202、第一确定模块1204、第二确定模块1206及渲染模块1208。此外,还可以包括但不限于上述虚拟场景的渲染装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1306用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1306包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1306为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器1308,用于显示上述待处理的订单信息;和连接总线1310,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取第一图片对应的第一贴图文件,其中,所述第一图片中显示有目标虚拟物体,所述第一贴图文件包括所述目标虚拟物体中的每个像素点的深度值;
S2,根据所述第一贴图文件中的所述每个像素点的深度值,确定第二图片对应的第二贴图文件,其中,所述第二图片是第一虚拟相机对目标虚拟光源照射的目标虚拟场景进行拍摄所得到的图片,所述第一虚拟相机位于所述目标虚拟光源所在的位置,所述目标虚拟场景中包括所述第一图片,所述第二贴图文件包括所述第二图片中的每个像素点的深度值;
S3,根据所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的投影区域;
S4,根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种虚拟场景的渲染方法,其特征在于,包括:
获取第一图片对应的第一贴图文件,其中,所述第一图片中显示有目标虚拟物体,所述第一贴图文件包括所述目标虚拟物体中的每个像素点的深度值;
根据所述第一贴图文件中的所述每个像素点的深度值,确定第二图片对应的第二贴图文件,其中,所述第二图片是第一虚拟相机对目标虚拟光源照射的目标虚拟场景进行拍摄所得到的图片,所述第一虚拟相机位于所述目标虚拟光源所在的位置,所述目标虚拟场景中包括所述第一图片,所述第二贴图文件包括所述第二图片中的每个像素点的深度值;
根据所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的投影区域;
根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一贴图文件中的所述每个像素点的深度值,确定第二图片对应的第二贴图文件,包括:
获取所述第一贴图文件中的第一像素点的深度值,其中,所述第一图片是第二虚拟相机对所述目标虚拟物体进行拍摄所得到的图片,所述第一像素点是所述目标虚拟物体中的像素点,所述第一像素点的深度值是根据第一距离和预设裁剪距离确定的归一化取值,所述第一距离为所述第一像素点所对应的位置与所述第二虚拟相机之间的距离;
根据所述第一像素点的深度值以及所述预设裁剪距离,确定所述第一像素点的偏移距离;
根据第二距离以及所述偏移距离,确定所述第二图片中的所述第一像素点的深度值,其中,所述第二距离是所述第二图片中的所述第一像素点所对应的位置与所述目标虚拟光源之间的距离。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一像素点的深度值以及所述预设裁剪距离,确定所述第一像素点的偏移距离,包括:
确定所述第一像素点的深度值与预设的所述第一图片的深度值之间的差值,其中,所述第一图片的深度值是根据第三距离和所述预设裁剪距离确定的归一化取值,所述第三距离为所述目标虚拟物体与所述第二虚拟相机之间的距离;
将所述第一像素点的偏移距离确定为等于所述差值与所述预设裁剪距离之间的乘积。
4.根据权利要求3所述的方法,其特征在于,所述根据第二距离以及所述偏移距离,确定所述第二图片中的所述第一像素点的深度值,包括:
在所述第一像素点的深度值小于所述第一图片的深度值时,获取所述第二距离与所述偏移距离之间的差值;根据所述第一虚拟相机的相机参数,对所述第二距离与所述偏移距离之间的差值进行归一化处理,得到所述第二图片中的所述第一像素点的深度值;
在所述第一像素点的深度值大于所述第一图片的深度值时,获取所述第二距离与所述偏移距离之间的加和值;根据所述第一虚拟相机的相机参数,对所述第二距离与所述偏移距离之间的加和值进行归一化处理,得到所述第二图片中的所述第一像素点的深度值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的投影区域,包括:
获取第三图片中的第二像素点所对应的位置与第三虚拟相机之间的第四距离,其中,所述第三图片是所述第三虚拟相机对所述目标虚拟光源照射的所述目标虚拟场景进行拍摄所得到的图片,所述第二像素点是所述目标虚拟场景中除所述目标虚拟物体之外的像素点;
根据所述第四距离、所述第二像素点在预设的三维坐标系下的坐标、所述第三虚拟相机在所述三维坐标系下的坐标、以及所述目标虚拟光源在所述三维坐标系下的坐标,确定所述第二像素点所对应的位置与所述目标虚拟光源之间的第五距离;
根据所述第三虚拟相机的相机参数,对所述第五距离进行归一化处理,得到所述第二像素点的当前深度值;
在所述第二像素点的当前深度值大于所述第二贴图文件中的所述第二像素点的深度值时,将所述第二像素点确定为所述投影区域中的像素点。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染,包括:
根据所述第一贴图文件中的颜色值,对所述目标虚拟场景中的所述目标虚拟物体进行渲染,并将所述目标虚拟场景中位于所述投影区域的像素点渲染成黑色,其中,所述第一贴图文件还包括所述目标虚拟物体中的每个像素点的颜色值。
7.根据权利要求1所述的方法,其特征在于,
所述方法还包括:根据所述第一贴图文件中的深度值和所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的自阴影区域,其中,所述自阴影区域是所述目标虚拟场景中的所述目标虚拟物体所在的区域中的一部分;
所述根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染,包括:根据所述目标虚拟物体的投影区域以及所述目标虚拟物体的自阴影区域,对所述目标虚拟场景进行渲染。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一贴图文件中的深度值和所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的自阴影区域,包括:
获取所述第一贴图文件中的第三像素点的深度值,其中,所述第一图片是第二虚拟相机对所述目标虚拟物体进行拍摄所得到的图片,所述第三像素点是所述目标虚拟物体中的像素点,所述第三像素点的深度值是根据第一距离和预设裁剪距离确定的归一化取值,所述第一距离为所述第三像素点所对应的位置与所述第二虚拟相机之间的距离;
根据所述第三像素点的深度值以及所述预设裁剪距离,确定所述第三像素点的偏移距离;
获取第三图片中的所述第三像素点所对应的位置与第三虚拟相机之间的第六距离,其中,所述第三图片是所述第三虚拟相机对所述目标虚拟光源照射的所述目标虚拟场景进行拍摄所得到的图片;
根据所述第六距离与所述偏移距离、以及所述第三像素点在预设的三维坐标系下的坐标、所述第三虚拟相机在所述三维坐标系下的坐标、以及所述目标虚拟光源在所述三维坐标系下的坐标,确定所述第三像素点所对应的位置与所述目标虚拟光源之间的第七距离;
根据所述第三虚拟相机的相机参数,对所述第七距离进行归一化处理,得到所述第三像素点的当前深度值;
在所述第三像素点的当前深度值大于所述第二贴图文件中的所述第三像素点的深度值时,将所述第三像素点确定为所述自阴影区域中的像素点。
9.根据权利要求7所述的方法,其特征在于,所述根据所述目标虚拟物体的投影区域以及所述目标虚拟物体的自阴影区域,对所述目标虚拟场景进行渲染,包括:
根据所述第一贴图文件中的颜色值,对所述目标虚拟场景中的所述目标虚拟物体中除所述自阴影区域之外的区域上的像素点进行渲染,将所述目标虚拟场景中的所述目标虚拟物体中位于所述自阴影区域的像素点渲染成黑色,并将所述目标虚拟场景中位于所述投影区域的像素点渲染成黑色,其中,所述第一贴图文件还包括所述目标虚拟物体中的每个像素点的颜色值。
10.一种虚拟场景的渲染装置,其特征在于,包括:
获取模块,用于获取第一图片对应的第一贴图文件,其中,所述第一图片中显示有目标虚拟物体,所述第一贴图文件包括所述目标虚拟物体中的每个像素点的深度值;
第一确定模块,用于根据所述第一贴图文件中的所述每个像素点的深度值,确定第二图片对应的第二贴图文件,其中,所述第二图片是第一虚拟相机对目标虚拟光源照射的目标虚拟场景进行拍摄所得到的图片,所述第一虚拟相机位于所述目标虚拟光源所在的位置,所述目标虚拟场景中包括所述第一图片,所述第二贴图文件包括所述第二图片中的每个像素点的深度值;
第二确定模块,用于根据所述第二贴图文件中的深度值,确定所述目标虚拟场景中的所述目标虚拟物体的投影区域;
渲染模块,用于根据所述目标虚拟场景中的所述目标虚拟物体的投影区域,对所述目标虚拟场景进行渲染。
11.一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至9任一项中所述的方法。
12.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至9任一项中所述的方法。
CN202110673725.7A 2021-06-17 2021-06-17 虚拟场景的渲染和装置、存储介质及电子设备 Active CN113256781B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110673725.7A CN113256781B (zh) 2021-06-17 2021-06-17 虚拟场景的渲染和装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110673725.7A CN113256781B (zh) 2021-06-17 2021-06-17 虚拟场景的渲染和装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN113256781A CN113256781A (zh) 2021-08-13
CN113256781B true CN113256781B (zh) 2023-05-30

Family

ID=77188506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110673725.7A Active CN113256781B (zh) 2021-06-17 2021-06-17 虚拟场景的渲染和装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113256781B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113658316B (zh) * 2021-10-18 2022-03-08 北京市商汤科技开发有限公司 三维模型的渲染方法和装置、存储介质及计算机设备
CN116527863A (zh) * 2022-04-28 2023-08-01 腾讯科技(深圳)有限公司 基于虚拟现实的视频生成方法、装置、设备及介质
CN115830208B (zh) * 2023-01-09 2023-05-09 腾讯科技(深圳)有限公司 全局光照渲染方法、装置、计算机设备和存储介质
CN116109803B (zh) * 2023-04-13 2023-07-07 腾讯科技(深圳)有限公司 信息构建方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760024B1 (en) * 2000-07-19 2004-07-06 Pixar Method and apparatus for rendering shadows
US8379021B1 (en) * 2008-01-30 2013-02-19 Adobe Systems Incorporated System and methods for rendering height-field images with hard and soft shadows
CN105844695A (zh) * 2016-03-18 2016-08-10 山东大学 一种基于真实材质测量数据的光照建模方法
CN109448099A (zh) * 2018-09-21 2019-03-08 腾讯科技(深圳)有限公司 画面的渲染方法、装置、存储介质及电子装置
CN109993823A (zh) * 2019-04-11 2019-07-09 腾讯科技(深圳)有限公司 阴影渲染方法、装置、终端及存储介质
CN110009723A (zh) * 2019-03-25 2019-07-12 阿里巴巴集团控股有限公司 环境光源的重建方法及装置
CN211348988U (zh) * 2019-02-27 2020-08-25 丽水学院 一种三维建模图像拍摄装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6903741B2 (en) * 2001-12-13 2005-06-07 Crytek Gmbh Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760024B1 (en) * 2000-07-19 2004-07-06 Pixar Method and apparatus for rendering shadows
US8379021B1 (en) * 2008-01-30 2013-02-19 Adobe Systems Incorporated System and methods for rendering height-field images with hard and soft shadows
CN105844695A (zh) * 2016-03-18 2016-08-10 山东大学 一种基于真实材质测量数据的光照建模方法
CN109448099A (zh) * 2018-09-21 2019-03-08 腾讯科技(深圳)有限公司 画面的渲染方法、装置、存储介质及电子装置
CN211348988U (zh) * 2019-02-27 2020-08-25 丽水学院 一种三维建模图像拍摄装置
CN110009723A (zh) * 2019-03-25 2019-07-12 阿里巴巴集团控股有限公司 环境光源的重建方法及装置
CN109993823A (zh) * 2019-04-11 2019-07-09 腾讯科技(深圳)有限公司 阴影渲染方法、装置、终端及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
High Quality Shadows for Real-Time Crowds;G. Ryder;《The Eurographics Association 2006》;全文 *
Shadow Map阴影贴图技术之探 【转】;3D入魔;《https://www.cnblogs.com/mazhenyu/p/5015341.html》;全文 *
基于Cg高级着色器语言的阴影贴图的算法研究;盛玲;姜晓彤;;中国科技信息(15);全文 *

Also Published As

Publication number Publication date
CN113256781A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN113256781B (zh) 虚拟场景的渲染和装置、存储介质及电子设备
US10630956B2 (en) Image processing method and apparatus
US11410320B2 (en) Image processing method, apparatus, and storage medium
CN110163953B (zh) 三维人脸重建方法、装置、存储介质和电子装置
CN107993216B (zh) 一种图像融合方法及其设备、存储介质、终端
CN109474780B (zh) 一种用于图像处理的方法和装置
US9253415B2 (en) Simulating tracking shots from image sequences
CN108765270B (zh) 一种虚拟三维空间标签绑定方法及装置
US10872457B1 (en) Facial texture map generation using single color image and depth information
CN113724391A (zh) 三维模型构建方法、装置、电子设备和计算机可读介质
CN111405270A (zh) 基于3d实景克隆技术的vr沉浸式应用系统
US10354399B2 (en) Multi-view back-projection to a light-field
CN111242838B (zh) 模糊图像渲染方法和装置、存储介质及电子装置
CN102866871B (zh) 图像动态显示方法
CN109166176B (zh) 三维人脸图像的生成方法与装置
CN114241127A (zh) 全景图像生成方法、装置、电子设备和介质
KR20230022153A (ko) 소프트 레이어링 및 깊이 인식 복원을 사용한 단일 이미지 3d 사진
CN109064555B (zh) 3d建模的方法、装置和存储介质
CN111369612A (zh) 一种三维点云图像生成方法及设备
CN109800652A (zh) 文字翻译方法及装置
CN117523148B (zh) 虚拟ar的互动方法、系统、电子设备及存储介质
CN112634460B (zh) 基于Haar-like特征的户外全景图生成方法及装置
CN114615487B (zh) 一种三维模型的显示方法及设备
CN112354188B (zh) 虚拟道具的图像处理方法、装置、电子设备和存储介质
CN113298868B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40052200

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant