CN106780709B - 一种确定全局光照信息的方法及装置 - Google Patents
一种确定全局光照信息的方法及装置 Download PDFInfo
- Publication number
- CN106780709B CN106780709B CN201611110103.9A CN201611110103A CN106780709B CN 106780709 B CN106780709 B CN 106780709B CN 201611110103 A CN201611110103 A CN 201611110103A CN 106780709 B CN106780709 B CN 106780709B
- Authority
- CN
- China
- Prior art keywords
- pixel
- environment
- color
- ambient light
- target
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例公开了一种确定全局光照信息的方法,能够有效提高环境光信息的计算精度,从而模拟出更真实的全局光照效果,增强动态对象画面的真实度。本发明实施例方法包括:根据第一虚拟摄像机的位置设置目标对象的包围盒,所述第一虚拟摄像机用于追踪动态移动的所述目标对象,所述包围盒为能够将所述目标对象包围的空间多面体;确定所述包围盒各个面对应的环境贴图;根据所述环境贴图计算所述目标对象在屏幕空间中每个像素点对应的环境光颜色。本发明实施例还公开了一种计算装置,能够有效提高环境光信息的计算精度。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种确定全局光照信息的方法及装置。
背景技术
全局光照是计算机图形学中非常重要的研究领域,通过对大自然中光照情况的模拟,捕捉真实环境中光的多次传播(如,折射以及反射)所产生的软影、间接折射等光照效果,这些效果能够大大加强渲染结果的真实感。目前全局光照已经被广泛应用于动画、虚拟现实、游戏等领域中。
在动画、虚拟现实或者游戏等领域中,场景中除了静态对象(在场景中固定不动的物体或人物等)之外,还会包含有大量的动态对象(在场景中可以移动的物体或人物等)。对于静态对象而言,可以通过预计算生成光照贴图的方式,来实现全局光照;然而对于动态对象而言,由于其在场景中位置会不断发生变化,使得不同时刻动态对象受到的光照情况也会不断发生变化,特别是,在游戏或者虚拟现实等对实时性要求较高的领域中,动态对象会由于用户需求的不同,而使得移动位置产生不确定性,这样,就无法通过预先生成光照贴图的方式来确定动态对象在不同位置点的光照情况。
为了能够实时确定出动态对象在不同位置点的光照情况,目前一般将物体分为多个独立部件,以独立的立方体包围各个部件,根据环境光包围原理,基于立方体的各个面渲染部件,对各个部件添加环境光。
然而,这种基于包围盒对物体各个部件进行渲染的方式,将在同一个包围盒中的像素所受到的环境影响认为是相同,显然这种方式计算出来的环境光信息精度不高。
发明内容
本发明实施例提供了一种确定全局光照信息的方法,能够有效提高环境光信息的计算精度,从而模拟出更真实的全局光照效果,增强动态对象画面的真实度。
有鉴于此,本发明实施例的第一方面提供了一种定全局光照信息的方法,包括:
根据第一虚拟摄像机的位置设置目标对象的包围盒,第一虚拟摄像机用于追踪动态移动的目标对象,包围盒为能够将目标对象包围的空间多面体;
确定包围盒各个面对应的环境贴图;
根据环境贴图计算目标对象在屏幕空间中每个像素点对应的环境光颜色。
本发明实施例第二方面提供了一种计算装置,该装置包括:
设置模块,用于根据第一虚拟摄像机的位置设置目标对象的包围盒,所述第一虚拟摄像机用于追踪动态移动的所述目标对象,所述包围盒为能够将目标对象包围的空间多面体;
确定模块,用于确定设置模块确定的包围盒各个面对应的环境贴图;
计算模块,用于根据确定模块确定的环境贴图计算目标对象在屏幕空间中每个像素点对应的环境光颜色。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,计算装置根据第一虚拟摄像机的位置设置目标对象的包围盒,确定包围盒中各个面对应的环境贴图,根据环境贴图计算目标对象在屏幕空间中每个像素点对应的环境光颜色。可见,本方案是基于物体的每个像素点来计算环境光的颜色,能够有效提高环境光信息的计算精度,从而模拟出更真实的全局光照效果,增强动态对象画面的真实度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1是本发明实施例中计算机设备的一个实施例示意图;
图2是本发明实施例中确定全局光照信息的系统的一个实施例示意图;
图3是本发明实施例中确定全局光照信息的方法的一个实施例流程图;
图4是本发明实施例中第一虚拟摄像机的位置的一个示意图;
图5是本发明实施例中包装盒的一个示意图;
图6是本发明实施例中原始环境贴图的一个示意图;
图7是本发明实施例中环境贴图的一个示意图;
图8是本发明实施例中法线贴图的一个示意图;
图9是本发明实施例中法线贴图的像素点的一个示意图;
图10是本发明实施例中法线贴图的像素点的另一个示意图;
图11是本发明实施例中4*4个格子的示意图;
图12是本发明实施例中计算装置的一个实施例示意图;
图13是本发明实施例中计算装置的另一实施例示意图;
图14是本发明实施例中计算装置的另一实施例示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本实施例的方法和装置适用于任意计算机设备中,如,该计算机设备可以是向外提供游戏服务或者虚拟现实服务的服务器,或者是其他具备图形数据处理能力的设备。
如图1,其示出了本申请实施例的模拟场景中全局光照的方法和装置所适用的计算机设备的一种组成结构示意图。在图1中,该计算机设备可以包括:处理器101、存储器102、通信接口103、显示器104、输入单元105和通信总线106。
处理器101、存储器102、通信接口103、显示器104、输入单元105均通过通信总线106完成相互间的通信。
在本申请实施例中,该处理器101至少包括:图形处理器(GPU,GraphicsProcessing Unit)1012,GPU可以用于实现本申请实施例中模拟摄像机摄取三维场景空间中场景图像、图像渲染、计算环境光信息等相关的图形数据处理。
可选的,该处理器101中可以包括中央处理器(CPU,Central Processing Unit)1011,以辅助图形处理器完成一些相关的数据处理,可以实现该计算机设备主要的数据处理操作,当然,该中央处理器还可以被替换为特定应用集成电路(application-specificintegrated circuit,ASIC),数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件等。
存储器102中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令。该存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
该通信接口103可以为通信模块的接口,如GSM模块的接口。
该显示器104可用于显示三维场景空间中所涉及到的对象以及其他图像信息;还可以显示由用户输入的信息,或者提供给用户的信息,以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图片等任意组合来构成。该显示器可以包括显示面板,如,可以为采用液晶显示器、有机发光二极管等形式来配置的显示面板。进一步的,该显示器可以包括具备采集触摸事件的触摸显示面板。
该输入单元105可用于接收输入的用户输入的字符、数字等信息,以及产生与用户设置以及功能控制有关的信号输入。该输入单元可以包括但不限于物理键盘、鼠标、操作杆等中的一种或多种。
当然,图1所示的计算机设备结构并不构成对计算机设备的限定,在实际应用中计算机设备可以包括比图1所示的更多或更少的部件,或者组合某些部件。
为了便于理解本申请的方案,下面对本申请的方案所适用的场景进行简单介绍,参见图2,其示出了本申请一种模拟场景中全局光照的方法所适用的一种系统组成结构示意图。
如图2所示,该系统可以包括由至少一台服务器201组成的服务系统,以及多台终端202。
其中,服务系统中的服务器201中可以存储用于实现游戏或者虚拟现实等功能的场景数据,并在终端请求场景数据时,将场景数据传输给终端。
该终端202用于展现服务器返回的场景数据所对应的场景,并根据用户的操作,向服务器发送更新该场景中动态对象位置的更新请求。
该服务系统中的服务器201还用于响应于终端的更新请求,更新该场景中该动态对象的位置,并将更新后的场景所对应的场景数据发送给终端。
如,游戏玩家可以通过终端向服务器请求游戏数据,终端可以基于服务器返回的游戏数据,展现游戏画面,如果终端检测到游戏玩家发出移动游戏画面中某个游戏对象的操作指令时,就会向服务器发送位置更新请求。服务器响应于该终端的位置更新请求,对游戏画面中该游戏对象的位置进行更新,并将更新后的游戏画面同步给该游戏玩家或者与该游戏玩家进行游戏竞技的所有游戏玩家。
进一步的,在本申请实施例中,服务器还用于在接收到请求对动态对象位置进行更新的更新请求时,或者需要更新场景中待展现的一帧画面时,还可以根据场景中动态对象所需呈现的目标位置,以及预置的场景中不同空间位置点处的环境光颜色信息,确定该动态对象的全局光照效果,并向终端返回场景对应的图像数据时,将反映该动态对象的全局光照效果的光照数据也发送给终端,以使得终端上可以呈现出动态对象的全局光照效果。
基于以上本实施例的共性,对本申请实施例的模拟场景中全局光照的方法进行详细介绍。如图3,其示出了本申请一种模拟场景中全局光照的方法一个实施例的流程示意图,本实施例的方法可以应用于前面所提到的计算机设备。本实施例的方法可以包括:
为了便于理解本申请的方案,下面对本申请的方案所涉及的一些术语进行简单介绍:
虚拟摄像机:在计算机设备制作的数字影像中,是没有真实的摄像机的,故这里把计算机设备的应用程序中摄像机称之为虚拟摄像机,虚拟摄像机就是在软件中对实体摄像机的还原,能够实时摄取三维虚拟场景中的图像,并将这些图像同步显示在显示设备中。而虚拟摄像机的镜头尺寸,画幅大小,景深,拍摄角度,是否追踪物体等属性,均可由用户在构建摄像机时自由设置;
法线贴图:是在物体的凹凸表面的每个点上均作法线,通过RGB颜色通道来标记法线的方向,可以理解成与原凹凸表面平行的另一个不同的表面,但实际上它又只是一个光滑的平面。法线贴图作为凹凸纹理的扩展,能够使每个平面的各像素拥有高度值,包含了许多细节的表面信息,能够创建出许多种特殊的立体视觉效果。法线贴图是一种二维的效果,不会改变模型的形状,但是它计算了轮廓线以内的极大的额外细节。
半球着色模型:基于物理着色(Physically Based Shading)就是计算机图形学中用数学建模的方式模拟物体表面各种材质散射光线的属性从而渲染照片真实图片的技术。而本发明实施例中半球着色模型指是通过数学建模的方式将三维空间中任意一个点模拟成一个半球,这个半球在三维空间中接收到的光就是这个点所接收到的光,本发明实施例中将这个半球称为半球着色模型。
环境贴图:许多物体都具有部分的镜面效果,如金属,崭新的车辆等。它们实际上是反射了周围环境的颜色,这种效果便是通过反射环境贴图的颜色实现的。
下面先介绍本发明实施例中确定全局光照信息的方法,请参阅图3,本发明实施例中确定全局光照信息的方法的一个实施例包括:
301、根据第一虚拟摄像机的位置设置目标对象的包围盒;
在游戏、虚拟现实等领域,构建出的包含有多个静态对象和动态对象的场景实际都上是一个三维场景空间。当需要计算该三维场景空间中的环境光信息时,首先确定目标对象,本发明实施例中目标对象指的是一个或多个三维场景空间中的动态对象。确定目标对象后,根据第一虚拟摄像机的位置设置该目标对象的包围盒。
本发明实施例中第一虚拟摄像机指的是用于追踪该目标对象动态移动的摄像机,而第一虚拟摄像机与目标对象之间的距离是预先设置好的,由于第一虚拟摄像机会追踪动态移动的目标对象,即第一摄像机能够随着目标对象的移动而移动,所以这里第一摄像机的位置并不是固定的,会随着目标对象的移动而改变。
本发明实施例中包围盒指的是能够将该目标对象包围的空间多面体,应理解,该包围盒不是呈现在该三维场景中的物体,而是一个抽象的物体。包围盒需要将目标对象包围在多面体的内部,其大小由目标对象的体积决定,其形状一般采用六面体,当然也可以是其他形状,此处不作限定。
302、确定包围盒各个面对应的环境贴图;
计算装置设置包围盒后,确定该包围盒各个面对应的环境贴图。本发明实施例中基于包围盒获取目标对象周围的环境图像,即环境贴图是用于反映包围盒中的物体(目标对象)的周围环境的二维图像。
303、根据该环境贴图计算目标对象在屏幕空间中每个像素点对应的环境光颜色。
计算装置获取环境贴图后,根据该环境贴图计算目标对象在屏幕空间中每个像素点对应的环境光颜色。屏幕空间指的是将三维空间的物体投影到二维的胶片屏幕上,显示出来,物体被离散成相片上一个一个的像素点,这个二维的相片存在的就是屏幕空间。
本发明实施例中,计算装置根据第一虚拟摄像机的位置设置目标对象的包围盒,确定包围盒中各个面对应的环境贴图,根据环境贴图计算目标对象在屏幕空间中每个像素点对应的环境光颜色。可见,本方案是基于物体的每个像素点来计算环境光的颜色,能够有效提高环境光信息的计算精度,从而模拟出更真实的全局光照效果,增强动态对象画面的真实度。
基于上述图3对应的实施例,在本发明实施例的另一实施例中,计算装置可以通过如下方式确定包围盒各个面对应的环境贴图:
1、将包围盒的中心作为第二虚拟摄像机的位置;
计算装置确定包围盒后,在该包围盒的中心设置虚拟摄像机,为了与前述用于追求目标对象的摄像机进行区分,将这个虚拟摄像机称为第二虚拟摄像机,包围盒的中心即第二虚拟摄像机的拍摄位置。
2、将第二虚拟摄像机分别朝向包围盒各个面的中心进行图像摄取,得到各个面对应的原始环境贴图;
设置第二虚拟摄像机后,将第二虚拟摄像机分别朝向包围盒的各个面的中心进行图像摄取,得到各个面对应的原始环境贴图。具体地,包围盒是一个多面体,将第二虚拟摄像机的镜头中心分别对准这个多面体各个面的中心,对视野内的画面进行渲染得到这个多面体对应的多幅纹理贴图,这里为了便于区分,将第二虚拟摄像机渲染得到的纹理贴图称为原始环境贴图。原始环境贴图的大小不用太大,一般为256*256即可,当然也可以是其他尺寸,具体此处不作限定。
需要说明的是,本发明实施例中纹理贴图中的纹理是一种三维纹理,纹理坐标是三维的。如立方体对应的纹理贴图,其纹理坐标的实质是一个由立方体中心发出的向量,该向量会与四周的六个贴图之一相交,交点即为对应的纹素。从本质上讲,立方体的纹理贴图是六幅二维纹理图像构成一个以原点为中心的纹理立方体,比如说,对于坐标(-3,-2,1),由于x坐标绝对值最大,因此向量指向-x方向的那个贴图。y和z坐标转换到(0,1)后,即是-x方向上的二维纹理的坐标值。
3、针对每个原始环境贴图,逐步缩小该原始环境贴图,并将该原始环境贴图中每个像素点的颜色平均化,直至得到预置格式的环境贴图。
得到各个面对应的原始环境贴图后,针对每个原始环境贴图,逐步缩小该原始环境贴图,并将该原始环境贴图中每个像素点的颜色平均化,直至得到预置格式的环境贴图。具体地,可以通过高斯过滤器对像素点的颜色平均化,还可以通过其他方式,此处不作限定。预置格式为32*32像素或其他尺寸,具体此处不作限定。
本发明实施例提供了一种确定包围盒各个面对应的环境贴图的具体方式,提高了方案的可实现性。
基于上述图3对应的任意一个实施例,在本发明实施例的另一实施例中,计算装置可以通过如下方式计算目标对象在屏幕空间中每个像素点对应的环境光颜色:
1、基于第一虚拟摄像机对目标对象进行渲染得到目标对象对应的法线贴图;
基于第一虚拟摄像机获取到的画面,对目标对象表面的每个点上均作法线,并通过RGB颜色通道来标记法线的方向得到目标对象对应的法线贴图。
2、针对法线贴图中每个像素点,模拟该像素点在三维空间中接收到的环境光,并确定环境贴图中提供该环境光的目标环境像素点;
得到目标对象的法线贴图后,针对法线贴图中的每个像素点,模拟该像素点在三维场景空间中接收到的环境光,并根据模拟出来的结果确定环境贴图中提供这些环境光的目标环境像素点。具体地,计算装置可以通过如下方式模拟像素点在三维空间中接收的环境光:
(1)确定像素点在三维空间中对应的半球着色模型;
法线贴图是基于目标对象的凹凸表面的每个点处理得到的,故法线贴图中的像素点对应于三维空间中目标对象表面的点,基于物理着色原理可以将三维空间中的点模拟成一个半球,这个半球接收到的光就是这个点接收到的光,这个半球就是像素点对应的半球着色模型。
(2)以多个格子包围该半球着色模型,将同一个格子接收到的环境光确定为同一个方向的环境光,根据该格子的数量以及球面数学公式确定每个格子对应的环境光方向;
每个像素点理论上在对应半球的方向上会受到无穷个环境光的影响,这里需要将其离散化为有限个采样点。具体地,可以以N*N个格子包围像素点对应的半球着色模型,将同一个格子接收到的环境光确定为同一个方向的环境光,即每个格子接收一个方向的环境光,根据N的值和球面数学公式计算出每个格子接收的环境光的方向,即确定每个格子对应的环境光方向。需要说明的是,N的值可以由用户自定义,N越大计算精度越高,但计算速度越低。
(3)针对每个格子,确定在该包围盒中沿着该环境光方向指向该格子的中心的目标环境像素点。
确定每个格子对应的环境光方向后,根据环境光方向在环境贴图中找到提供这个环境光的像素点,即目标环境像素点。具体地,以格子的中心为向量的起点,沿着与这个格子对应的环境光方向相反的方向,这个向量会与包围盒的其中一个面相交,这个交点在这个面的环境贴图中对应的像素点就是目标环境像素点,也就是提供这个格子接收到的环境光的像素点,它沿着环境光方向指向这个格子的中心。
3、根据目标环境像素点的像素颜色计算像素点对应的环境光颜色。
确定每个格子对应的目标环境像素点后,根据目标环境像素点的像素颜色计算出法线贴图中各个像素点对应的环境光颜色。由上述可知,法线贴图中的一个像素点对应目标环境像素点的数量等于预设的格子数量,要计算法线贴图的像素点对应的环境光颜色,需要先计算出这个像素点对应的每个目标环境像素点为这个像素点提供的环境光颜色,为了便于描述,下面将要计算的这个像素点称为目标像素点。
计算装置可以通过如下方式计算目标像素点对应的每个目标环境像素点提供的环境光颜色:对于任意一个目标环境像素点,将这个目标环境像素点的像素颜色乘以第一单位矢量点乘第二单位矢量,其中第一单位矢量的方向为目标环境像素点对应的环境光方向,第二单位矢量的方向为目标像素点的法线方向。为了便于描述,将每个目标环境像素点对应的环境光颜色称为渲染颜色。
计算装置计算出目标像素点对应的每个环境像素点对应的渲染颜色后,将每个目标环境像素点对应的渲染颜色乘以该渲染颜色对应的颜色权重,再对各个乘积求和即得到目标像素点对应的环境光颜色。其中渲染颜色对应的颜色权重由目标像素点对应的目标像素点的数量(即预置格子的数量)得到,每种渲染颜色的权重之和为1。应理解,由于计算装置每次渲染时对纹理采样的次数是有限制的,所以如果预设的格子数量过多,即计算装置无法一次性将目标像素点对应的目标环境像素点采集完,也无法一次性计算出目标像素点对应的环境光颜色。这种情况计算装置可以分多次采集目标像素点对应的目标环境像素点,并基于单次采集到的目标环境像素点提供的环境光颜色对目标像素点进行渲染,最终将每次渲染结果进行叠加就可以得到最终目标像素点对应的环境光颜色。
本发明实施例提供了一种计算目标对象在屏幕空间中每个像素点对应的环境光颜色的方式,提高了方案的可实现性。
其次,本发明实施例计算装置还可以以多个格子模拟法线贴图中的像素点接收到的环境光,计算装置可以通过对格子数量的设置决定环境光的采样密度,能够实时实现计算精度和速度的平衡,提高了方案的灵活性。
基于上述图3对应的任意一个实施例,在本发明实施例的另一实施例中,计算装置计算出目标对象在屏幕空间中每个像素点对应的环境光颜色后,将每个像素点的场景颜色加上所述环境光颜色就能得到目标对象在全局光照下的最终颜色。这里所说的每个像素点的场景颜色,就是基于第一虚拟摄像机对目标对象进行正常渲染得到的像素颜色。
本发明实施例中计算装置计算出环境光颜色后,可以根据环境光颜色模拟出全局光照的效果,提高了方案的灵活性。
为了便于理解,下面以一实际应用场景对本发明实施例中确定全局光照信息的方法进行介绍:
第一虚拟摄像机与目标对象的距离及拍摄方向如图4所示,其中圆柱体代表目标对象,该目标对象可以是图5所示的可动态移动的机器人,也可以是其他动态对象,基于图4中第一虚拟摄像机的位置,设置一个能将目标对象包围在内部的立方体(包围盒),具体可以参见图4或图5中的立方体。
计算装置在立方体的中心设置一个虚拟摄像机(第二虚拟摄像机),将第二虚拟摄像机分别朝向立方体的六个面的中心进行图像摄取,得到六幅尺寸为256*256像素的二维纹理贴图(原始环境贴图),这六幅二维纹理贴图也称为立方贴图,具体如图6所示。
逐步缩小这六幅纹理贴图,并分别用高速过滤器将这六幅纹理贴图的像素颜色平均化,最后得到六幅尺寸为32*32像素(预置格式)的纹理贴图(环境贴图),处理过程如图7所示。
基于第一虚拟摄像机获取到的画面,在目标对象表面的每个点上均作法线,并通过RGB颜色通道标记法线的方向得到目标对象对应的法线贴图,法线贴图的效果参见图8,图8为以茶壶为目标对象进行渲染得到的法线贴图。
渲染得到目标对象的法线贴图后,将法线贴图中的每个像素点作为一个着色点,如图9所示,每个着色点会接收到由立方贴图对应的像素提供的多个环境光,图9中的半圆对应被渲染的目标对象,即目标对象,图9中的摄像机指的是第一虚拟摄像机。基于物理着色原理,针对每个着色点,抽象出它在三维空间中对应的半球,这个半球接收到的环境光,就是它在三维空间中接收到的环境光,如图10所示,图10中的半圆对应该着色点对应的半球模型。每个着色点理论上在半球的方向上收到无穷个环境光影响,为了将这无穷个环境光离散化为有限个采样点,以4*4的格子来模拟着色点在半球上的环境光个数,如图11所示,将每个格子接收到的环境光确定为一个方向的环境光,也就是说每个格子仅接收到一个方向的环境光,根据格子的数量和球面数学公式确定出每个格子对应的环境光方向。
确定每个格子对应的环境光方向后,根据环境光方向在环境贴图中找到提供这些环境光的像素点,如图11所示的箭头,沿着格子对应箭头的反方向找到该向量与包围盒的其中一个面的交点,这个交点在相交面的环境贴图中对应的像素点就是这个格子对应的目标环境像素点。按照前述方式确定出16个目标环境像素点后,针对这16个目标环境像素点,如图10所示,将目标环境像素点的环境光方向上的单位矢量(第一单位矢量)点乘这4*4格子所模拟的着色点的法线方向上的单位矢量(第二单位矢量),再将点积与这个目标环境像素点的像素颜色相乘得到这个目标环境像素点的渲染颜色,也就是这个目标环境像素点提供的环境光颜色。计算得出16个目标环境像素点对应的渲染颜色后,分别将这16个目标环境像素点的渲染颜色与其渲染颜色对应的颜色权重相乘,再将相乘得出的16个积相加,即得到这个4*4格子所模拟的着色点对应的环境光颜色。
通过上述方式,计算装置计算出法线贴图上每个着色点对应的环境光颜色,即为目标对象在屏幕空间中每个像素点对应的环境光颜色。最后将目标对象在屏幕空间中每个像素点对应的环境光颜色,与目标对象在屏幕空间中正常渲染得到的每个像素点对应的像素颜色进行叠加,即为目标对象在屏幕空间中最终呈现的颜色,即目标对象在全局光照下的效果。
上面介绍了本发明实施例中确定全局光照信息的方法,下面介绍本发明实施例中的计算装置,请参阅图12,本发明实施例中计算装置的一个实施例包括:
设置模块1201,用于根据第一虚拟摄像机的位置设置目标对象的包围盒,第一虚拟摄像机用于追踪动态移动的目标对象,包围盒为能够将目标对象包围的空间多面体;
确定模块1202,用于确定设置模块1201确定的包围盒各个面对应的环境贴图;
计算模块1203,用于根据确定模块1202确定的环境贴图计算目标对象在屏幕空间中每个像素点对应的环境光颜色。
本发明实施例中,计算装置根据第一虚拟摄像机的位置设置目标对象的包围盒,确定包围盒中各个面对应的环境贴图,根据环境贴图计算目标对象在屏幕空间中每个像素点对应的环境光颜色。可见,本方案是基于物体的每个像素点来计算环境光的颜色,能够有效提高环境光信息的计算精度,从而模拟出更真实的全局光照效果,增强动态对象画面的真实度。
在上述图12对应的实施例的基础上,请参阅图13,在本发明实施例提供的计算装置的另一实施例中,确定模块1202包括:
第一确定单元12021,用于将包围盒的中心作为第二虚拟摄像机的位置;
获取单元12022,用于将第一确定单元确定的第二虚拟摄像机分别朝向包围盒各个面的中心进行图像摄取,得到各个面对应的原始环境贴图;
处理单元12023,用于针对每个获取单元得到的原始环境贴图,逐步缩小原始环境贴图,并将原始环境贴图中每个环境像素点的像素颜色平均化,直至得到预置格式的环境贴图。
本发明实施例提供了一种确定模块1202确定环境贴图的具体方式,提高了方案的可实现性。
在上述图12或图13对应的实施例的基础上,请参阅图14,在本发明实施例提供的计算装置的另一实施例中,计算模块1203包括:
渲染单元12031,用于基于第一虚拟摄像机对目标对象进行渲染得到目标对象对应的法线贴图;
第二确定单元12032,用于针对渲染单元得到的法线贴图中每个像素点,模拟像素点在三维空间中接收的环境光,并确定环境贴图中提供环境光的目标环境像素点;
计算单元12033,用于根据第二确定单元确定的目标环境像素点的像素颜色计算每个像素点对应的环境光颜色。
可选地,在本发明实施例中第二确定单元12032可以包括:
第一确定子单元120321,用于确定像素点在三维空间中对应的半球着色模型;
第二确定子单元120322,用于以多个格子包围半球着色模型,将同一个格子接收到的环境光确定为同一个方向的环境光,根据格子的数量以及球面数学公式确定每个格子对应的环境光方向;
第三确定子单元120323,用于针对每个格子,确定在包围盒中沿着环境光方向指向格子的中心的目标环境像素点。
可选地,在本发明实施例中计算单元12033可以包括:
第一计算子单元120331,用于针对每个目标环境像素点,将所述目标环境像素点的像素颜色乘以第一单位矢量点乘第二单位矢量,得到所述目标环境像素点对应的渲染颜色,所述第一单位矢量的方向为所述目标环境像素点对应的环境光方向,所述第二单位矢量的方向为所述像素点的法线方向;
第二计算子单元120332,用于将每个目标环境像素点对应的渲染颜色,乘以所述渲染颜色对应的颜色权重,再对各个乘积求和得到所述像素点对应的环境光颜色。
本发明实施例提供了一种计算模块1203计算目标对象在屏幕空间中每个像素点对应的环境光颜色的方式,提高了方案的可实现性。
其次,本发明实施例中,计算模块1203还可以以多个格子模拟法线贴图中的像素点接收到的环境光,可以通过对格子数量的设置决定环境光的采样密度,能够实时实现计算精度和速度的平衡,提高了方案的灵活性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种确定全局光照信息的方法,其特征在于,包括:
根据第一虚拟摄像机的位置设置目标对象的包围盒,所述第一虚拟摄像机用于追踪动态移动的所述目标对象,所述包围盒为能够将所述目标对象包围的空间多面体;
确定所述包围盒各个面对应的环境贴图;
根据所述环境贴图计算所述目标对象在屏幕空间中每个像素点对应的环境光颜色。
2.根据权利要求1所述的方法,其特征在于,所述确定所述包围盒各个面对应的环境贴图包括:
将所述包围盒的中心作为第二虚拟摄像机的位置;
将所述第二虚拟摄像机分别朝向所述包围盒各个面的中心进行图像摄取,得到各个面对应的原始环境贴图;
针对每个原始环境贴图,逐步缩小所述原始环境贴图,并将所述原始环境贴图中每个环境像素点的像素颜色平均化,直至得到预置格式的环境贴图。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述环境贴图计算所述目标对象在屏幕空间中每个像素点对应的环境光颜色包括:
基于所述第一虚拟摄像机对所述目标对象进行渲染得到所述目标对象对应的法线贴图;
针对所述法线贴图中每个像素点,模拟所述像素点在三维空间中接收的环境光,并确定所述环境贴图中提供所述环境光的目标环境像素点;
根据所述目标环境像素点的像素颜色计算所述像素点对应的环境光颜色。
4.根据权利要求3所述的方法,其特征在于,所述模拟所述像素点在三维空间中接收的环境光,并确定所述环境贴图中提供所述环境光的目标环境像素点包括:
确定所述像素点在所述三维空间中对应的半球着色模型;
以多个格子包围所述半球着色模型,将同一个格子接收到的环境光确定为同一个方向的环境光,根据所述格子的数量以及球面数学公式确定每个格子对应的环境光方向;
针对每个格子,确定在所述包围盒中沿着所述环境光方向指向所述格子的中心的目标环境像素点。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标环境像素点的像素颜色计算所述像素点对应的环境光颜色包括:
针对每个目标环境像素点,将第一单位矢量与第二单位矢量的点积乘以所述目标环境像素点的像素颜色,得到所述目标环境像素点对应的渲染颜色,所述第一单位矢量的方向为所述目标环境像素点对应的环境光方向,所述第二单位矢量的方向为所述像素点的法线方向;
将每个目标环境像素点对应的渲染颜色,乘以所述渲染颜色对应的颜色权重,再对各个乘积求和得到所述像素点对应的环境光颜色。
6.一种计算装置,其特征在于,包括:
设置模块,用于根据第一虚拟摄像机的位置设置目标对象的包围盒,所述第一虚拟摄像机用于追踪动态移动的所述目标对象,所述包围盒为能够将所述目标对象包围的空间多面体;
确定模块,用于确定所述设置模块确定的所述包围盒各个面对应的环境贴图;
计算模块,用于根据所述确定模块确定的所述环境贴图计算所述目标对象在屏幕空间中每个像素点对应的环境光颜色。
7.根据权利要求6所述的装置,其特征在于,所述确定模块包括:
第一确定单元,用于将所述包围盒的中心作为第二虚拟摄像机的位置;
获取单元,用于将所述第一确定单元确定的所述第二虚拟摄像机分别朝向所述包围盒各个面的中心进行图像摄取,得到各个面对应的原始环境贴图;
处理单元,用于针对每个所述获取单元得到的原始环境贴图,逐步缩小所述原始环境贴图,并将所述原始环境贴图中每个环境像素点的像素颜色平均化,直至得到预置格式的环境贴图。
8.根据权利要求6或7所述的装置,其特征在于,计算模块包括:
渲染单元,用于基于所述第一虚拟摄像机对所述目标对象进行渲染得到所述目标对象对应的法线贴图;
第二确定单元,用于针对所述渲染单元得到的所述法线贴图中每个像素点,模拟所述像素点在三维空间中接收的环境光,并确定所述环境贴图中提供所述环境光的目标环境像素点;
计算单元,用于根据所述第二确定单元确定的所述目标环境像素点的像素颜色计算所述像素点对应的环境光颜色。
9.根据权利要求8所述的装置,其特征在于,所述第二确定单元包括:
第一确定子单元,用于确定所述像素点在所述三维空间中对应的半球着色模型;
第二确定子单元,用于以多个格子包围所述半球着色模型,将同一个格子接收到的环境光确定为同一个方向的环境光,根据所述格子的数量以及球面数学公式确定每个格子对应的环境光方向;
第三确定子单元,用于针对每个格子,确定在所述包围盒中沿着所述环境光方向指向所述格子的中心的目标环境像素点。
10.根据权利要求9所述的装置,其特征在于,所述计算单元包括:
第一计算子单元,用于针对每个目标环境像素点,将第一单位矢量与第二单位矢量的点积乘以所述目标环境像素点的像素颜色,得到所述目标环境像素点对应的渲染颜色,所述第一单位矢量的方向为所述目标环境像素点对应的环境光方向,所述第二单位矢量的方向为所述像素点的法线方向;
第二计算子单元,用于将每个目标环境像素点对应的渲染颜色,乘以所述渲染颜色对应的颜色权重,再对各个乘积求和得到所述像素点对应的环境光颜色。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611110103.9A CN106780709B (zh) | 2016-12-02 | 2016-12-02 | 一种确定全局光照信息的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611110103.9A CN106780709B (zh) | 2016-12-02 | 2016-12-02 | 一种确定全局光照信息的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106780709A CN106780709A (zh) | 2017-05-31 |
CN106780709B true CN106780709B (zh) | 2018-09-07 |
Family
ID=58878342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611110103.9A Active CN106780709B (zh) | 2016-12-02 | 2016-12-02 | 一种确定全局光照信息的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106780709B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090945B (zh) * | 2017-11-03 | 2019-08-02 | 腾讯科技(深圳)有限公司 | 对象渲染方法和装置、存储介质及电子装置 |
CN108022285B (zh) * | 2017-11-30 | 2021-04-20 | 杭州电魂网络科技股份有限公司 | 地图渲染方法及装置 |
CN108447112A (zh) * | 2018-01-24 | 2018-08-24 | 重庆爱奇艺智能科技有限公司 | 角色灯光环境的模拟方法、装置及vr设备 |
CN108492353B (zh) * | 2018-02-02 | 2021-12-31 | 珠海金山网络游戏科技有限公司 | 一种全局环境球的绘制方法和系统 |
CN108520551B (zh) * | 2018-03-30 | 2022-02-22 | 苏州蜗牛数字科技股份有限公司 | 实现光贴图动态光照的方法、存储介质及计算设备 |
CN108830923B (zh) * | 2018-06-08 | 2022-06-17 | 网易(杭州)网络有限公司 | 图像渲染方法、装置及存储介质 |
CN109410300A (zh) * | 2018-10-10 | 2019-03-01 | 苏州好玩友网络科技有限公司 | 一种游戏场景中的阴影处理方法及装置及终端设备 |
CN111402348B (zh) * | 2019-01-03 | 2023-06-09 | 百度在线网络技术(北京)有限公司 | 光照效果的形成方法、装置和渲染引擎 |
CN110585713B (zh) * | 2019-09-06 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 游戏场景的阴影实现方法、装置、电子设备及可读介质 |
CN110728741B (zh) * | 2019-10-11 | 2022-08-23 | 长春理工大学 | 基于多细节层次模型的面光源照射三维场景画面渲染方法 |
CN111008416B (zh) * | 2019-11-12 | 2022-07-08 | 江苏艾佳家居用品有限公司 | 一种户型场景光照效果生成方法及系统 |
CN112090084B (zh) * | 2020-11-23 | 2021-02-09 | 成都完美时空网络技术有限公司 | 对象的渲染方法和装置、存储介质和电子设备 |
CN112562053B (zh) * | 2020-12-09 | 2022-11-08 | 贝壳技术有限公司 | 一种pbr材质贴图生成方法及装置 |
CN112604278B (zh) * | 2020-12-29 | 2021-09-17 | 广州银汉科技有限公司 | 一种基于游戏在智能设备模拟全局光照的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8259110B1 (en) * | 2007-11-12 | 2012-09-04 | Adobe Systems Incorporated | Method and apparatus for computing direct lighting for global illumination rendering in 3-D computer graphics |
CN101615300B (zh) * | 2009-07-02 | 2011-12-07 | 北京航空航天大学 | 一种屏幕空间微结构表面对象环境光遮挡方法 |
US20140327673A1 (en) * | 2013-05-03 | 2014-11-06 | Crytek Gmbh | Real-time global illumination using pre-computed photon paths |
CN104517313B (zh) * | 2014-10-10 | 2017-12-05 | 无锡梵天信息技术股份有限公司 | 基于屏幕空间的环境光遮蔽的方法 |
CN104484896B (zh) * | 2014-10-30 | 2018-01-16 | 无锡梵天信息技术股份有限公司 | 一种基于环境贴图来模拟人物皮肤次表面散射的物理方法 |
CN104463959A (zh) * | 2014-11-25 | 2015-03-25 | 无锡梵天信息技术股份有限公司 | 一种生成立方体环境贴图的方法 |
-
2016
- 2016-12-02 CN CN201611110103.9A patent/CN106780709B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106780709A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106780709B (zh) | 一种确定全局光照信息的方法及装置 | |
US11069124B2 (en) | Systems and methods for reducing rendering latency | |
US7554540B2 (en) | System and method of visible surface determination in computer graphics using interval analysis | |
CN106780707B (zh) | 模拟场景中全局光照的方法和装置 | |
US8072456B2 (en) | System and method for image-based rendering with object proxies | |
US20130257856A1 (en) | Determining a View of an Object in a Three-Dimensional Image Viewer | |
US10325403B2 (en) | Image based rendering techniques for virtual reality | |
US8698799B2 (en) | Method and apparatus for rendering graphics using soft occlusion | |
US20230078932A1 (en) | Displaced Micro-meshes for Ray and Path Tracing | |
CN110709893B (zh) | 高品质分层深度图像纹理光栅化方法 | |
JP2012190428A (ja) | 立体映像視覚効果処理方法 | |
CN111161398A (zh) | 一种图像生成方法、装置、设备及存储介质 | |
US20090284524A1 (en) | Optimized Graphical Calculation Performance by Removing Divide Requirements | |
CN108230430B (zh) | 云层遮罩图的处理方法及装置 | |
CN106530384B (zh) | 一种三维模型的外观纹理合成方法及装置 | |
KR100693134B1 (ko) | 3차원 이미지 처리 | |
JP7368950B2 (ja) | 効率的な建物フットプリント特定のための方法及び装置 | |
CN111625093B (zh) | 一种海量数字点云数据在mr眼镜中的动态调度显示方法 | |
Hempe et al. | Efficient real-time generation and rendering of interactive grass and shrubs for large sceneries | |
CN117830587A (zh) | 地图标注的绘制方法、装置、计算机设备和存储介质 | |
CN117994412A (zh) | 一种三维场景的构建方法及相关装置 | |
Anderson | 3d engine for immersive virtual environments | |
McRoberts | Real-time rendering of synthetic terrain | |
Al Hassanat | A Lightweight, Cross-Platform System for an Immersive Experience in Virtual Exploration of Remote Environments | |
Penick | VFire: Virtual fire in realistic environments. A framework for wildfire visualization in immersive environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |