模拟全局光照的方法和装置与流程

文档序号:12127725阅读:234来源:国知局
模拟全局光照的方法和装置与流程

本申请涉及图像处理技术领域,尤其涉及一种模拟全局光照的方法和装置。



背景技术:

全局光照是计算机图形学中非常重要的研究领域,通过对大自然中光照情况的模拟,捕捉真实环境中光的多次传播(如,折射以及反射)所产生的软影、间接折射等光照效果,这些效果能够大大加强渲染结果的真实感。目前全局光照已经被广泛应用于动画、虚拟现实、游戏等领域中。

在动画、虚拟现实或者游戏等领域中,场景中除了静态对象(在场景中固定不动的物体或人物等)之外,还会包含有大量的动态对象(在场景中可以移动的物体或人物等)。对于静态对象而言,可以通过预计算生成光照贴图的方式,来实现全局光照;然而对于动态对象而言,由于其在场景中位置会不断发生变化,使得不同时刻动态对象受到的光照情况也会不断发生变化,特别是,在游戏或者虚拟现实等对实时性要求较高的领域中,动态对象会由于用户需求的不同,而使得移动位置产生不确定性,这样,就无法通过预先生成光照贴图的方式来确定动态对象在不同位置点的光照情况。

为了能够确定出动态对象的光照效果,目前一般会预先分析出场景中离散的空间位置点处的环境光颜色并存储,在需要渲染出场景中动态对象的光照效果时,可以调用预先存储的环境光信息对该动态对象进行光照渲染。然而,预先存储场景中不同空间位置点的环境光信息必然需要占用大量的存储空间,导致存储资源的浪费;而且,然而场景中除了静态光源之外,还存在一些动态光源,如一些动态对象可能会成为发光体或者动态对象本身就是移动光源,这样,动态对象除了受到静态光源的光照作用外,还可能会受到其他动态对象的光照作用,而由于动态光源自身位置的不确定性,预先计算出的场景中离散的空间位置点的环境光颜色信息的过程中,根本无法考虑到动态光源的环境光颜色对空间位置点的光照影响,从而无法渲染出的动态对象的真实光照效果。



技术实现要素:

有鉴于此,本申请提供了一种模拟全局光照的方法和装置,以实时渲染出对象在场景中的光照效果,并能够更为真实的反映出对象的全局光照。

为实现上述目的,一方面,本申请实施例提供了一种模拟全局光照的方法,包括:

将待输出的场景中需要进行光照渲染的目标对象模拟拆分为多个组成部件;

对于任意一个组成部件,模拟包围所述组成部件的多面体;

在朝向所述多面体的多个目标方向上,分别模拟摄像机对所述场景进行摄像,得到从所述多个目标方向上模拟出的多幅场景图像;

对于任意一个目标方向上模拟出的场景图像,依据所述场景图像中各个像素点的像素颜色,确定所述多面体作用于所述组成部件的一组环境光颜色信息,得到对应于所述多个目标方向的多组环境光颜色信息;

基于所述多面体的所述多组环境光颜色信息,对所述多面体包围的所述组成部件进行光照渲染,以得到所述目标对象的光照效果。

另一方面,本申请实施例还提供了一种模拟全局光照的装置,包括:

对象拆分单元,用于将待输出的场景中需要进行光照渲染的目标对象模拟拆分为多个组成部件;

空间构建单元,用于对于任意一个组成部件,模拟包围所述组成部件的多面体;

模拟摄像单元,用于在朝向所述多面体的多个目标方向上,分别模拟摄像机对所述场景进行摄像,得到从所述多个目标方向上模拟出的多幅场景图像;

光颜色确定单元,用于对于任意一个目标方向上模拟出的场景图像,依据所述场景图像中各个像素点的像素颜色,确定所述多面体作用于所述组成部件的一组环境光颜色信息,得到对应于所述多个目标方向的多组环境光颜色信息;

光照渲染单元,用于基于所述多面体的所述多组环境光颜色信息,对所述多面体包围的所述组成部件进行光照渲染,以得到所述目标对象的光照效果。

经由上述的技术方案可知,在申请实施例中,在输出场景之前,将场景中待渲染的目标对象模拟为由多个组成部件构成,分别模拟包围每个组成部件的多面体,通过模拟摄像机从朝向多面体的多个目标方向上对场景进行摄像,可以得到多幅离散的场景图像,根据该场景图像中像素点的像素颜色可以分析出多面体所能作用到该组成部件上的环境光颜色信息,由于每一组环境光颜色信息都是基于离散的场景图像的像素确定的,而对离散的场景图像进行采样的采样率可以达到较高的级别,从而有利于提高确定出的环境光颜色的精准度;而且,本申请实施例中每幅场景图像都是实时模拟摄取的,综合了当前场景中动态光源以及静态光源对模拟出的多面体的光照影响,这样,基于这些场景图像确定出的作用于目标对象中组成部件的环境光颜色信息更为精准,从而能够更为真实的渲染出目标对象的光照效果。

另外,由于本申请模拟场景图像,并基于场景图像最终确定多面体作用于组成部件的环境光颜色是基于GPU的渲染技术完成,相对于基于CPU的渲染技术来确定环境光颜色信息,基于GPU进行渲染可以大大提高计算效率,降低计算耗时。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例公开的计算机设备的一种组成结构示意图;

图2为本申请实施例所公开模拟场景中全局光照的系统一种可能的组成架构示意图;

图3为本申请实施例公开的一种模拟场景中全局光照的方法的一个实施例的流程示意图;

图4为本申请实施例公开的一种模拟场景中全局光照的方法又一个实施例的流程示意图;

图5a为场景中包含的人物对象的示意图;

图5b示出了包围场景中人物对象的多个组成部件的多个立方体的示意图;

图6示出了本申请实施例一种模拟全局光照的装置的一个实施例的组成结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供了一种模拟全局光照的方法和装置,该方法和装置可以应用于对游戏、虚拟现实等领域,以实时渲染出场景中对象的光照效果。

本实施例的方法和装置适用于任意计算机设备中,如,该计算机设备可以是向外提供游戏服务或者虚拟现实服务的服务器,或者是其他具备图形数据处理能力的设备。

如图1,其示出了本申请实施例的模拟场景中全局光照的方法和装置所适用的计算机设备的一种组成结构示意图。在图1中,该计算机设备可以包括:处理器101、存储器102、通信接口103、显示器104、输入单元105和通信总线106。

处理器101、存储器102、通信接口103、显示器104、输入单元105均通过通信总线106完成相互间的通信。

在本申请实施例中,该处理器101至少包括:图形处理器(GPU,Graphics Processing Unit)1012,GPU可以用于实现本申请实施例中模拟摄像机对场景进行图像摄取,生成不同方向的场景图像;或者,实现图像渲染、计算环境光信息等相关的图形数据处理。

可选的,该处理器101中可以包括中央处理器(CPU,Central Processing Unit)1011,以辅助图形处理器完成一些相关的数据处理,可以实现该计算机设备主要的数据处理操作,当然,该中央处理器还可以被替换为特定应用集成电路(application-specific integrated circuit,ASIC),数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件等。

存储器102中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令。该存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

该通信接口103可以为通信模块的接口,如GSM模块的接口。

该显示器104可用于显示场景中所涉及到的对象以及其他图像信息;还可以显示由用户输入的信息,或者提供给用户的信息,以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图片等任意组合来构成。该显示器可以包括显示面板,如,可以为采用液晶显示器、有机发光二极管等形式来配置的显示面板。进一步的,该显示器可以包括具备采集触摸事件的触摸显示面板。

该输入单元105可用于接收输入的用户输入的字符、数字等信息,以及产生与用户设置以及功能控制有关的信号输入。该输入单元可以包括但不限于物理键盘、鼠标、操作杆等中的一种或多种。

当然,图1所示的计算机设备结构并不构成对计算机设备的限定,在实际应用中计算机设备可以包括比图1所示的更多或更少的部件,或者组合某些部件。

在一种应用场景中,本申请实施例的方案可以在运行有游戏、虚拟现实等应用的计算机设备输出场景之前,实时对场景中的对象(优选为动态对象)进行渲染。在该种场景中,计算机设备确定待输出场景以及对场景中的动态对象进行渲染均可以由该计算机设备独立完成。如,游戏玩家在利用手机、平台电脑等计算机设备玩单机游戏的过程中,在计算机设备可以在输出每帧游戏画面之前,根据该游戏画面中所涉及到的对象进行实时渲染,并输出包含渲染后的对象的游戏画面。

在另一种应用场景中,本申请实施例的方案也可以适用于终端与服务器进行交互,以在终端侧输出场景对应的画面。在该种场景中,终端侧待输出的场景可以从服务器侧获取,而终端在输出该场景之前可以对该场景内的对象进行光照渲染。为了便于理解本申请的方案,下面对本申请的方案所适用的该种场景进行简单介绍,参见图2,其示出了本申请一种模拟全局光照的方法所适用的一种系统组成结构示意图。如图2所示,该系统可以包括由至少一台服务器201组成的服务系统,以及多台终端202。

其中,服务系统中的服务器201中可以存储用于实现游戏或者虚拟现实等功能的场景数据,并在终端请求场景数据时,将场景数据传输给终端。

该终端202用于展现服务器返回的场景数据所对应的场景,并根据用户的操作,向服务器发送更新该场景中动态对象位置的更新请求,以获取服务器对该动态对象的位置进行更新后的场景。

进一步的,该终端202在输出服务器返回的场景之前,还需要按照确定该场景中待渲染的目标对象,并利用终端中的GPU模拟将目标对象拆分为多个组成部件,通过模拟包围该组成部件的多面体,并在朝向多面体的多个目标方向上,分别模拟摄像机对场景进行摄像,得到从多个目标方向上模拟出的多幅场景图像,然后依据场景图像中各个像素点的像素颜色,确定多面体在该目标方向上所能产生的环境光颜色信息,从而基于该多面体在该多个目标方向上所能产生的环境光颜色信息,对该多面体包围的该组成部件进行光照渲染,以最终得到该目标对象的光照效果。

当然,在实际应用中,对场景中待渲染目标对象进行渲染的操作也可以由服务器侧来完成,具体过程与终端侧的执行过程相似。

下面结合以上共性,对本申请实施例的模拟全局光照的方法进行详细介绍。

参见图3,其示出了本申请一种模拟全局光照的方法一个实施例的流程示意图,本实施例的方法可以应用于前面所提到的计算机设备,具体可以通过该计算机中的GPU来完成相关操作。本实施例的方法可以包括:

301,将待输出的场景中需要进行光照渲染的目标对象模拟拆分为多个组成部件。

其中,待输出的场景可以理解为待输出至显示器中的场景画面所对应的场景。根据所应用的领域不同,该场景可以为游戏场景,也可以为虚拟现实的场景等。

该场景中可以包括多个对象,如,静态物体、动态物体、人物等等。本实施例中将场景中需要进行光照渲染的对象称为目标对象,在本实施例中该目标对象可以为静态对象,也可以为动态对象。可选的,考虑到静态对象可以通过预计算出的光照贴图来实现光照渲染,在本实施例中,该目标对象可以特指需要进行光照渲染的动态对象。当然,本申请实施例中确定出的目标对象可以是一个也可以是多个,但是对于任意一个目标对象的光照渲染过程均可以采用本实施例的处理步骤进行处理。

可以理解的是,每个目标对象均可以拆分为多个部分组成,每个部分可以认为是一个组成部件,具体的拆分方式可以根据需要设定。需要说明的是,本实施例所述的拆分并非将目标对象拆解并分离成多个组成部分,而仅仅在目标对象上模拟出组成该目标对象所需的多个组成部件。

如,当目标对象为汽车时,可以在该汽车本身进行模拟拆分,确定出组成该汽车的车门、车厢、车轮等等多个组成部件的具体位置。又如,当目标对象为人时,可以模拟出组成人体的多个人体组织,如,将人体的身体组成进行模拟拆分,得到组成人体的头部、脖子、四肢、躯干等多个组成部件。

在本申请实施例中,对目标对象进行模拟拆分的目的是,为了后续可以分别确定出各个组成部件的光照效果,进而通过该目标对象中所有组成部件的光照效果反映出该组成部件整体的光照效果,以得到目标对象更为精准的光照效果。

302,对于任意一个组成部件,模拟包围该组成部件的多面体。

多面体实际上是由多个面组成的封闭空间。该多面体的具体具有的面的数量可以根据需要设定,如该多面体可以为四面体、立方体或者八面体等等。

可以理解的是,场景是由大量连续的点组成,而动态对象在场景中的光照效果是由这些连续的点的环境光颜色的决定的,而由于场景所在空间内点的数量非常巨大,根本不可能通过算法实时确定出这些连续的点的环境光颜色作用到动态对象上所能呈现出的光照效果。因此,对于虚拟现实、游戏等实时性要求较高的领域中,可以将场景抽象为小的封闭空间,并通过对象所处的小封闭空间内的环境光颜色,确定动态对象的光照效果。相应的,为了确定出组成部件的光照效果,可以模拟出包围该组成部件的多面体,以便确定该多面体的封闭空间所能作用到该组成部件上的光照效果。

303,在朝向该多面体的多个目标方向上,分别模拟摄像机对该场景进行摄像,得到从该多个目标方向上模拟出的多幅场景图像。

可以理解的是,对于任意一个多面体而言,多面体所对应的封闭空间内的环境光信息与场景中各个像素点作用到该多面体上的光信号有关,因此,需要在朝向该多面体的多个目标方向上,分别模拟摄像机朝着该多面体对场景进行拍摄,以通过模拟出的摄像机捕获该场景范围中处于该模摄像机的摄像方向以及摄像范围内的光信号,并将捕获到的光信号呈现模拟出的图像中。在本申请实施例中,将模拟摄像机生成的图像称为场景图像。

其中,该目标方向可以根据需要预先设定,或者是从朝向该多面体的多个方向中随机选择出多个方向作为目标方向。

进一步的,该多面体的封闭空间内的环境光颜色信息可以通过从多面体中抽象出的离散点或者面的环境光颜色反映出来,这样,在模拟摄像机朝向多面体以对场景进行摄像时,可以设置模拟的摄像机在朝向多面体中各个面的多个目标方向上对场景进行摄像,或者是模拟摄像机在朝向该多面体中多个不同点的多个方向上对场景进行摄像。

在一种实现方式中,可以在朝向多面体中不同面的多个方向上,分别模拟摄像机朝向该多面体的不同面并对场景进行摄像。其中,对于多面体中任意一个面,该面可以朝向两个相反的方向分别向外辐射光照,因此,在本申请实施例中需要确定出该面作用于该多面体所包围的组成部件的环境光颜色。为了便于区分,将该面的环境光颜色作用到该多面体包围的组成部件上的方向称为该面作用于该组成部件的光照方向,该光照方向是从该面指向该多面体内部的,而可以理解的是,为了能够获取到该面在光照方向上所能产生的光信号情况,需要模拟摄像机朝着该光照方向相反的方向对该面进行摄像,也就是说,朝向该面的目标方向为从多面体内部指向该面的方向,具体的,可以为从多面体内部垂直指向该面的方向。

可选的,为了能够全面反映出场景中的所有像素点作用到该面上所能产生的环境光颜色,模拟的摄像机需能够全面捕获该面所对应的场景范围,则朝向该面的目标方向可以为从多面体的中心垂直指向该面的方向。

如,以多面体为立方体为例,则立方体具有六个面,这六个面可以对应着六个目标方向,这样,对于立方体的每个面,可以在从立方体的中心垂直指向该面的方向上,模拟设置摄像机并朝向该面进行摄像,以将该面对应的场景范围内的像素点的像素颜色模拟到摄像机摄取到的图像的像素上。

在又一种实现方式中,可以在朝向多面体中不同点的多个目标方向上,分别模拟摄像机朝向该多面体的不同点对该场景进行摄像。考虑到多面体的特殊性,可以选取朝向多面体中不同顶点的多个目标方向。对于任意一个顶点所对应的目标方向上,可以模拟摄像机朝向该顶点对场景进行摄像。具体的,考虑到多面体顶点作用于该多面体包围的组成部件的光照方向为从该顶点指向该多面体内部的方向,因此,朝向多面体中顶点的目标方向可以为从该顶点指向该多面体内部的方向。

304,对于任意一个目标方向上模拟出的场景图像,依据该场景图像中各个像素点的像素颜色,确定该多面体作用于该多面体所包围的组成部件的一组环境光颜色信息,得到对应于该多个目标方向的多组环境光颜色信息。

需要说明的是,由于朝向该多面体的多个目标方向上分别模拟出一幅场景图像,这样,对于该多面体中任意一个目标方向上模拟出的场景图像均需要进行该步骤304的操作。

其中,对于一个目标方向上模拟出的场景图像而言,基于该场景图像中像素点的像素颜色可以确定出多面体作用于该多面体所包围的组成部件上的环境光颜色,而该组环境光颜色信息实际上就是该多面体在与该目标方向相反的光照方向上所能产生的环境光颜色。

其中,依据该场景图像中各个像素点的像素颜色,确定一组环境光颜色信息的方式可以有多种。可选的,对于一个目标方向上模拟出的场景图像而言,可以通过对该场景图像中各个像素点的像素颜色进行平均化,并将平均化所得到的像素颜色作为一组环境光颜色。

进一步的,将场景图像中各个像素点的像素颜色进行平均化可以为:逐步缩小该场景图像,并利用高斯滤波器平均化缩小后的场景图像中各个像素点的像素颜色,直至得到一个单位像素的像素颜色。

305,基于所述多面体的所述多组环境光颜色信息,对所述多面体包围的所述组成部件进行光照渲染,以得到所述目标对象的光照效果。

对于任意一个多面体,通过步骤304可以得到该多面体作用于该多面体所包围的组成部件的多组环境光颜色信息,而每组环境光颜色对应着该多面体作用于该组成部件的一个光照方向,这样,通过该多面体在对该组成部件的多个光照方向上的多组环境光颜色信息,可以确定出作用于该组成部件的光照效果。

本申请实施例中由于每一组环境光颜色信息都是基于离散的场景图像的像素确定的,而对离散的场景图像进行采样的采样率可以达到较高的级别,从而有利于提高确定出的环境光颜色的精准度;另外,由于本申请模拟场景图像,并基于场景图像最终确定多面体作用于组成部件的环境光颜色是基于GPU的渲染技术完成,相对于基于CPU的渲染技术来确定环境光颜色信息,基于GPU进行渲染可以大大提高计算效率,降低计算耗时。

同时,本申请实施例中每幅场景图像都是实时摄取的,这样,可以综合场景中动态光源以及静态光源对模拟出的多面体的光照影响,这样,基于这些场景图像确定出的作用于目标对象中组成部件的环境光颜色信息更为精准,从而能够渲染出目标对象更为真实的光照效果。

可以理解的是,在本申请实施例中,该模拟出的该场景图像中各个像素点的像素颜色,与模拟的摄像机的在场景中的位置、场景中处于该摄像机摄像范围内各个空间点原始的像素颜色以及原始像素点与模拟出的摄像机的摄像位置有关,因此,在模拟生成场景图像时,可以基于以上这些信息确定模拟出的该场景图像中各个像素点的像素颜色,以最终生成场景图像。

以一个目标方向为例,可选的,在一种实现方式中对于可以先基于预置的摄像机与多面体(如,多面体的中心,多面体的顶点或者多面体的面)的距离,在场景中确定模拟的摄像机处于目标方向上的空间摄像位置;然后,确定场景中处于摄像机摄像范围内的原始像素点,其中,为了便于区分,将三维场景空间中处于摄像机摄像范围内的空间像素点称为原始像素点;最后,依据原始像素点的像素颜色,原始像素点在场景的像素位置相对于该空间摄像位置的第一方向矢量,以及该摄像机朝向该多面体进行摄像的摄像方向所对应的第二方向矢量,模拟出摄像机朝向该多面体对场景进行图像摄取所得到场景图像中各个像素点的像素颜色。其中,该摄像机朝向多面体进行摄像的摄像方向与目标方向的方向相同,不同之处在于,此处摄像机的摄像方向可以为摄像机与多面体中摄像焦点所对应的矢量方向。

可以理解的是,在本申请实施例中,为了能够进一步提高后续确定动态对象的全局光照效果的精准度,目标方向的数量不宜过少。

特别的,以朝向多面体中不同面或不同顶点进行摄像时,该多面体所具有的面或者顶点的数量不宜过少,可选的,本申请实施例可以模拟出的包围组成部件的多面体可以为立方体。为了便于理解本申请实施例的方案,下面以包围组成部件的多面体为立方体为例,对本申请的方案进行介绍。

参见图4,其示出了本申请一种图像处理方法又一个实施例的流程示意图,本实施例的方法可以应用于前面所述的计算机设备,本实施例的方法可以包括:

401,获取待输出的场景的信息。

可以理解的是,在游戏或虚拟现实等领域中,计算机设备中每一帧画面都对应着一个场景,待输出的场景可以理解为待输出的画面所对应的场景。

402,从该场景中确定待进行光照渲染的目标对象。

在本申请实施例中,将场景中需要进行光照渲染的对象称为目标对象,该目标对象可以为静态对象,也可以为动态对象。作为一种优选实施方式,本申请实施例的目标对象可以为动态对象。

特别的,本申请实施例中的场景为游戏场景时,该目标对象可以为游戏场景中的游戏对象。

403,根据目标对象的组成结构,将该目标对象模拟拆分为多个组成部件。

可以理解的是,目标对象的组成结构可以表征组成该目标对象的各个组成部件之间的连接关系,如,以人体为例,人体的各个部件之间都通过各个关节相连,因此,在本实施例中可以基于目标对象的组成结构,模拟对该目标对象进行划分,得到该目标对象的多个组成部件。

404,对于任意一个组成部件,模拟出包围该组成部件的立方体。

在本实施例中,以包围人体的封闭空间多面体为正立方体为例进行介绍。

由于每个组成部件处于一个立方体所在的封闭空间内,因此,每个组成部件的光照效果可以认为是受该立方体的环境光颜色影响。

为了便于理解模拟出的立方体与组成部件的空间关系,可以参见图5a和图5b,由图5a所示的场景中包含的对象为人体501。为了确定该人体在场景中光照效果,可以分别分析该人体的身体各部分的光照效果,以便最终得到该人体的整体光照效果。如参见图5b,可以将该人体501可以模拟为多个人体组织构成,如图5b,模拟出组成人体的头部、胳膊的上关节部分、胳膊的下关节部件、腿部的上关节部分、腿部的下关节部分、臀部和胸部躯干等多个组成部件,而每个组成部件分别被一个立方体502包围,使得人体被多个立方体502覆盖。

405,对于立方体中的任意一个面,在从立方体内部垂直指向该面的目标方向上,模拟出摄像机朝向该面对该场景进行摄像所需的空间摄像位置。

在本实施例中,将模拟的摄像机所处的空间位置点称为空间摄像位置。具体的,可以基于预先设定的模拟摄像机与面的垂直距离,确定模拟的摄像机在朝向该面的目标方向上进行摄像的空间摄像位置。

其中,模拟摄像机朝向立方体的某一个面时,为了摄像机能够捕获该面所对应的空间范围的场景信息,该目标方向可以为从立方体中心垂直指向该面的目标方向。相应的,可以模拟摄像机处于垂直于该面且经过该面的中心点的垂线上,同时,模拟摄像机与该面中心的垂直距离为预设距离。

406,确定该场景中处于该摄像机摄像范围内的原始像素点。

其中,为了与模拟摄像机对该场景进行摄像所生成的场景图像中的像素点进行区分,将该场景中处于摄像机摄像范围内的像素点称为原始像素点。

407,依据原始像素点的像素颜色,该原始像素点的像素位置减去该空间摄像位置所得到的差值转换为单位向量所得到的第一方向矢量,以及该摄像机的摄像方向转换为单位向量所得到的第二方向矢量,模拟出该摄像机摄取到的场景图像中各个像素点的像素颜色。

由于原始像素点是该场景中原始的像素点,因此,该原始像素点的像素颜色是已知的,可以直接获取到该场景中该原始像素点的像素颜色。

为了便于区分,在本申请实施例中,将原始像素点在场景的位置(或者说坐标位置)称为该原始像素点的像素位置。

其中,该场景图像中每个像素点的像素颜色为:与像素点具有映射关系的原始像素点的像素颜色乘以该第一方向矢量与第二方向矢量的向量点乘。

在本申请实施例中,原始像素点在场景中的像素位置相对于该空间摄像位置的第一方向矢量具体为:该原始像素点的像素位置减去该空间摄像位置所得到的差值转换为单位向量所得到的方向矢量;相应的,该摄像机朝向该面进行摄像的摄像方向所对应的第二方向矢量具体为:该摄像机朝向该面摄像的摄像方向转换为单位向量所得到的方向矢量。

408,逐步缩小该场景图像,并利用高斯滤波器平均化缩小后的场景图像中各个像素点的像素颜色,直至得到一个单位像素的像素颜色,将该单位像素的像素颜色作为正立体中该面上的环境光颜色。

409,对于该目标对象中任意一个组成部件,依据包围该组成部件的正立体的六个面上的环境光颜色信息作用于该组成部件,以渲染出该目标对象的光照效果。

410,将包含有该目标对象的光照效果的场景画面输出到显示器中。

需要说明的是,图4是以包围每个组成部件的多面体为立方体为例进行介绍,但是可以理解的是,当采用其他多面体包围组成部件的情况与本实施例相似,不同仅仅在于多面体不同时,组成多面体所具有的面的数量不同,而对于确定每一个面对应的环境光颜色的过程均与本实施例相同,在此不再赘述。

可以理解的是,图4是以在朝向多面体中各个面的多个目标方向上,模拟摄像机对场景进行摄像为例进行介绍,但是对应在朝向多面体中各个顶点的多个目标方向上,模拟摄像机对场景进行摄像的过程可以与图4实施例所示的过程相似,不同之处仅仅在于设置摄像机的朝向为从多面体的各个顶点到该该多面体内部的方向上,而对于生成模拟的场景图像以及对场景图像进行处理,以确定出多面体对应的多组环境光颜色的过程却是相同的,在此不再赘述。

下面对本发明实施例提供的一种模拟全局光照的装置进行介绍,下文描述的一种模拟全局光照的装置可与上文描述的一种模拟全局光照的方法相互对应参照。

参见图6,其示出了本申请一种模拟全局光照的装置一个实施例的组成结构示意图,本实施例的装置可以包括:

对象拆分单元601,用于将待输出的场景中需要进行光照渲染的目标对象模拟拆分为多个组成部件;

空间构建单元602,用于对于任意一个组成部件,模拟包围所述组成部件的多面体;

模拟摄像单元603,用于在朝向所述多面体的多个目标方向上,分别模拟摄像机对所述场景进行摄像,得到从所述多个目标方向上模拟出的多幅场景图像;

光颜色确定单元604,用于对于任意一个目标方向上模拟出的场景图像,依据所述场景图像中各个像素点的像素颜色,确定所述多面体作用于所述组成部件的一组环境光颜色信息,得到对应于所述多个目标方向的多组环境光颜色信息;

光照渲染单元605,用于基于所述多面体的所述多组环境光颜色信息,对所述多面体包围的所述组成部件进行光照渲染,以得到所述目标对象的光照效果。

可选的,所述模拟摄像单元,包括:

朝向确定单元,用于确定朝向所述多面体的多个目标方向;

位置确定单元,用于在朝向所述多面体的任意一个目标方向上,模拟出所述摄像机朝向该多面体进行摄像所需的空间摄像位置,并执行像素匹配单元的操作;

像素匹配单元,用于确定所述场景中处于所述摄像机摄像范围内的原始像素点;

图像模拟单元,用于依据所述像素匹配单元确定出的所述原始像素点的像素颜色,所述原始像素点在所述场景中的像素位置相对于所述空间摄像位置的第一方向矢量,以及所述摄像机朝向所述多面体摄像的摄像方向所对应的第二方向矢量,模拟出所述摄像机对所述场景进行图像摄取所得到场景图像中各个像素点的像素颜色。

可选的,所述图像模拟单元确定出的所述原始像素点在所述场景中的像素位置相对于所述空间摄像位置的第一方向矢量为:目标差值转换为单位向量所得到方向矢量,其中,所述目标差值为所述原始像素点的像素位置减去所述空间摄像位置所得到的差值;

所述图像模拟单元确定出的所述摄像机朝向所述多面体摄像的摄像方向所对应的第二方向矢量为:所述摄像机朝向所述多面体摄像的摄像方向转换为单位向量所得到的方向矢量;

所述图像模拟单元确定出的所述场景图像中每个像素点的像素颜色为:与所述像素点具有映射关系的原始像素点的像素颜色乘以所述第一方向矢量与第二方向矢量的向量点乘。

可选的,所述光颜色确定单元,包括:

光颜色确定子单元,用于对于任意一个目标方向上模拟出的场景图像,将所述场景图像中各个像素点的像素颜色进行平均化,并将所述平均化所得到的像素颜色作为多面体所能产生的一组环境光颜色信息。

可选的,所述光颜色确定子单元,在将所述场景图像中各个像素点的像素颜色进行平均化时,具体用于逐步缩小场景图像,并利用高斯滤波器平均化缩小后的场景图像中各个像素点的像素颜色,直至得到一个单位像素的像素颜色。

可选的,模拟摄像单元,用于在朝向所述多面体中不同面的多个目标方向,分别模拟摄像机对所述场景进行摄像,得到从所述多个目标方向上模拟出的多幅场景图像。

可选的,所述空间构建单元具体为,用于对于任意一个组成部件,模拟包围所述组成部件的立方体。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1