CN112755535B - 光照渲染方法、装置、存储介质及计算机设备 - Google Patents
光照渲染方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN112755535B CN112755535B CN202110166801.5A CN202110166801A CN112755535B CN 112755535 B CN112755535 B CN 112755535B CN 202110166801 A CN202110166801 A CN 202110166801A CN 112755535 B CN112755535 B CN 112755535B
- Authority
- CN
- China
- Prior art keywords
- illumination
- rendering
- target
- light source
- probe
- 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
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- 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)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明实施例公开了一种光照渲染方法、装置、存储介质及计算机设备,通过获取可移动点光源的光源位置及光照参数;根据光源位置在预设空间范围中确定与可移动点光源关联的目标预设空间,并获取构建目标预设空间的多个虚拟光点;基于多个虚拟光点在每一光照探针处对应的预渲染参数,计算可移动点光源在每一光照探针处对应的目标预渲染参数;根据目标预渲染参数与光照参数计算可移动点光源在每一光照探针处的光照渲染数据;利用光照渲染数据对目标对象进行光照渲染。本方法通过预计算预设空间范围中每个点与场景空间中光照探针对应的预渲染参数,再使用预渲染参数结合光照参数进行光照渲染,从而提高了全局光照的渲染效率。
Description
技术领域
本发明涉及图像处理技术领域,具体涉及一种光照渲染方法、装置、存储介质及计算机设备。
背景技术
近年来,随着互联网技术的发展、个人终端的普及以及流量成本的降低,游戏产业呈现出蓬勃发展的趋势。其中,3D游戏以其画面表现力强,光影效果好等优势逐渐成为了当今游戏市场的主流。人们在体验游戏的同时,对游戏的视觉效果也提出了更高的要求。
在游戏过程中需要对游戏画面的光照进行实时渲染,在实时渲染时,为了展现出更为真实的场景,需要采用全局光照(Global Illumination,GI)进行渲染。在相关技术中,全局光照一般采用路径跟踪的方法进行渲染,而路径跟踪算法比较复杂,渲染效率较低。
发明内容
本发明实施例提供一种光照渲染方法、装置、存储介质及计算机设备,该方法通过预计算可移动点光源对应的预设空间范围中的每个点与场景空间中光照探针预渲染参数,再使用预渲染参数结合光照参数进行光照渲染,该方法可以提高全局光照的渲染效率。
本申请第一方面提供一种光照渲染方法,包括:
获取可移动点光源的光源位置及光照参数,所述可移动点光源在预设空间范围内移动;
根据所述光源位置,在所述预设空间范围中确定与所述可移动点光源关联的目标预设空间,并获取构建所述目标预设空间的多个目标虚拟光点;
基于所述多个目标虚拟光点在每一光照探针处对应的预渲染参数,计算所述可移动点光源在每一光照探针处对应的目标预渲染参数,所述光照探针为构建目标场景空间的三维感应点;
根据所述目标预渲染参数与所述光照参数,计算所述可移动点光源在每一光照探针处的光照渲染数据;
利用所述光照渲染数据对目标对象进行光照渲染。
相应的,本发明实施例第二方面提供一种光照渲染装置,包括:
获取单元,用于获取可移动点光源的光源位置及光照参数,所述可移动点光源在预设空间范围内移动;
确定单元,用于根据所述光源位置,在所述预设空间范围中确定与所述可移动点光源关联的目标预设空间,并获取构建所述目标预设空间的多个目标虚拟光点;
第一计算单元,用于基于所述多个目标虚拟光点在每一光照探针处对应的预渲染参数,计算所述可移动点光源在每一光照探针处对应的目标预渲染参数,所述光照探针为构建目标场景空间的三维感应点;
第二计算单元,用于根据所述目标预渲染参数与所述光照参数,计算所述可移动点光源在每一光照探针处的光照渲染数据;
渲染单元,用于利用所述光照渲染数据对目标对象进行光照渲染。
在一些实施例中,所述装置还包括:
划分单元,用于获取可移动点光源所处的预设空间范围,将所述预设空间范围划分为多个子空间,每个所述子空间包含多个构建所述子空间的虚拟光点;
第一生成单元,用于获取目标场景空间,并在所述目标场景空间中以预设的光照探针密度生成光照探针集合,所述光照探针集合包含多个光照探针,所述光照探针为三维感应点;
第二生成单元,用于对所述预设空间范围中的每一虚拟光点生成与每个光照探针对应的预渲染参数,得到预渲染参数集合,并将所述预渲染参数集合进行存储。
在一些实施例中,所述第二生成单元,包括:
第一确定子单元,用于将任一选定虚拟光点确定为预设点光源;
第一计算子单元,用于计算所述预设点光源在每个所述光照探针中的光照参数;
第二确定子单元,用于将所述光照参数确定为所述选定虚拟光点与每个所述光照探针对应的预渲染参数。
在一些实施例中,所述第一计算单元,包括:
获取子单元,用于获取每一目标虚拟光点的权重系数;
第二计算子单元,用于根据所述每一目标虚拟光点的权重系数以及每一目标虚拟光点在每一光照探针处对应的预渲染参数,计算所述可移动点光源在每一光照探针处对应的目标预渲染参数。
在一些实施例中,所述获取子单元,包括:
第一获取模块,用于获取所述可移动点光源在所述目标预设空间中的目标位置;
第一计算模块,用于基于所述目标位置,计算每一目标虚拟光点的权重系数。
在一些实施例中,所述第二计算子单元,包括:
确定模块,用于从所述预渲染参数集合中确定所述每一目标虚拟光点与每一光照探针对应的子目标预渲染参数;
第二计算模块,用于根据每一子目标预渲染参数与对应的权重系数进行加权计算,得到所述可移动点光源在每一光照探针处对应的目标预渲染参数。
在一些实施例中,所述渲染单元,包括:
划分子单元,用于将待进行光照渲染的目标对象划分为多个像素;
渲染子单元,用于利用所述可移动点光源在每一光照探针处的光照渲染数据,对每一像素进行光照渲染。
在一些实施例中,所述渲染子单元,包括:
第二获取模块,用于获取任一目标像素的坐标数据;
查找模块,用于根据所述坐标数据查找与所述目标像素关联的目标光照探针以及每一目标光照探针的权重;
第三计算模块,用于根据所述每一目标光照探针对应的光照渲染数据与每一目标光照探针的权重加权计算得到所述目标像素对应的目标光照渲染数据;
渲染模块,用于根据所述目标光照渲染数据对所述目标像素进行光照渲染。
本申请实施例第三方面还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请第一方面所提供的光照渲染方法中的步骤。
本申请实施例第四方面提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请第一方面所提供的光照渲染方法中的步骤。
本申请实施例第五方面提供一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在存储介质中。计算机设备的处理器从存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行第一方面提供的光照渲染方法中的步骤。
本申请实施例提供的光照渲染方法,通过获取可移动点光源的光源位置及光照参数,可移动点光源在预设空间范围内移动;根据光源位置,在预设空间范围中确定与可移动点光源关联的目标预设空间,并获取构建目标预设空间的多个虚拟光点,虚拟光点离线烘焙了预渲染参数;基于多个虚拟光点在每一光照探针处对应的预渲染参数计算可移动点光源在每一光照探针处对应的目标预渲染参数,光照探针为构建目标场景空间的三维感应点;根据目标预渲染参数与光照参数计算可移动点光源在每一光照探针处的光照渲染数据;利用光照渲染数据对目标对象进行光照渲染。本方法通过预计算可移动点光源对应的预设空间范围中每个点与场景空间中光照探针对应的预渲染参数,再使用预渲染参数结合光照参数进行光照渲染,从而提高了全局光照的渲染效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的光照渲染的场景示意图;
图2是本申请提供的光照渲染方法的流程示意图;
图3是本申请提供的光照渲染方法的另一流程示意图;
图4是本申请提供的光照渲染装置的结构示意图;
图5是本申请提供的光照渲染装置的另一结构示意图;
图6是本申请提供的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种光照渲染方法、装置、存储介质及计算机设备。其中,该光照渲染方法可以使用于光照渲染装置中。该光照渲染装置可以集成在计算机设备中,该计算机设备可以是具有显示功能的终端。其中,该终端可以是智能手机、平板电脑、笔记本电脑、台式计算机以及智能手表等,但并不局限于此。该计算机设备也可以是服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
请参阅图1,为本申请提供的光照渲染的场景示意图;如图所示,计算机设备获取目标场景空间和移动点光源的预设空间范围后,将预设空间范围划分为多个子空间,此处多个子空间为至少两个子空间,每个子空间包含多个构建子空间的虚拟光点;然后在目标场景空间中以预设的光照探针密度生成光照探针集合;之后对预设范围内的每一虚拟光点生成与每个光照探针对应的预渲染参数,得到预渲染参数集合;将预渲染参数集合进行存储,以此完成离线生成预渲染参数。在进行实时全局渲染时,计算机设备获取可移动点光源的光源位置以及光照参数,然后根据光源位置在预设空间范围中确定与可移动点光源关联的目标预设空间,并获取构建目标预设空间的多个目标虚拟光点,此处多个目标虚拟光点为至少两个目标虚拟光点,具体目标虚拟光点的数量由子空间的形状决定,该目标虚拟光点是离线烘焙了预渲染参数的虚拟光点。基于多个目标虚拟光点在每一光照探针处对应的预渲染参数,计算可移动点光源在每一光照探针处对应的目标预渲染参数,再根据目标预渲染参数和光照参数计算可移动点光源在每一光照探针处的光照渲染数据,利用光照渲染数据对目标对象进行光照渲染。
需要说明的是,图1所示的光照渲染的场景示意图仅仅是一个示例,本申请实施例描述的光照渲染场景是为了更加清楚地说明本申请的技术方案,并不构成对于本申请提供的技术方案的限定。本领域普通技术人员可知,随着光照渲染的演变和新业务场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
基于上述实施场景以下分别进行详细说明。
本申请实施例将从光照渲染装置的角度进行描述,该光照渲染装置可以集成在计算机设备中。其中,计算机设备可以是终端也可以是服务器,本申请在此不作限制。如图2所示,为本申请提供的光照渲染方法的流程示意图,该方法包括:
步骤101,获取可移动点光源的光源位置及光照参数。
其中,对场景的光照效果进行渲染,可以采用局部光照(Local illumination,LI)进行渲染,也可以采用全局光照(Global illumination,GI)进行渲染。采用局部光照进行渲染,就是只考虑光源照射到模型表面的照射效果,不考虑光线经反射、折射后照射到模型表面的照射效果,因此局部光照也称为直接光照。而采用全局光照进行渲染,考虑到了环境中所有表面和光源相互作用的照射效果,因此全局光照也称为间接光照。采用全局光照进行渲染得到的图像相对于局部光照进行渲染得到的图像更贴近于自然环境中的人眼视觉效果,即采用全局光照进行渲染得到的图像的真实度更高。如今在3D游戏、3D动画等产业中,为给用户带来更为真实的观感体验,往往采用全局光照对画面进行渲染。
在相关技术中,对场景进行全局渲染,一般采用路径跟踪(pathtracing)方法(也称为光线跟踪(RayTracing)),该方法可以计算出镜面反射、灯光透过玻璃的效果和阴影还有直接照射光产生的阴影。具体地,路径跟踪方法由Kajiya在1986年提出,路径跟踪方法的基本思想是从视点发出一条光线,光线与物体表面相交时根据表面的材质属性继续采样一个方向,发出另一条光线,如此迭代,直到光线打到光源上(或逃逸出场景),然后用蒙特卡洛方法(即统计模拟方法)计算光线的贡献作为像素的颜色值。路径跟踪算法进行光照计算的精确度高,渲染效果好,然而由于路径跟踪算法的计算量较大,往往比较适用于离线渲染,例如3D动画制作。在线实时渲染(如3D游戏)中每秒需要渲染30帧左右的图像,对渲染速度要求极高,因此采用路径跟踪算法进行实时渲染就需要大量的计算资源,对计算机设备的硬件要求很高,在普通的移动端或家庭版的个人计算机(PersonalComputer,PC)端很难实现。
对此,本领域技术人员经研究提出一种光照渲染的方法,通过先离线计算预渲染参数,在实时渲染时将预渲染参数与光照参数进行联合计算得出待渲染目标对象的光照数据。该方法将大量的计算工作离线进行,并将离线计算的结果进行存储,在实时渲染时调用该离线计算的预渲染参数与光照参数进行简单计算即可迅速得出目标对象的光照数据,从而实现实时的全局渲染。采用该方法进行实时渲染时的计算量少,在普通的移动端或家庭版的PC端都可以实现。然而该离线计算预渲染参数的方法有一个重要的前提,即该方法进行渲染的场景中光源需要离渲染的目标对象无限远,即该方法只对天光或者平行光有效,对火把、探照灯等点光源无法用此方法进行光照渲染。从而导致了在普通终端(移动端或个人PC端)中无法实现点光源变化场景的实时全局渲染,例如昼夜变化、动态移动火把等场景只能进行局部渲染,光照渲染的真实度较差。
为解决上述问题,本申请发明人提出一种适用可移动点光源的离线计算预渲染参数的方法,该方法可以在普通终端中实现点光源移动场景的实时全局渲染,下面对该方法进行详细阐述。
光照渲染装置在对可移动点光源场景进行实时全局渲染时,对可移动点光源的光源位置进行获取,此处光源位置为可移动点光源的实时光源位置。其中,可移动点光源可以在预设空间范围内移动,该预设空间范围可以由用户或者场景设计人员进行设置,该预设空间范围处于待进行光照渲染的目标场景空间中。例如,待进行光照渲染的目标场景空间为一个房间,需要对房间中的物品进行光照渲染,可移动点光源为白炽灯,那么用户可以设置白炽灯可以在靠近房间顶部的一个空间范围内进行移动,该空间范围即为用户设置的预设空间范围。其中光照参数为可移动点光源的当前的光照传输向量、光照强度等参数。可移动点光源的光照参数也可以按照用户或场景设计人员的设置进行实时变化。
步骤102,根据光源位置在预设空间范围中确定与可移动点光源关联的目标预设空间,并获取构建目标预设空间的多个目标虚拟光点。
其中,在对当前场景进行实时全局光照渲染之前,可以在可移动点光源的移动范围,即前述预设空间范围中按预设规则设置一些预设的点位,然后离线计算这些点位对应的预渲染参数。具体地,离线计算这些点位对应的预渲染参数,可以是将其中任意一个点位作为一个点光源,如此也可以称这些点位为虚拟光点。对该点光源可以采用路径跟踪方法算出该点光源在目标场景空间中任一确定位置处的预渲染参数。
如此,在预设空间范围中便生成了一定数量的虚拟光点,这些虚拟光点都离线烘焙了预渲染参数,此处烘焙可以理解为计算得到并且存储的意思。进一步地,这些虚拟光点之间按照邻近关系可以构建出一个个紧密连接的子空间,所有子空间组成了上述预设空间范围。例如预设空间范围为一个长为a、宽为b、高为c的长方体空间,其中a、b和c均为正整数。该长方体空间的每个顶点都设置一个虚拟光点,然后沿长方体空间的长、宽和高的方向每1个单位距离设置一个虚拟光点,那么便设置了(a+1)*(b+1)*(c+1)数量个虚拟光点,这些虚拟光点按照邻近关系可以构建出a*b*c个边长为1的正方体子空间。可以理解的是,每个正方体子空间包含了8个构建它的虚拟光点。此处,可以理解的是,正方体子空间只是一个示例,按预设规则也可以构成长方体子空间或其他多面体子空间,这些子空间只要能够相互连接并充斥整个预设空间范围即可。因此,当子空间为立方体时,此处多便是前面举例的8个;当然,当子空间为其他形状时,构建该子空间的虚拟光点的数量也可以是其他数量。
其中,在光照渲染装置获取了可移动点光源的光源位置及光照参数后。可以根据光源位置确定可移动点光源此时所处的具体子空间,此处称可移动点光源此时所处的具体子空间为与可移动点光源关联的目标预设空间。进一步地,可以确定构建该目标预设空间的多个目标虚拟光点;此处多个为至少两个,具体地,目标虚拟光点的数量由子空间的形状决定。当目标预设空间为正方体子空间时,构建该正方体子空间的目标虚拟光点数量为8。而且如前所述,每个目标虚拟光点都离线烘焙了其对应的预渲染参数。
步骤103,基于多个目标虚拟光点在每一光照探针处对应的预渲染参数计算可移动点光源在每一光照探针处对应的目标预渲染参数。
其中,在离线计算每个虚拟光点对应预渲染参数时,虽然可以采用路径跟踪算法算出任一虚拟光点在目标场景空间中任一确定位置处的渲染参数,但在离线计算时不可能遍历目标场景空间中的每一位置,如此可以类比在预设空间范围中生成虚拟光点的方法,可以在目标场景空间中按照一个预设的规则设置多个光照探针(LightProbes)。此处多个光照探针为至少两个光照探针,具体光照探针的数量由设置的光照探针的密度决定。光照探针提供了一种方法用于捕获和使用穿过场景中空白空间的光的信息。和光照贴图(lightmaps)相似,光照探针也存储关于场景中光照的信息,其区别是光照贴图存储的是光线照射场景表面的光照信息,而光照探针存储的光线穿过场景空白空间的信息。光照探针也可以理解为一个个的三维感应点,该感应点可以感应穿过其的光照信息。光照探针之间相互连接,共同构建了目标场景空间。
将目标场景空间划分为多个光照探针后,在离线计算时可以计算每个虚拟光点在每一光照探针处对应的预计算参数,从而得到每个虚拟光点与每个光照探针对应的预渲染参数。如此便完成了离线计算预设空间范围中每个虚拟光点在目标场景空间中每一光照探针处的预渲染参数。离线计算完成后,将离线计算得到的预渲染参数组成的预渲染参数集合在存储器中进行存储,以便实时渲染时调用。
如此,在步骤102中确定了可移动点光源当前位置对应的多个目标虚拟光点后,也就可以从存储的预渲染参数集合中提取出这几个目标虚拟光点在每个光照探针处的预渲染参数。然后可以根据这几个目标虚拟光点在每个光照探针处的预渲染参数计算出可移动点光源在每个光照探针处的预渲染参数。
在一些实施例中,基于多个目标虚拟光点在每一光照探针处对应的预渲染参数,计算可移动点光源在每一光照探针处对应的目标预渲染参数,包括:
1、获取每一目标虚拟光点的权重系数;
2、根据每一目标虚拟光点的权重系数以及每一目标虚拟光点在每一光照探针处对应的预渲染参数,计算可移动点光源在每一光照探针处对应的目标预渲染参数。
其中,由于可移动点光源的光源位置位于目标预设空间中,构建该目标预设空间的虚拟光点可以称为目标虚拟光点,那么目标虚拟光点便为与可移动点光源最接近的虚拟光点组合,于是可以根据该虚拟光点组合中每个目标虚拟光点在每个光照探针处的预渲染参数进行加权计算得到可移动点光源在每个光照探针处的预渲染参数。每个目标虚拟光点在每个光照探针处的预渲染参数是已经通过离线烘焙的,可以直接从存储的数据中获取。每个目标虚拟光点对应的权重系数可以根据每个目标虚拟光点与可移动点光源的位置关系确定,一般情况下,目标虚拟光点距离可移动点光源的位置越近,其对应的权重系数越高。
在一些实施例中,获取每一目标虚拟光点的权重系数,包括:
1.1、获取可移动点光源在目标预设空间中的目标位置;
1.2、根据目标位置,计算每一目标虚拟光点的权重系数。
其中,当目标预设空间为立方体时,可以先获取可移动点光源在目标预设空间中的目标位置,可移动点光源在目标预设空间中的目标位置可以以坐标形式进行表示。例如以立方体的一个顶点(即虚拟光点)为三维坐标系的原点,与该顶点连接的三条边分别设置为x轴、y轴以及z轴,设置与该顶点相对的点(即虚拟光点)的坐标为(1,1,1)。那么可移动点光源的具体位置可以以一个三维坐标进行表示,例如当可移动点光源在目标预设空间的中心位置时,可以确定该可移动点光源的坐标为(0.5,0.5,0.5)。
在确定了可移动点光源在目标预设空间中的目标位置后,可以采用三线性插值算法计算目标预设空间的每个光点的权重系数。三线性插值算法其实就是在x、y及z轴三个维度上的一维线性插值,先介绍下一维线性插值算法以便理解三线性插值算法。假设在一维坐标中存在两个点x0和x1,其中x0小于x1,那么x0和x1中的任意一个数x可以表示为x=αx0+βx1,其中α为x0的权重系数,β为x1的权重系数,且α+β=1。那么当x、x0和x1已知时,可以求解α和β的二元一次方程组,从而确定x0和x1的权重系数。将一维线性插值延伸至三维中,只需计算出每个光点在每一维度的权重系数,再将三个权重相乘即可得到每个虚拟光点的权重系数。
在一些实施例中,根据每一目标虚拟光点的权重系数以及每一目标虚拟光点在每一光照探针处对应的预渲染参数计算可移动点光源在每一光照探针处对应的目标预渲染参数,包括:
A、从预渲染参数集合中确定每一目标虚拟光点与每一光照探针对应的子目标预渲染参数;
B、根据每一子目标预渲染参数与对应的权重系数进行加权计算,得到可移动点光源在每一光照探针处对应的目标预渲染参数。
其中,在确定了与移动点光源相关的目标虚拟光点后,从预渲染参数集合中提取出每一目标虚拟光点在每一光照探针处对应的子目标预渲染参数。然后采用三线性插值算法计算得到的每一目标虚拟光点的权重系数对每一目标虚拟光点在每一光照探针处的子目标预渲染参数进行加权计算,进而得到移动点光源在每一光照探针处对应的目标预渲染参数。
步骤104,根据目标预渲染参数与光照参数计算可移动点光源在每一光照探针处的光照渲染数据。
其中,前述步骤确定的移动点光源的目标预渲染参数仅跟移动点光源的光源位置相关,当光源位置确定后,即可确定该移动点光源对应的目标预渲染参数,光源的光照参数对该目标预渲染参数不造成影响。然而在实际光照渲染时光效渲染效果与光照参数密不可分,因此可以使用可移动点光源的实际光照参数对目标预渲染参数进行更新,得到可移动点光源在每一光照探针处的光照渲染数据。
步骤105,利用光照渲染数据对目标对象进行光照渲染。
其中,在确定了可移动点光源在目标场景空间中每一光照探针处的光照渲染数据后,即可确定目标场景空间中任意目标对象的光照渲染数据,如此当需要进行渲染的目标对象确定后,便可直接进行光照渲染。
在一些实施例中,利用光照渲染数据对目标对象进行光照渲染,包括:
1、将待进行光照渲染的目标对象划分为多个像素;
2、利用可移动点光源在每一光照探针处的光照渲染数据对每一像素进行光照渲染。
其中,像素是指组成图像的小方格,这些小方格都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。被渲染的目标对象在虚拟空间中(即预设空间范围)中是三维的,然而其实际显示在终端的屏幕中时是以二维图像的形式进行显示的。只是二维图像的显示结果展现了被渲染的目标对象的立体感。在终端屏幕中显示的目标对象的二维图像是由多个像素组成的,因此可以通过对每个像素进行光照渲染来实现对目标对象的渲染。当确定了需要渲染的目标对象后,可以将目标对象进行像素划分,从而得到多个像素。然后再使用可移动点光源在每一光照探针处的光照渲染数据对每一像素进行渲染,从而使得渲染效果更为精确,提升渲染效果。在一些实施例中,还可以获取每一像素的直接光照数据,再将每一像素的直接光照数据与光照渲染数据进行累加,得到该像素对应的目标光照数据,然后使用该像素对应的目标光照数据对该像素进行光照渲染。其中,每一像素的直接光照数据可以通过光栅化方法进行计算得到。
在一些实施例中,利用可移动点光源在每一光照探针处的光照渲染数据对每一像素进行光照渲染,包括:
获取任一目标像素的坐标数据;
根据坐标数据查找与目标像素关联的目标光照探针以及每一目标光照探针的权重;
根据每一目标光照探针对应的光照渲染数据与每一目标光照探针的权重加权计算得到目标像素对应的目标光照渲染数据;
根据目标光照渲染数据对目标像素进行光照渲染。
其中,目标像素为组成目标对象的显示画面中的多个像素中的任一像素,也可以理解为任一选定的像素。此处对任一选定像素(即目标像素)的渲染过程进行描述,根据对该目标像素的渲染方法可以实现对目标对象所有像素的光照渲染。目标像素的坐标数据可以包括目标像素的世界坐标和法线方向,根据目标像素的坐标数据可以确定与目标像素关联的目标光照探针。具体地,由于目标像素处于目标场景空间中,而目标场景空间被划分成了多个光照探针,于是可以确定对目标像素的光照造成影响的目标探针。确定影响目标像素的目标探针可以采用前述确定可移动点光源的关联的目标虚拟光点的方法进行确定。同样地,也可以采用三线性插值的方法确定每个影响目标像素的目标探针的权重系数。再进一步根据目标探针的权重系数进行加权计算目标像素处对应的光照渲染数据。如此可以更进一步地提升光照渲染数据确定的准确性,提升了光照渲染效果。
根据上述描述可知,本申请提供的光照渲染方法,通过获取可移动点光源的光源位置及光照参数,可移动点光源在预设空间范围内移动;根据光源位置在预设空间范围中确定与可移动点光源关联的目标预设空间,并获取构建目标预设空间的多个目标虚拟光点,目标虚拟光点离线烘焙了预渲染参数;基于多个目标虚拟光点在每一光照探针处对应的预渲染参数计算可移动点光源在每一光照探针处对应的目标预渲染参数,光照探针为构建目标场景空间的三维感应点;根据目标预渲染参数与光照参数计算可移动点光源在每一光照探针处的光照渲染数据;利用光照渲染数据对目标对象进行光照渲染。本方法通过预计算可移动点光源对应的预设空间范围中每个点与场景空间中光照探针对应的预渲染参数,再使用预渲染参数结合光照参数进行光照渲染,从而提高了全局光照的渲染效率。
相应地,本申请实施例将从计算机设备的角度进一步对本申请提供的光照渲染方法进行详细的描述。本实施例中的计算机设备可以是终端,也可以是服务器。如图3所示,为本申请提供的光照渲染方法的另一流程示意图,该方法包括:
步骤201,计算机设备获取可移动点光源的移动范围和目标场景空间。
其中,本申请提供的光照渲染方法需要提前进行离线计算光源移动范围内的点光源在目标场景空间中不同位置处的预渲染参数。该离线计算过程可以在需要进行光照渲染的计算机设备以外的其他设备上进行离线计算,也可以在需要进行光照渲染的计算机设备上进行离线计算。在需要进行光照渲染的计算机设备以外的其他设备上进行离线计算可以举例如下:需要进行光照渲染的计算机设备为移动终端,在移动终端上运行3D游戏时需要对3D游戏画面进行实时全局渲染。对该3D游戏场景进行离线计算预渲染参数的过程可以是在服务器中进行,服务器中进行离线计算后将这些离线计算的预渲染参数打包发送至每个移动终端,如此移动终端可以直接使用这些预渲染参数进行场景渲染。在需要进行光照渲染的计算机设备上进行离线计算可以举例如下:3D游戏设计人员在进行游戏创作时,设置了具有可移动点光源的场景,为了对该场景进行实时全局渲染,需要先离线计算光源移动范围内的点光源在目标场景空间中不同位置处的预渲染参数。计算完成后将预渲染参数集合在本地进行存储,然后运行游戏时调用这些预渲染参数对场景进行渲染。本实施例在需要进行光照渲染的计算机设备上进行离线计算进行详细描述。
其中,可移动点光源的移动范围可以为用户设置的预设空间范围,目标场景空间也可以由用户进行设置,具体地,用户可以设置目标场景空间的形状、场景中的物品、人物、环境等。
步骤202,计算机设备将预设空间范围划分为多个子空间。
其中,计算机设备可以将移动点光源的移动空间划分为多个子空间,该子空间可以为形状相同的立方体子空间,这些立方体子空间之间相互连接组成了预设空间范围。此处多个为至少两个,具体地,子空间的数量可以根据划分的子空间的体积进行确定,一般情况下,在预设空间确定的情况下,子空间体积越小,数量越大。而且,每次预计算预渲染参数时,对子空间的划分方案都是一个明确的划分方案,即预计算完成后子空间的数量是一个确定的数值。构成每个子空间的虚拟光点的数量也为一个确定的数值。此时可以将每个立方体子空间的8个顶点确定为虚拟光点,如此便在预设空间范围中生成了若干个规则排布的虚拟光点,这些虚拟光点组成的集合可以称为点云。可以理解的是,立方体的边长可以根据用户的设置进行调整,当边长越长时,划分得到的立方体越少,生成的虚拟光点也越少。当边长越短是划分得到的立方体越多,生成的虚拟光点也越多。点云中每个虚拟光点的坐标可以表示如下:
Cloud_pos=first_cloud_pos+cloud_size*int3(offset_x,offset_y,offset_z)
其中,Cloud_pos为一虚拟光点的坐标,first_cloud_pos为第一个处于最小边界处的虚拟光点的坐标,cloud_size为立方体的边长,或者为两个相邻虚拟光点间的最小距离。offset_x,offset_y,offset_z分别为该虚拟光点在x轴、y轴以及z轴上的索引位置。索引位置即在某一坐标轴中第几个的意思。
步骤203,计算机设备在目标场景空间中生成光照探针集合。
其中,光照探针提供了一种方法用于捕获和使用穿过场景中空白空间的光的信息。和光照贴图相似,光照探针也存储光宇场景中光照的信息,其区别是光照贴图存储的是光线照射场景表面的光照信息,而光照探针存储的光线穿过场景空白空间的信息。光照探针也可以理解为一个个的三维感应点,该感应点可以感应穿过其的光照信息。光照探针之间相互连接,共同构建了目标场景空间。具体地,用户可以自行设置光照探针的密度,当目标场景空间确定后,光照探针密度越大,则光照探针的尺寸越小,目标场景空间中生成的光照探针数量越多。光照探针密度越小,则光照探针的尺寸越大,目标场景空间中生成的光照探针数量越少。
目标场景空间中每个光照探针的位置可以表示如下:
Cell_pos=first_cell_pos+cell_size*int3(cell_x,cell_y,cell_z)
Cell_pos表示某一光照探针的位置坐标,First_cell_pos表示第一个处于最小边界处的光照探针的位置坐标,cell_size表示每个光照探针之间的间距,cell_x,cell_y,cell_z分别表示该光照探针在x,y,z方向上分别处于具体的哪个索引位置。
步骤204,计算机设备对预设空间范围中的每一虚拟光点生成与每个光照探针对应的预渲染参数,得到预渲染参数集合。
其中,可以理解的是,点云中的任一个虚拟光点对每个光照探针均对应一个预渲染参数。即若点云中包含了A个虚拟光点,目标场景空间中生成了B个光照探针,那么就可以计算得到A*B数量个预渲染参数。可以理解的是,虚拟光点或者光照探头的数量越多,计算得到的预渲染参数越多,则预计算数据量越大,如此确定的可移动点光源的预渲染参数越准确。反之虚拟光点或者光照探头的数量越少,计算得到的预渲染参数越少,则预计算数据量越小,如此确定的可移动点光源的预渲染参数也相对不够准确。
具体地,在一些实施例中,对预设空间范围中的每一虚拟光点生成与每个光照探针对应的预渲染参数,包括:
1、将任一选定虚拟光点确定为预设点光源;
2、计算预设点光源在每个光照探针处的光照系数;
3、将光照系数确定为选定虚拟光点与每个光照探针对应的预渲染参数。
其中,计算某一选定虚拟光点在每个光照探针处的光照系数,可以将该虚拟光点当作点光源,然后采用路径跟踪方法进行计算该选定虚拟光点在每个光照探针处的预渲染参数。具体地,可以以任一选定光照探针为例进行详细描述。
S1:以选定光照探针为中心向四周发射射线。
S2:若射线与场景中的物体相交,则执行步骤S3,否则执行步骤S5。
S3:获取相交物体在交点处材质的rgb数值(颜色三个通道的数值)并进行累成(即重新执行本步骤时将本次数值与上次数值相乘);连接当前交点和选定虚拟光点,若连线未被物体遮挡则执行步骤S5,否则执行步骤S4。
S4:从以交点为原点,以相交面的法线为中心的半球上一点随机发射一条射线,如与其他物体相交则执行步骤S3,否则执行步骤S5。
S5:计算当前射线的rgb数值的3阶调和系数。
S6:将各方向上射线的三阶调和系数进行加权平均,得到选定虚拟光点在选定关照探针处的预渲染参数。
然后,根据上述方法遍历点云中的每个虚拟光点以及目标场景空间中的每个光照探针,得到每个虚拟光点在每个光照探针处的预渲染参数。然后,计算机设备将计算得到的每个虚拟光点在每个光照探针处的预渲染参数在本地存储空间中进行保存。从而完成了预渲染参数的离线计算。
步骤205,计算机设备获取可移动点光源的光源位置及光照参数。
其中,在对可移动点光源的目标场景空间进行实时全局渲染时,获取可移动点光源的当前光源位置。具体地,可以获取可移动点光源在预设空间范围内的坐标数据,根据该坐标数据确定可移动点光源的位置。在持续渲染过程中,可移动点光源的位置是会实时发生变化的,同时可移动点光源的光照参数也可以按照用户设置的规则发生实时的变化。因此,获取到的可移动点光源的光源位置和光照参数均是当前时刻的光源位置和光照参数。
步骤206,计算机设备根据光源位置确定与可移动点光源关联的目标虚拟光点并确定每一目标虚拟光点的权重系数。
其中,在确定了可移动点光源的当前光源位置后,可以确定当前光源位置所处的目标子空间,进而可以确定构建该目标子空间的多个目标虚拟光点。进一步地,在确定了与可移动点光源关联的目标虚拟光点后,再对每个目标虚拟光点的权重系数进行确定。目标虚拟光点的权重系数可以按照可移动点光源与目标虚拟光点的距离关系进行确定。具体地,可以采用三线性插值的方法计算每一目标虚拟光点的权重系数。该方法已经在前文中进行详细阐述,此处不再赘述。
步骤207,计算机设备计算可移动点光源在每一光照探针处的目标预渲染参数。
其中,计算机设备可以结合目标虚拟光点在每一光照探针处对应的与渲染参数与每一目标虚拟光点的权重进行加权计算,求得可移动点光源在每一光照探针处的目标预渲染参数。具体地:
LocalLightSH=Sum(Cloud_SH_i*Weight_i)
其中,LocalLightSH为可移动点光源在选定光照探针处的子目标预渲染参数,Cloud_SH_i为第i个目标虚拟光点在选定光照探针处的预渲染参数,Weight_i为第i个目标虚拟光点的权重系数。
步骤208,计算机设备根据目标预渲染参数和光照参数计算可移动点光源在每一光照探针处的光照渲染数据。
其中,在确定了可移动点光源在每个光照探针处的目标预渲染参数后,结合光照参数进行计算,得到可移动点光源在每个光照探针处的光照渲染数据。
具体地:
LightProbeColor+=Dot(LocalLightProbeSH,LocalLightSH)
其中,LightProbeColor为可移动点光源在选定光照探针处的光照渲染数据,LocalLightProbeSH为可移动点光源在选定光照探针处的直接光照数据,LocalLightSH为可移动点光源在选定光照探针处的子目标渲染参数。Dot代表向量点乘计算,+=代表累加计算。
步骤209,计算机设备将目标对象划分为多个像素,并获取每一像素的坐标数据。
其中,在确定了可移动点光源在每一光照探针处的光照数据后,便可对目标场景空间中的任一目标对象进行光照渲染。对目标对象进行光照渲染即确定该目标对象表面的光照渲染数据,因此可以将该目标对象划分为多个像素,此处多个为至少两个。并逐一确定每个像素的坐标数据。可以理解的是,像素的尺寸也可以进行设置,当像素尺寸越小时,其数量越多,则渲染的准确性越高。并分别确定每个像素处的光照渲染数据。由于可移动点光源在每一光照探针处的光照数据已知,因此只需要确定每个像素与光照探针的关系即可求得每一像素的光照数据。
步骤210,计算机设备根据每一像素的坐标数据查找与其关联的目标光照探针以及每个目标光照探针的权重,计算出每一像素的光照数据。
其中,根据每一选定像素的坐标数据可以查找到与其关联的目标光照探针,其确定方法可以类比与确定可移动点光源关联的虚拟光点,同样再根据每一目标光照探针与该像素的位置关系确定每一目标光照探针的权重。进而通过加权计算,得到每一像素的光照数据。
步骤211,计算机设备根据每一像素的光照数据对该像素进行光照渲染。
其中,当计算得到目标对象中每一像素对应的光照数据后,利用该光照数据对每一像素进行光照渲染,从而实现了对当前时刻的目标场景空间中目标对象的全局渲染。随着时间的变动,光源位置和光照参数发生变化,可以实时计算目标对象中每一像素的光照数据,从而实现实时全局渲染。
根据上述描述可知,本申请实施例提供的光照渲染方法,通过获取可移动点光源的光源位置及光照参数,可移动点光源在预设空间范围内移动;根据光源位置在预设空间范围中确定与可移动点光源关联的目标预设空间,并获取构建目标预设空间的多个目标虚拟光点,目标虚拟光点离线烘焙了预渲染参数;基于多个目标虚拟光点在每一光照探针处对应的预渲染参数计算可移动点光源在每一光照探针处对应的目标预渲染参数,光照探针为构建目标场景空间的三维感应点;根据目标预渲染参数与光照参数计算可移动点光源在每一光照探针处的光照渲染数据;利用光照渲染数据对目标对象进行光照渲染。本方法通过预计算可移动点光源对应的预设空间范围中每个点与场景空间中光照探针对应的预渲染参数,再使用预渲染参数结合光照参数进行光照渲染,从而提高了全局光照的渲染效率。
为了更好地实施以上方法,本发明实施例还提供一种光照渲染装置,该光照渲染装置可以集成在计算机设备中,该计算机设备可以为移动终端也可以为服务器。
例如,如图4所示,为本申请实施例提供的光照渲染装置的结构示意图,该光照渲染装置可以包括获取单元301、确定单元302、第一计算单元303、第二计算单元304以及渲染单元305,如下:
获取单元301,用于获取可移动点光源的光源位置及光照参数,可移动点光源在预设空间范围内移动;
确定单元302,用于根据光源位置在预设空间范围中确定与可移动点光源关联的目标预设空间,并获取构建目标预设空间的多个目标虚拟光点;
第一计算单元303,用于基于多个目标虚拟光点在每一光照探针处对应的预渲染参数,计算可移动点光源在每一光照探针处对应的目标预渲染参数,光照探针为构建目标场景空间的三维感应点;
第二计算单元304,用于根据目标预渲染参数与光照参数计算可移动点光源在每一光照探针处的光照渲染数据;
渲染单元305,用于利用光照渲染数据对目标对象进行光照渲染。
在一些实施例中,如图5所示,为本申请提供的光照渲染装置的另一结构示意图,该光照渲染装置还包括:
划分单元306,用于获取可移动点光源所处的预设空间范围,将预设空间范围划分为多个子空间,每个子空间包含多个构建子空间的虚拟光点;
第一生成单元307,用于获取目标场景空间,并在目标场景空间中以预设的光照探针密度生成光照探针集合,光照探针集合包含多个光照探针,光照探针为三维感应点;
第二生成单元308,用于对预设空间范围中的每一虚拟光点生成与每个光照探针对应的预渲染参数,得到预渲染参数集合,并将预渲染参数集合进行存储。
在一些实施例中,第二生成单元,包括:
第一确定子单元,用于将任一选定虚拟光点确定为预设点光源;
第一计算子单元,用于计算预设点光源在每个光照探针中的光照参数;
第二确定子单元,用于将光照参数确定为选定虚拟光点与每个光照探针对应的预渲染参数。
在一些实施例中,第一计算单元,包括:
获取子单元,用于获取每一目标虚拟光点的权重系数;
第二计算子单元,用于根据每一目标虚拟光点的权重系数以及每一目标虚拟光点在每一光照探针处对应的预渲染参数计算可移动点光源在每一光照探针处对应的目标预渲染参数。
在一些实施例中,获取子单元,包括:
第一获取模块,用于获取可移动点光源在目标预设空间中的目标位置;
第一计算模块,用于根据目标位置,计算每一目标虚拟光点的权重系数。
在一些实施例中,第二计算子单元,包括:
确定模块,用于从预渲染参数集合中确定每一虚拟光点与每一光照探针对应的子目标预渲染参数;
第二计算模块,用于根据每一子目标预渲染参数与对应的权重系数进行加权计算,得到可移动点光源在每一光照探针处对应的目标预渲染参数。
在一些实施例中,渲染单元,包括:
划分子单元,用于将待进行光照渲染的目标对象划分为多个像素;
渲染子单元,用于利用可移动点光源在每一光照探针处的光照渲染数据对每一像素进行光照渲染。
在一些实施例中,渲染子单元,包括:
第二获取模块,用于获取任一目标像素的坐标数据;
查找模块,用于根据坐标数据查找与目标像素关联的目标光照探针以及每一目标光照探针的权重;
第三计算模块,用于根据每一目标光照探针对应的光照渲染数据与每一目标光照探针的权重加权计算得到目标像素对应的目标光照渲染数据;
渲染模块,用于根据目标光照渲染数据对目标像素进行光照渲染。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由以上可知,本实施例提供的光照渲染装置,通过获取单元301获取可移动点光源的光源位置及光照参数,可移动点光源在预设空间范围内移动;确定单元302根据光源位置在预设空间范围中确定与可移动点光源关联的目标预设空间,并获取构建目标预设空间的多个目标虚拟光点,目标虚拟光点离线烘焙了预渲染参数;第一计算单元303基于多个目标虚拟光点在每一光照探针处对应的预渲染参数计算可移动点光源在每一光照探针处对应的目标预渲染参数,光照探针为构建目标场景空间的三维感应点;第二计算单元304根据目标预渲染参数与光照参数计算可移动点光源在每一光照探针处的光照渲染数据;渲染单元305利用光照渲染数据对目标对象进行光照渲染。本方法通过预计算可移动点光源对应的预设空间范围中每个点与场景空间中光照探针对应的预渲染参数,再使用预渲染参数结合光照参数进行光照渲染,从而提高了全局光照的渲染效率。
本申请实施例还提供一种计算机设备,如图6所示,为本申请提供的计算机设备的结构示意图。具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图6中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及光照渲染。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能以及网页访问等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取可移动点光源的光源位置及光照参数,可移动点光源在预设空间范围内移动;根据光源位置在预设空间范围中确定与可移动点光源关联的目标预设空间,并获取构建目标预设空间的多个目标虚拟光点,目标虚拟光点离线烘焙了预渲染参数;基于多个目标虚拟光点在每一光照探针处对应的预渲染参数计算可移动点光源在每一光照探针处对应的目标预渲染参数,光照探针为构建目标场景空间的三维感应点;根据目标预渲染参数与光照参数计算可移动点光源在每一光照探针处的光照渲染数据;利用光照渲染数据对目标对象进行光照渲染。
应当说明的是,本申请实施例提供的计算机设备与上文实施例中的光照渲染方法属于同一构思,以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种光照渲染方法中的步骤。例如,该指令可以执行如下步骤:
获取可移动点光源的光源位置及光照参数,可移动点光源在预设空间范围内移动;根据光源位置在预设空间范围中确定与可移动点光源关联的目标预设空间,并获取构建目标预设空间的多个目标虚拟光点,目标虚拟光点离线烘焙了预渲染参数;基于多个目标虚拟光点在每一光照探针处对应的预渲染参数计算可移动点光源在每一光照探针处对应的目标预渲染参数,光照探针为构建目标场景空间的三维感应点;根据目标预渲染参数与光照参数计算可移动点光源在每一光照探针处的光照渲染数据;利用光照渲染数据对目标对象进行光照渲染。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种光照渲染方法中的步骤,因此,可以实现本发明实施例所提供的任一种光照渲染方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
其中,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在存储介质中。计算机设备的处理器从存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2或者图3的各种可选实现方式中提供的光照渲染方法。
以上对本发明实施例所提供的一种光照渲染方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种光照渲染方法,其特征在于,所述方法包括:
获取可移动点光源的光源位置及光照参数,所述可移动点光源在预设空间范围内移动;
根据所述光源位置,在所述预设空间范围中确定与所述可移动点光源关联的目标预设空间,并获取构建所述目标预设空间的多个目标虚拟光点;
获取所述可移动点光源在所述目标预设空间中的目标位置;
根据所述目标位置,计算每一目标虚拟光点的权重系数;
根据所述每一目标虚拟光点的权重系数以及每一目标虚拟光点在每一光照探针处对应的预渲染参数,计算所述可移动点光源在每一光照探针处对应的目标预渲染参数,所述光照探针为构建目标场景空间的三维感应点;
根据所述目标预渲染参数与所述光照参数,计算所述可移动点光源在每一光照探针处的光照渲染数据;
利用所述光照渲染数据对目标对象进行光照渲染。
2.根据权利要求1所述的方法,其特征在于,所述获取可移动点光源的光源位置及光照参数之前,还包括:
获取可移动点光源所处的预设空间范围,将所述预设空间范围划分为多个子空间,每个所述子空间包含多个构建所述子空间的虚拟光点;
获取目标场景空间,并在所述目标场景空间中以预设的光照探针密度生成光照探针集合,所述光照探针集合包含多个光照探针,所述光照探针为三维感应点;
对所述预设空间范围中的每一虚拟光点生成与每个光照探针对应的预渲染参数,得到预渲染参数集合,并将所述预渲染参数集合进行存储。
3.根据权利要求2所述的方法,其特征在于,所述对所述预设空间范围中的每一虚拟光点生成与每个光照探针对应的预渲染参数,包括:
将任一选定虚拟光点确定为预设点光源;
计算所述预设点光源在每个所述光照探针处的光照系数;
将所述光照系数确定为所述选定虚拟光点与每个所述光照探针对应的预渲染参数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述每一目标虚拟光点的权重系数以及每一目标虚拟光点在每一光照探针处对应的预渲染参数计算所述可移动点光源在每一光照探针处对应的目标预渲染参数,包括:
从所述预渲染参数集合中确定所述每一目标虚拟光点与每一光照探针对应的子目标预渲染参数;
根据每一子目标预渲染参数与对应的权重系数进行加权计算,得到所述可移动点光源在每一光照探针处对应的目标预渲染参数。
5.根据权利要求1所述的方法,其特征在于,所述利用所述光照渲染数据对目标对象进行光照渲染,包括:
将待进行光照渲染的目标对象划分为多个像素;
利用所述可移动点光源在每一光照探针处的光照渲染数据,对每一像素进行光照渲染。
6.根据权利要求5所述的方法,其特征在于,利用所述可移动点光源在每一光照探针处的光照渲染数据对每一像素进行光照渲染,包括:
获取任一目标像素的坐标数据;
根据所述坐标数据查找与所述目标像素关联的目标光照探针以及每一目标光照探针的权重;
根据所述每一目标光照探针对应的光照渲染数据与每一目标光照探针的权重加权计算得到所述目标像素对应的目标光照渲染数据;
根据所述目标光照渲染数据对所述目标像素进行光照渲染。
7.一种光照渲染装置,其特征在于,所述装置包括:
获取单元,用于获取可移动点光源的光源位置及光照参数,所述可移动点光源在预设空间范围内移动;
确定单元,用于根据所述光源位置,在所述预设空间范围中确定与所述可移动点光源关联的目标预设空间,并获取构建所述目标预设空间的多个目标虚拟光点;
第一计算单元,用于获取所述可移动点光源在所述目标预设空间中的目标位置;根据所述目标位置,计算每一目标虚拟光点的权重系数;根据所述每一目标虚拟光点的权重系数以及每一目标虚拟光点在每一光照探针处对应的预渲染参数,计算所述可移动点光源在每一光照探针处对应的目标预渲染参数,所述光照探针为构建目标场景空间的三维感应点;
第二计算单元,用于根据所述目标预渲染参数与所述光照参数,计算所述可移动点光源在每一光照探针处的光照渲染数据;
渲染单元,用于利用所述光照渲染数据对目标对象进行光照渲染。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
划分单元,用于获取可移动点光源所处的预设空间范围,将所述预设空间范围划分为多个子空间,每个所述子空间包含多个构建所述子空间的虚拟光点;
第一生成单元,用于获取目标场景空间,并在所述目标场景空间中以预设的光照探针密度生成光照探针集合,所述光照探针集合包含多个光照探针,所述光照探针为三维感应点;
第二生成单元,用于对所述预设空间范围中的每一虚拟光点生成与每个光照探针对应的预渲染参数,得到预渲染参数集合,并将所述预渲染参数集合进行存储。
9.根据权利要求8所述的装置,其特征在于,所述第二生成单元,包括:
第一确定子单元,用于将任一选定虚拟光点确定为预设点光源;
第一计算子单元,用于计算所述预设点光源在每个所述光照探针中的光照参数;
第二确定子单元,用于将所述光照参数确定为所述选定虚拟光点与每个所述光照探针对应的预渲染参数。
10.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至6中任一项所述的光照渲染方法中的步骤。
11.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的光照渲染方法。
12.一种计算机程序,其特征在于,所述计算机程序包括计算机指令,所述计算机指令存储在存储介质中,计算机设备的处理器从所述存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行权利要求1至6任一项所述的光照渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110166801.5A CN112755535B (zh) | 2021-02-05 | 2021-02-05 | 光照渲染方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110166801.5A CN112755535B (zh) | 2021-02-05 | 2021-02-05 | 光照渲染方法、装置、存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112755535A CN112755535A (zh) | 2021-05-07 |
CN112755535B true CN112755535B (zh) | 2022-07-26 |
Family
ID=75705183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110166801.5A Active CN112755535B (zh) | 2021-02-05 | 2021-02-05 | 光照渲染方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112755535B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113648652B (zh) * | 2021-08-20 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 对象渲染方法和装置、存储介质及电子设备 |
CN116206041A (zh) * | 2021-11-30 | 2023-06-02 | 华为技术有限公司 | 一种渲染方法及其相关设备 |
CN116778070A (zh) * | 2022-03-08 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 三维空间的全局光照计算方法、装置、设备及存储介质 |
CN116797711A (zh) * | 2022-03-15 | 2023-09-22 | 华为技术有限公司 | 解码方法及电子设备 |
CN116800985A (zh) * | 2022-03-15 | 2023-09-22 | 华为技术有限公司 | 编解码方法和装置 |
CN115082607B (zh) * | 2022-05-26 | 2024-08-30 | 网易(杭州)网络有限公司 | 虚拟角色头发渲染方法、装置、电子设备和存储介质 |
CN115170714A (zh) * | 2022-06-29 | 2022-10-11 | 先临三维科技股份有限公司 | 一种扫描图像渲染方法、装置、电子设备及存储介质 |
CN114998504B (zh) * | 2022-07-29 | 2022-11-15 | 杭州摩西科技发展有限公司 | 二维图像光照渲染方法、装置、系统和电子装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005114148A2 (en) * | 2004-05-14 | 2005-12-01 | Kla-Tencor Technologies Corp. | Systems and methods for measurement or analysis of a specimen |
CN103635939A (zh) * | 2011-02-22 | 2014-03-12 | 索尼电脑娱乐美国公司 | 用于虚拟环境的间接照亮过程 |
CN106780707A (zh) * | 2016-11-17 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 模拟场景中全局光照的方法和装置 |
CN107633549A (zh) * | 2017-10-13 | 2018-01-26 | 苏州蜗牛数字科技股份有限公司 | 一种基于环境光照探针的实时渲染方法及装置 |
CN108236783A (zh) * | 2018-01-09 | 2018-07-03 | 网易(杭州)网络有限公司 | 游戏场景中模拟光照的方法、装置、终端设备及存储介质 |
-
2021
- 2021-02-05 CN CN202110166801.5A patent/CN112755535B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005114148A2 (en) * | 2004-05-14 | 2005-12-01 | Kla-Tencor Technologies Corp. | Systems and methods for measurement or analysis of a specimen |
CN103635939A (zh) * | 2011-02-22 | 2014-03-12 | 索尼电脑娱乐美国公司 | 用于虚拟环境的间接照亮过程 |
CN106780707A (zh) * | 2016-11-17 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 模拟场景中全局光照的方法和装置 |
CN107633549A (zh) * | 2017-10-13 | 2018-01-26 | 苏州蜗牛数字科技股份有限公司 | 一种基于环境光照探针的实时渲染方法及装置 |
CN108236783A (zh) * | 2018-01-09 | 2018-07-03 | 网易(杭州)网络有限公司 | 游戏场景中模拟光照的方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112755535A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112755535B (zh) | 光照渲染方法、装置、存储介质及计算机设备 | |
US11270497B2 (en) | Object loading method and apparatus, storage medium, and electronic device | |
Dachsbacher et al. | Scalable realistic rendering with many‐light methods | |
US7212207B2 (en) | Method and apparatus for real-time global illumination incorporating stream processor based hybrid ray tracing | |
CA2506419C (en) | Visible surface determination system & methodology in computer graphics using interval analysis | |
US8243073B2 (en) | Tree insertion depth adjustment based on view frustum and distance culling | |
CN113034656B (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
US7212206B2 (en) | Method and apparatus for self shadowing and self interreflection light capture | |
CN113034657B (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
EP2671210A2 (en) | Three-dimensional environment reconstruction | |
US20240029338A1 (en) | Ray-tracing with irradiance caches | |
Yao et al. | Multi‐image based photon tracing for interactive global illumination of dynamic scenes | |
Alhejri et al. | Reconstructing real object appearance with virtual materials using mobile augmented reality | |
Scholz et al. | Real‐time isosurface extraction with view‐dependent level of detail and applications | |
US11861785B2 (en) | Generation of tight world space bounding regions | |
Aman et al. | Multi‐level tetrahedralization‐based accelerator for ray‐tracing animated scenes | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
US20040181373A1 (en) | Visual simulation of dynamic moving bodies | |
Kolivand et al. | Simulated real-time soft shadow in mixed reality using fuzzy logic | |
US20220203231A1 (en) | Methods and Systems for Determining Decal Projections Intersecting Spacial Units in a Frame of a Game Space | |
Simion et al. | Practical gpu and voxel-based indirect illumination for real time computer games | |
Vandersanden | A scalable and coherent approach to Monte Carlo path tracing for multi-user environments | |
CN118356646A (zh) | 一种游戏渲染处理方法、装置、电子设备及存储介质 | |
CN117058301A (zh) | 一种基于延迟着色的针织物实时渲染方法 | |
Forstmann et al. | Visualizing large procedural volumetric terrains using nested clip-boxes |
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: 40043865 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |