CN112927341A - 光照渲染方法、装置、计算机设备和存储介质 - Google Patents
光照渲染方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112927341A CN112927341A CN202110359533.9A CN202110359533A CN112927341A CN 112927341 A CN112927341 A CN 112927341A CN 202110359533 A CN202110359533 A CN 202110359533A CN 112927341 A CN112927341 A CN 112927341A
- Authority
- CN
- China
- Prior art keywords
- light source
- illumination
- virtual scene
- target pixel
- pixel point
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/02—Non-photorealistic rendering
-
- 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/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- 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
- G06T15/503—Blending, e.g. for anti-aliasing
-
- 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
- G06T15/506—Illumination models
-
- 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
- G06T15/55—Radiosity
-
- 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
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/12—Shadow map, environment map
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及一种光照渲染方法、装置、计算机设备和存储介质。所述方法包括:当虚拟场景中的光源发生变化时,确定光源变化信息;根据所述光源变化信息,确定变化后的光源所对应的当前光源投影系数;根据所述虚拟场景中的目标像素点对应的光照传递参数和所述当前光源投影系数,确定所述目标像素点在所述虚拟场景中的间接光照值;确定所述目标像素点在变化后的光源下对应的直接光照值;根据所述直接光照值和所述间接光照值,对所述目标像素点进行光照渲染。采用本方法能够有效提高虚拟场景中动态光照下的光照渲染效果。
Description
技术领域
本申请涉及图像处理技术领域,特别是涉及一种光照渲染方法、装置、计算机设备和存储介质。
背景技术
在图像渲染中,为了实现逼真的场景光照效果,需要在渲染器中指定全局光照。全局光照,表现了直接照明和间接照明的综合效果。例如全局光照可以通过光线追踪、环境光遮蔽、光照探针等方式实现。当从光源处发射出光线后,碰到障碍物后经过数次的反射和折射,虚拟场景中物体表面和角落都会有光感。
在相关技术中,是针对静态光照场景进行处理,将静态光照场景中物体的静态光照信息预先烘培出来,以供场景在运行时直接使用。然而,这种方法并不适用于动态光照场景,会导致动态光照场景下的光照渲染效果较差。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效提高动态光照场景下的光照渲染效果的光照渲染方法、装置、计算机设备和存储介质。
一种光照渲染方法,所述方法包括:
当虚拟场景中的光源发生变化时,确定光源变化信息;
根据所述光源变化信息,确定变化后的光源所对应的当前光源投影系数;
根据所述目标像素点对应的光照传递参数和所述当前光源投影系数,确定所述目标像素点在所述虚拟场景中的间接光照值;
确定所述虚拟场景中的目标像素点在变化后的光源下对应的直接光照值;
根据所述直接光照值和所述间接光照值,对所述目标像素点进行光照渲染。
一种光照渲染装置,所述装置包括:
光源确定模块,用于当虚拟场景中的光源发生变化时,确定光源变化信息;
投影系数更新模块,用于根据所述光源变化信息,确定变化后的光源所对应的当前光源投影系数;
间接光照确定模块,用于根据所述虚拟场景中的目标像素点对应的光照传递参数和所述当前光源投影系数,确定所述目标像素点在所述虚拟场景中的间接光照值;
直接光照确定模块,用于确定所述目标像素点在变化后的光源下对应的直接光照值;
光照渲染模块,用于根据所述直接光照值和所述间接光照值,对所述目标像素点进行光照渲染。
在一个实施例中,所述投影系数更新模块还用于根据所述光源变化信息,确定光照变换矩阵;确定所述虚拟场景中光源变化前的初始光源投影系数;根据所述光照变换矩阵和所述初始光源投影系数,确定变化后的光源所对应的当前光源投影系数。
在一个实施例中,所述光源变化信息,是变化后的光源相较于所述虚拟场景中预设的原始光源所产生的变化信息;所述投影系数更新模块还用于获取将所述原始光源投影至投影基函数得到的初始光源投影系数;根据所述光照变换矩阵,对所述初始光源投影系数进行更新,得到变化后的光源所对应的当前光源投影系数。
在一个实施例中,所述光源变化信息,是变化后的光源相较于所述虚拟场景中变化前的历史光源所产生的变化信息;所述投影系数更新模块还用于获取与所述历史光源对应的历史光源投影系数;根据所述光照变换矩阵,对所述历史光源投影系数进行更新,得到变化后的光源所对应的当前光源投影系数。
在一个实施例中,所述间接光照确定模块还用于针对所述虚拟场景中属于静态物体的目标像素点,根据所述当前光源投影系数和所述目标像素点在相匹配的光照贴图中存储的光照传递参数,确定所述目标像素点在所述虚拟场景中的间接光照值。
在一个实施例中,所述间接光照确定模块还用于针对所述虚拟场景中属于静态物体的目标像素点,基于纹理映射关系在所述静态物体的光照贴图中,查找与所述目标像素点相匹配的纹素;根据所述相匹配的纹素,从所述光照贴图中获取与所述目标像素点对应的光照传递参数;根据所述当前光源投影系数和所述目标像素点对应的光照传递参数,确定所述目标像素点在所述虚拟场景中的间接光照值。
在一个实施例中,所述间接光照确定模块还用于针对所述虚拟场景中属于动态物体的目标像素点,根据所述当前光源投影系数和相匹配的光照探针中存储的光照传递参数,确定所述目标像素点在所述虚拟场景中的间接光照值。
在一个实施例中,所述间接光照确定模块还用于针对所述虚拟场景中属于动态物体的目标像素点,确定与所述动态物体的目标像素点相匹配的光照探针;根据所述当前光源投影系数和所述光照探针中存储的光照传递参数,更新所述光照探针上各方向对应的光线亮度;对各所述光照探针对应的更新后的光线亮度进行插值;根据插值后的光线亮度和所述目标像素点的法线方向,确定所述目标像素点在所述虚拟场景中的间接光照值。
在一个实施例中,上述光照渲染装置还包括光照传递参数烘培模块,用于将原始光源投影至多个投影基函数,将投影后的每个投影基函数分别作为对应的虚拟光源;针对所述虚拟场景中静态物体的各像素点,基于光线追踪确定各所述虚拟光源在所述像素点对应的光照传递参数,并存储至对应的光照贴图中;针对所述虚拟场景中的光照探针,基于光线追踪确定各所述虚拟光源在所述光照探针对应的光照传递参数,并存储至所述光照探针中。
在一个实施例中,所述光照传递参数烘培模块还用于针对所述虚拟场景中静态物体的每个像素点,获取各所述虚拟光源投影后在所述像素点对应的光线亮度;以所述像素点为起点,向所述像素点的法线所指向的半球面,发射具有所述光线亮度的射线;在所述虚拟场景中,采样各所述射线经过所述半球面反射后的反射亮度和光亮衰减度;基于各所述射线所对应的所述反射光线亮度和所述光源亮度,确定所述像素点对应的光照传递参数,并将所述光照传递参数存储至对应的光照贴图中。
在一个实施例中,所述光照传递参数烘培模块还用于针对所述虚拟场景中的光照探针,获取各所述虚拟光源投影后在所述光照探针的各个面对应的光线亮度;基于所述光线亮度,以所述光照探针的中心点为起点,向以所述中心点为中心的预设半径的球面发射射线;在所述虚拟场景中,采样各所述射线经过所述球面反射后的反射亮度和光亮衰减度;基于各所述射线对应的所述反射亮度和所述光亮衰减度,确定各所述光照探针对应的光照传递参数,并将所述光照传递参数存储至所述光照探针中。
在一个实施例中,所述虚拟场景为虚拟游戏场景,所述虚拟游戏场景中的光源为远景光源;所述光源确定模块还用于在运行虚拟游戏场景时,监测所述虚拟游戏场景中远景光源的光源方向;当所述光源方向发生变化时,根据变化后的光源方向和所述远景光源的初始光源方向,确定光源变化信息。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当虚拟场景中的光源发生变化时,确定光源变化信息;
根据所述光源变化信息,确定变化后的光源所对应的当前光源投影系数;
根据所述虚拟场景中的目标像素点对应的光照传递参数和所述当前光源投影系数,确定所述目标像素点在所述虚拟场景中的间接光照值;
确定所述目标像素点在变化后的光源下对应的直接光照值;
根据所述直接光照值和所述间接光照值,对所述目标像素点进行光照渲染。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当虚拟场景中的光源发生变化时,确定光源变化信息;
根据所述光源变化信息,确定变化后的光源所对应的当前光源投影系数;
根据所述虚拟场景中的目标像素点对应的光照传递参数和所述当前光源投影系数,确定所述目标像素点在所述虚拟场景中的间接光照值;
确定所述目标像素点在变化后的光源下对应的直接光照值;
根据所述直接光照值和所述间接光照值,对所述目标像素点进行光照渲染。
一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令时实现以下步骤:
当虚拟场景中的光源发生变化时,确定光源变化信息;
根据所述光源变化信息,确定变化后的光源所对应的当前光源投影系数;
根据所述虚拟场景中的目标像素点对应的光照传递参数和所述当前光源投影系数,确定所述目标像素点在所述虚拟场景中的间接光照值;
确定所述目标像素点在变化后的光源下对应的直接光照值;
根据所述直接光照值和所述间接光照值,对所述目标像素点进行光照渲染。
上述光照渲染方法、装置、计算机设备和存储介质,当虚拟场景中的光源发生变化时,首先确定光源变化信息,然后根据光源变化信息,确定变化后的光源所对应的当前光源投影系数,从而能够精准有效地实时更新当前光源投影系数。进而根据虚拟场景中的目标像素点对应的光照传递参数和当前光源投影系数,确定目标像素点在虚拟场景中的间接光照值。由此能够精准地计算出目标像素点在变化后的光源下的间接光照值。通过确定目标像素点在变化后的光源下对应的直接光照值,并根据直接光照值和间接光照值,对目标像素点进行光照渲染,由此能够精准高效地对实时变化的光源进行光照渲染处理,从而有效提高了虚拟场景中动态光照下的光照渲染效果。
附图说明
图1为一个实施例中光照渲染方法的应用环境图;
图2为一个实施例中光照渲染方法的流程示意图;
图3为一个实施例中光源的光照效果的示意图;
图4为另一个实施例中光源的光照效果的示意图;
图5为一个实施例中光照探针对应的每个面的光照传递参数的示意图;
图6为一个实施例中场景画面的示意图;
图7为一个实施例中对场景画面进行投影后的示意图;
图8为一个具体的实施例中光照渲染方法的流程示意图;
图9为一个实施例中场景画面的渲染效果的示意图;
图10为另一个实施例中场景画面的渲染效果的示意图;
图11为一个实施例中采用三种不同方式进行光照渲染的效果示意图;
图12为一个实施例中光照渲染装置的结构框图;
图13为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的三维场景下的图像处理方法,可以应用于计算机设备中。计算机设备可以为终端或服务器。可以理解的是,本申请提供的三维场景下的图像处理方法可以应用于终端,也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。
本申请提供的光照渲染方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。具体地,终端102可以从服务器104中获取虚拟场景对应的场景数据,场景数据中包括光源、光源变化信息、光源投影系数等光照数据。终端102在运行虚拟场景的过程中,当虚拟场景中的光源发生变化时,确定光源变化信息。终端102然后根据光源变化信息,确定变化后的光源所对应的当前光源投影系数;根据目标像素点对应的光照传递参数和当前光源投影系数,确定目标像素点在虚拟场景中的间接光照值;确定目标像素点在变化后的光源下对应的直接光照值;根据直接光照值和间接光照值,对目标像素点进行光照渲染。
其中,终端102可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
云技术(Cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。可以理解,在本申请的光照渲染方法,就是基于计算机视觉技术,对虚拟场景中待渲染图像的目标像素点进行图像处理,从而能够有效提高动态光照场景下的光照渲染效果。
在一个实施例中,如图2所示,提供了一种光照渲染方法,以该方法应用于计算机设备为例进行说明,该计算机设备具体可以是图1中的终端或服务器,可以理解的是,该方法还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,包括以下步骤:
S202,当虚拟场景中的光源发生变化时,确定光源变化信息。
可以理解,虚拟场景,是指计算机通过数字通讯技术勾勒出的数字化场景,包括二维虚拟场景和三维虚拟场景,可以用虚拟化技术手段来真实模拟出现世界的各种物质形态、空间关系等信息。其中,三维虚拟场景能够更加美观地展示物体对象的形态,同时也能更加直观地展示虚拟现实世界。例如,三维虚拟场景下的物体对象可以包括地形、房屋、树木、人物等中的至少一种。随着虚拟场景的应用越来越广泛,例如游戏开发、视频制作等。
对于虚拟场景,可以通过计算机三维图形显示,可以在屏幕上展示三维的仿真环境,虚拟场景中的所有物体对象都可以通过三维场景数据描述。例如,可以把三维场景数据加载到三维场景中,以展示出三维的仿真环境。例如,三维场景数据包括模型数据、纹理数据、光照数据、矢量数据、地形数据、栅格体数据等中的至少一种。其中,光照数据中包括光源和光源变化信息等中的至少一种。
终端可以对虚拟场景中的场景画面进行一系列的渲染处理,以使虚拟场景中的画面内容以二维的图像形式在屏幕上进行显示。其中,在计算机图形中,渲染是指将三维场景中的物体模型,按照设定好的环境、材质、光照及渲染参数,二维投影成数字图像的过程。其中,光照渲染,也就是将三维的光能传递处理转换为一个二维图像的过程。虚拟场景和环境中实体用三维形式表示,更接近于现实世界,便于操纵和变换。通过对虚拟场景中待展示的像素点进行顶点渲染、着色渲染以及光照渲染等一系列渲染处理后,能够使得虚拟场景的呈现效果愈加精细和美观。
其中,光源,是指能够自行发光且正在发光的物体,例如太阳、电灯、燃烧的物质等。可以理解,虚拟场景中的光源,是能够真实地模型现实中的光源的光照效果的一系列光照数据。
虚拟场景中的光源,是通过对被照射物体表面的明暗分布、色彩分布进行光照计算,并且使得被照射物体和周围环境有明暗、色彩的对比,从而表现出物体的光照效果。区别于现实中的光源,虚拟场景中的光源可以是没有形状或者轮廓的虚拟光源节点。
例如,可以根据虚拟场景中光源的位置,来计算被照射物体的光照效果,而浏览者是看不到光源本身的。与现实中的光源类似,当虚拟场景中的有色光源,投射到有色物体表面上时,最终渲染出的颜色取决于光线的反射和吸收情况。其中,还可以基于虚拟场景中预先构建的三维几何模型,构建出虚拟场景中的光源照射在虚拟场景下的物体上时的阴影效果。
在虚拟场景中,可以通过模拟光线在环境中的传播,实现仿真的光照效果。其中,光线在介质中可以沿直线传播,在传播的过程中遇到障碍物如物体时,可能会发生光线的反射、散射、漫反射、被吸收等情况。其中,不同材质的物体,光线在其表面的反射通过率不同。例如,光线传播到镜面时会发生反射,其发射通过率较高。光线传播到桌面时,会发生漫反射,其发射通过率则会衰减。
可以理解的是,当虚拟场景中光源发生变化时,虚拟场景中的环境光照效果也会随之发生变化。其中,光源变化信息,是指是变化后的光源相较于虚拟场景中变化前的光源所产生的变化信息。例如,光源变化信息可以包括光源位置变化信息、光源强度变化信息、光源方向变化信息等中的至少一种。
具体地,终端在展示虚拟场景或运行包括虚拟场景的应用的过程中,当检测到虚拟场景中的光源发生变化时,则获取当前的光源信息,将当前的光源信息与光源变化前的光源信息进行比对,从而确定光源变化信息。
S204,根据光源变化信息,确定变化后的光源所对应的当前光源投影系数。
其中,光源投影系数,可以是指光源对应的光照强度系数。可以理解,光源与光源投影系数呈线性关系,不同的光源对应不同的投影系数。例如,虚拟场景中的光源,可以看作一个虚拟的光源,也即一组光源函数。将这个虚拟的光源投影到投影基函数上,就会得到一组系数,这组系数则为光源投影系数。
可以理解的是,虚拟场景中的光照是一种线性系统,光源的线性组合产生的光照效果,也是单独光源的光照效果的线性组合。在其中一个实施例中,如图3所示,图32中包括光源3a和光源3b,图32a中包括光源3a,图32b中包括光源3b。图32中的光照效果,则是图32a与图32b的光照叠加的效果。如图4所示,图42中包括光源4a,图42a中包括光源4a的一半光照亮度。图42中的光照效果,则是两倍的图42a中的光照效果。由此可见,图32中包括一倍的光源3a和一倍的光源3b,以及图42中包括两倍的光源4a,其中,光源的倍数即为各光源对应的光源投影系数。
当终端监测到虚拟场景中的光源发生变化时,终端则根据光源变化后的光源变化信息,对当前虚拟场景中的光照进行更新。具体地,终端光源变化信息,更新虚拟场景中的目标像素点所对应的光照数据。也就是当光源发生变化时,终端需要根据光源变化信息,重新计算虚拟场景中当前光源对应的当前光源投影系数。
S206,根据虚拟场景中的目标像素点对应的光照传递参数和当前光源投影系数,确定目标像素点在虚拟场景中的间接光照值。
其中,像素点,可以是指一个像素的中心位置。可以理解,像素可以是一个小方格形式的区域,一个小方格可以对应代表一个像素,像素的中心即像素点。图像通常有多个像素组成。
三维的虚拟场景需要经过一系列的渲染,使其内容以二维的形式表现到屏幕中。三维的虚拟场景可以通过连续的场景画面图像进行展示,场景画面图像由多个像素点构成。
可以理解,目标像素点,是指虚拟场景中的待渲染图像对应的像素点,也就是当前需要被渲染的像素点。其中,目标像素点的颜色值、亮度值、深度值等像素信息可以通过虚拟场景中的场景数据确定。比如,目标像素点的亮度值和颜色值与其所在环境的光线密集程度、周围遮挡光线的虚拟物体的数量等有关。
其中,光照传递参数,可以包括光照转移向量。光照转移向量,是用于将入射光线转化为包含自遮挡、互反射的转移入射光的向量,具体可以用于确定单位面积内的辐射照度(Irradiance)。
可以理解,光源投射至虚拟环境中后,可以产生全局光照效果。其中,全局光照是三维软件中的特有名词,光具有反射和折射的性质。在真实的大自然环境中,白天的太阳光照射到地面是经过无数次的反射和折射的,因此人眼看到的地面都是清晰的。在三维软件中,全局光照不仅可以计算物体的光亮面以及阴暗面,还能计算虚拟环境中光的反射、折射等各种光效。
现实中的物体表面接收到的光照并不是全部来自光源,还包括其他物体反射的光照。其中,来自光源的光照即为直接光照,而来自其他物体的光照就是间接光照。全局光照效果包括直接光照和间接光照的效果,也就是全局光照=直接光照+间接光照。
其中,直接光照,是指光源直接照射到物体上,并反射到虚拟观测点或摄像机的光照亮度。间接光照,是指光源先照射到其它物体上,并经过一次或多次弹射,最终抵达到被观察的物体表面上,然后反射到虚拟观测点或摄像机的光照亮度。
其中,光照亮度,是指光强度,也就是单位投影面积的辐射度。单位投影面积是就光照垂直的平面,单位面积下的辐射通量被称为辐射度。其中,辐射通量表示每秒流经某个区域的光照能量总和。同样的光照能量照射在不同面积的物体表面其亮度也是不同的,物体表面的角度会导致入射光线散布开来从而减少辐射度。
其中,直接光照值,是指虚拟环境中的物体接收到光源直接光照后的颜色值,也就是光照强度值。同理,间接光照值,就是指虚拟环境中的物体接收到间接光照后的颜色值。
终端根据光源变化后的光源变化信息,确定变化后的光源所对应的当前光源投影系数后,则根据目标像素点对应的光照传递参数和当前光源投影系数,确定目标像素点在虚拟场景中的间接光照值。
具体地,终端在渲染目标像素点之前,可以预先计算出虚拟场景中各物体对应的光照传递参数,具体可以包括虚拟场景中各静态物体对应的光照传递参数和光照探针对应的光照传递参数。
可以理解的是,虚拟场景中的目标像素点的间接光照值可以直接由光照传递参数和当前光源投影系数计算得到。
S208,确定目标像素点在变化后的光源下对应的直接光照值。
可以理解,当虚拟环境中的光源发生变化时,虚拟环境中各物体所接收到的直接光照亮度也会发生变化。其中,虚拟场景中的直接光照和阴影可以利用运行时的渲染管线来动态计算,从而实现地直接光照进行实时计算。
具体地,终端可以根据光源变化信息,确定变化后的光源照射到目标像素点上的光线亮度,并根据变化后的光线亮度、目标像素点对应的物体颜色以及目标像素点与虚拟观测点的角度,实时计算出目标像素点在变化后的光源下对应的直接光照值。具体可以采用预设方式,计算变化后的光源的光线投射至目标像素点后,光线的光亮度贡献,并作为像素的颜色值,从而得到目标像素点在变化后的光源下对应的直接光照值。
其中,当光源未直接照射至目标像素点上时,目标像素点对应的直接光照值则可以为零,也就是该目标像素点仅包括光源照射至虚拟环境中的光线经过多次反射后的间接光照值。可以理解,待渲染的目标像素点包括多个,针对每个像素点,可以仅包括直接光照值或间接光照值,也可以同时包括直接光照值和间接光照值。其中,当直接光照值为有效值时,间接光照值则可以为零;当间接光照值为有效值时,直接光照值则可以为零。
在其中一个实施例中,终端还根据目标像素点对应的直接光照值,确定各目标像素点对应的阴影。具体的,对于阴影值的计算,即针对每一个像素点,向光源发射射线,如果光线和物体相交,物体处于阴影之中,阴影值为0,若不相交阴影值为1,对于阴影边缘可能存在半影的情况,此时阴影值为0-1之间。
S210,根据直接光照值和间接光照值,对目标像素点进行光照渲染。
其中,光照渲染,是指对待渲染图像中的目标像素点进行渲染过程中的光照计算处理,以使最终的目标像素点具有光照效果。
可以理解的是,通过计算出虚拟环境中各目标像素点的直接光照值和间接光照值,则获得了虚拟环境中各目标像素点的全局光照信息。
具体地,终端计算出待渲染的目标像素点对应的直接光照值和间接光照值后,则根据各目标像素点对应的直接光照值和间接光照值,对目标像素点进行光照渲染,以得到最终的画面渲染结果。
上述光照渲染方法中,当虚拟场景中的光源发生变化时,终端首先确定光源变化信息,然后根据光源变化信息,确定变化后的光源所对应的当前光源投影系数,从而能够精准有效地实时更新当前光源对应的当前光源投影系数。终端进而根据当前光源投影系数和目标像素点对应的光照传递参数,确定目标像素点在虚拟场景中的间接光照值。由此能够精准地计算出目标像素点在变化后的光源下的间接光照值。终端进而确定目标像素点在变化后的光源下对应的直接光照值,并根据直接光照值和间接光照值,对目标像素点进行光照渲染,由此能够精准高效地对实时变化的光源进行光照渲染处理,从而有效提高了动态光照场景下的光照渲染效果。
在一个实施例中,根据光源变化信息,确定变化后的光源所对应的当前光源投影系数,包括:根据光源变化信息,确定光照变换矩阵;确定虚拟场景中光源变化前的初始光源投影系数;根据光照变换矩阵和初始光源投影系数,确定变化后的光源所对应的当前光源投影系数。
可以理解,当光源发生变化时,对应的光源投影系数也会随之改变。光源变化所对应的光源变化信息,具体是根据变化后的光源相较于变化前的光源的差异所确定的。
其中,变换矩阵,是表示能够进行线性变换的线性代数,任意线性变换都可以用矩阵表示为易于计算的一致形式,且多个变换也可以很容易地通过矩阵的相乘连接在一起。例如,在三维计算机图形学中,投影空间下的仿射变换与透视投影可以用齐次坐标表示多维的线性变换。
可以理解,光照变换矩阵,是指用于表示光线变化的变换矩阵。初始光源投影系数,是指光源变化前的光源对应的光源投影系数。
具体地,终端确定出光源变化信息后,首先根据光源变化信息,更新光源变化后的光照变换矩阵。终端则获取光源变化前所对应的初始光源投影系数,进而根据更新的光照变换矩阵和初始光源投影系数,计算出变化后的光源所对应的当前光源投影系数。由此能够实时计算出虚拟场景中的当前光源对应的当前光源投影系数,从而能够快速地更新动态光源下的光源投影系数。
在一个实施例中,光源变化信息,是变化后的光源相较于虚拟场景中预设的原始光源所产生的变化信息;确定虚拟场景中光源变化前的初始光源投影系数,包括:获取将原始光源投影至投影基函数得到的初始光源投影系数。根据光照变换矩阵和初始光源投影系数,确定变化后的光源所对应的当前光源投影系数,包括:根据光照变换矩阵,对初始光源投影系数进行更新,得到变化后的光源所对应的当前光源投影系数。
其中,虚拟场景中预设的原始光源,是在展示虚拟场景之前,在虚拟场景中预先设定的固定的原始光源。预设的原始光源不会发生变化。
在数学中,基函数是指函数空间中特定基底的元素。在函数空间中,每个连续函数可以表示为基函数的线性组合。基函数也称为混合函数,能够将基函数混合起来可作为插值函数。可以理解,投影基函数,就是指用于将光源输入至基函数,以通过基函数计算光源光线的反射情况。
在其中一个实施例中,投影基函数具体可以为球面谐波函数。球面谐波函数,是将满足拉普拉斯方程的谐函数限制于球坐标系下的单位球面,可以用来表示球面上的方向分布。在图形学中,球面谐波函数是一种定义在球面的广义傅里叶变化,可以将离散的球面函数参数化,来模拟低频的环境光照明。例如用来表示虚拟场景中物体表面的BRDF函数(Bidirectional Reflectance Distribution Function,双向反射分布函数)、环境贴图、光照传输、可见性分布等与方向有关的函数。球面谐波函数可以用于捕捉光照,然后进行重新光照处理,以实时计算出虚拟环境中的全局光照。在其他的实施例中,投影基函数还可以采用球面高斯函数、自定义分段函数等作为投影基函数,本申请在此不做限定。
可以理解,在虚拟场景中的光源,具有对应的光源函数。将光源投影至投影基函数中,也就是将光源函数投影到预设的投影基函数上。
通过将光源投影至投影基函数中,对于表面上的每一个点,四面八方入射的光线都会对他有光照亮度的贡献,单个点的最终出射光强要计算出来就需要很多的光线采样,具体的求解渲染方程,可是视为是一个半球面上的积分。
当虚拟场景中的光源发生变化时,终端根据变化后的光源,与虚拟场景中预设的原始光源进行比较,得到光源变化信息。然后,终端则获取与原始光源对应的初始光源投影系数。其中,初始光源投影系数是通过将原始光源投影至投影基函数上得到的投影系数。
终端根据光源变化信息确定对应的光照变换矩阵,进而根据光照变换矩阵对初始光源投影系数进行更新。具体地,终端可以将光照变化矩阵与初始光源投影系数进行点积处理,从而能够得到更新的投影系数。终端则将得到的更新的投影系数,作为虚拟场景中变化后的光源所对应的当前光源投影系数,由此能够实时地快速计算出当前光源对应的当前光源投影系数。
在一个实施例中,光源变化信息,是变化后的光源相较于虚拟场景中变化前的历史光源所产生的变化信息;确定虚拟场景中光源变化前的初始光源投影系数,包括:获取与历史光源对应的历史光源投影系数。根据光照变换矩阵和初始光源投影系数,确定变化后的光源所对应的当前光源投影系数,包括:根据光照变换矩阵,对历史光源投影系数进行更新,得到变化后的光源所对应的当前光源投影系数。
其中,虚拟场景中变化前的历史光源,是指变化后的当前光源在变化前所对应的光源。例如,当前时刻的光源相较于上一时刻的光源发生了变化,则当前时刻的光源是变化后的光源,上一时刻的光源是变化前的历史光源。可以理解,历史光源投影系数,是已经计算出的与历史光源对应的历史光源投影系数。具体可以是将历史光源投影至投影基函数得到的历史光源投影系数。
当虚拟场景中的光源发生变化时,终端根据变化后的光源,与虚拟场景中变化前的历史光源进行比较,得到光源变化信息。终端进而直接获取已经计算出的与历史光源对应的历史光源投影系数。
终端进而根据光源变化信息确定对应的光照变换矩阵,以根据光照变换矩阵对历史光源投影系数进行更新。具体地,终端可以将光照变化矩阵与历史光源投影系数进行点积处理,即类似于将矩阵与向量(一组投影系数)进行变换,从而能够得到更新的投影系数。终端则将得到的更新的投影系数,作为虚拟场景中变化后的光源所对应的当前光源投影系数。
本实施例中,通过实时对变化之前的历史光源投影系数进行更新,能够精准有效地对上一刻的历史光源投影系数进行更新,以精准实时地计算出光源变化后的光照信息。
在一个实施例中,根据虚拟场景中的目标像素点对应的光照传递参数和当前光源投影系数,确定目标像素点在虚拟场景中的间接光照值,包括:针对虚拟场景中属于静态物体的目标像素点,根据当前光源投影系数和目标像素点在相匹配的光照贴图中存储的光照传递参数,确定目标像素点在虚拟场景中的间接光照值。
可以理解,虚拟场景中的静态物体,是指虚拟场景中固定的物体,其位置和方向等均不会发生变化。
其中,光照贴图,即Light Map,是指对虚拟场景中的静态目标物体使用全局光照算法预先生成光照信息的图片,用于表示静态物体的光照视觉效果。光照贴图,与色彩渲染类似,光照渲染用于为对应的静态物体进行光照渲染处理,以渲染出相应的光照效果,从而实现模拟真实场景下光照对物体的影响。
其中,光照贴图中包括多个纹素对应的光照信息,也就像素值或颜色值。其中,纹素,是纹理元素的简称,是计算机图形纹理空间中的基本单元,可以通过纹理映射技术将纹素映射到恰当的输出图像像素上。本申请实施例中的纹素与像素相对应,也就是光照贴图中的纹素与静态物体表面的像素点对应。通过像素点的光照信息则可对物体进行光照渲染。
具体地,一张光照贴图可以对应虚拟场景中的一个静态物体对应的物体表面贴图。在另外的实施例中,一张光照贴图可以对应虚拟场景中的一个或多个静态物体,例如可以是同一平面的多个物体表面贴图。采用光照贴图技术能够离线为实时渲染的绘制对象生成光照信息,在保证性能的同时提高画面质量。
其中,虚拟场景中静态物体对应的光照贴图中,存储有预先计算出的与静态物体的纹素对应的光照传递参数。例如,具体可以是预先基于PRT技术(Precomputed RadianceTransfer,预计算辐射亮度传输的绘制技术)预计算出静态物体对应的光照传递参数,然后将光照传递参数存储至对应的光照贴图中。由此,终端在计算静态物体的间接光照时,可直接从光照贴图中获取对应的光照传递参数进行光照计算处理。
当虚拟场景中的光源发生变化时,终端根据光源变化后的光源变化信息,确定出变化后的光源对应的当前光源投影系数后,则获取与目标像素点对应的预先计算的光照传递参数,以根据光照传递参数和当前光源投影系数,计算目标像素点在虚拟场景中的间接光照值。
具体地,当待渲染的目标像素点,包括虚拟场景中静态物体的目标像素点时,对于虚拟场景中属于静态物体的目标像素点,终端则从目标像素点在相匹配的光照贴图中,获取与目标像素点对应的光照传递参数。然后终端根据当前光源投影系数和获取的光照传递参数,计算出目标像素点在虚拟场景中的间接光照值。
本实施例中,通过将虚拟场景中静态物体对应的光照传递参数预先烘培出来,并存储至对应的光照贴图中,由此终端在计算静态物体的间接光照时,可直接从光照贴图中获取对应的光照传递参数进行光照计算处理,从而能够精准快速地计算出静态物体的间接光照。
在一个实施例中,针对虚拟场景中属于静态物体的目标像素点,当前光源投影系数和目标像素点在相匹配的光照贴图中存储的光照传递参数,确定目标像素点在虚拟场景中的间接光照值,包括:针对虚拟场景中属于静态物体的目标像素点,基于纹理映射关系在静态物体的光照贴图中,查找与目标像素点相匹配的纹素;根据相匹配的纹素,从光照贴图中获取与目标像素点对应的光照传递参数;根据当前光源投影系数和目标像素点对应的光照传递参数,确定目标像素点在虚拟场景中的间接光照值。
其中,纹理映射,是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。纹理映射关系,也就是纹理空间的纹素与屏幕空间的像素之间的映射关系。通过纹理映射,能够实现将一幅图像贴到三维物体的表面上来增强真实感,可以和光照计算、图像混合等技术结合起来形成许多非常漂亮的效果。
具体地,终端在计算虚拟场景中属于静态物体的目标像素点的间接光照值的过程中,针对每一个目标像素点,终端首先获取与静态物体对应的光照贴图,然后根据纹理映射关系在静态物体对应的光照贴图中,查找与目标像素点相匹配的纹素。其中,静态物体在光照贴图中的纹素,与静态物体表面的像素点相对应。
然后终端则根据相匹配的纹素,从光照贴图中获取预先存储的与每个目标像素点对应的光照传递参数。终端进而将当前光源投影系数和每个目标像素点对应的光照传递参数进行点积处理,则可以计算得到每个目标像素点在虚拟场景中的间接光照值。
本实施例中,通过将虚拟场景中各个静态物体的光照传递参数预先烘培处理,并存储至对应的光照贴图中。由此在虚拟场景运行时,能够实时地快速计算出静态物体的间接光照值,并且能够精准快速地计算出光源变化后的静态物体的间接光照值。
在一个实施例中,根据虚拟场景中的目标像素点对应的光照传递参数和当前光源投影系数,确定目标像素点在虚拟场景中的间接光照值,包括:针对虚拟场景中属于动态物体的目标像素点,根据当前光源投影系数和相匹配的光照探针中存储的光照传递参数,确定目标像素点在虚拟场景中的间接光照值。
可以理解,虚拟场景中的动态物体,是指虚拟场景中非固定的物体,也就是可以在虚拟场景中进行移动的移动对象,其位置和方向等中的至少一种是可变化的。
其中,光照探针,是预先放置在虚拟场景中的光照探测器,具体可以是球体,还是可以多边形体,例如正方体等。通过光照探针可以捕获并使用穿过场景空白空间的光线的相关信息,能够用于为虚拟场景中的动态物体提供包括间接反射光的高质量光照信息,以及为静态物体提供高精度的细节光照信息。
与光照贴图类似,光照探针存储了虚拟场景中的光照的烘焙信息,其中包括预先计算出的光照传递参数。不同之处在于,光照贴图存储的是有关光线照射到虚拟场景中静态物体表面的光照信息,而光照探针存储的是有关光线穿过场景中的空白空间的信息。
具体地,当待渲染的目标像素点,包括虚拟场景中动态物体的目标像素点时,对于虚拟场景中属于动态物体的目标像素点,终端则获取与目标像素点相匹配的光照探针,并从光照探针中获取相应的光照传递参数。终端进而根据当前光源投影系数和与目标像素点相匹配的光照探针中存储的光照传递参数。然后终端根据当前光源投影系数和获取的光照传递参数,计算出目标像素点在虚拟场景中的间接光照值。
本实施例中,通过将虚拟场景中光照探针对应的光照传递参数预先烘培出来,并存储至对应的光照探针中,由此终端在计算动态物体的间接光照时,可直接从光照探针中获取对应的光照传递参数进行光照计算处理,从而能够精准快速地计算出动态物体的间接光照。
在一个实施例中,针对虚拟场景中属于动态物体的目标像素点,根据当前光源投影系数和相匹配的光照探针中存储的光照传递参数,确定目标像素点在虚拟场景中的间接光照值,包括:针对虚拟场景中属于动态物体的目标像素点,确定与动态物体的目标像素点相匹配的光照探针;根据当前光源投影系数和光照探针中存储的光照传递参数,更新光照探针上各方向对应的光线亮度;对各光照探针对应的更新后的光线亮度进行插值;根据插值后的光线亮度和目标像素点的法线方向,确定目标像素点在虚拟场景中的间接光照值。
可以理解,光照探针上具有多个方向,每个方向具有预先烘焙的对应的光线亮度。也就是针对光照探针上的每个方向,都预先计算出了每个方向对应的光照传递参数。
其中,法线,是指始终垂直于某平面的直线。在几何学中,法线指平面上垂直于曲线在某点的切线的一条线。对于立体表面而言,法线具有方向,通常由立体的内部指向外部的是法线正方向,反之则是法线负方向。本实施例中,目标像素点的法线方向,是指由目标像素点指向虚拟观测点或摄像机的法线的方向。
具体地,终端在计算虚拟场景中属于动态物体的目标像素点的间接光照值的过程中,针对每一个目标像素点,终端首先获取与动态物体相匹配的光照探针。具体地,可以获取与动态物体预设距离以内的光照探针。然后获取各个光照探针中存储的光照传递参数。终端进而根据各个光照探针中存储的光照传递参数,以及各个探针表面对应的当前投影系数,以及各个探针表面对应的当前投影系数,计算每个光照探针的每方向上的光线亮度。具体地,该计算出的光线亮度可以是间接光照值。
进一步地,终端然后对动态物体相匹配的光照探针对应的光线亮度进行插值处理,得到插值后的光线亮度。终端进而根据动态物体上的目标像素点的法线方向,计算动态物体上的目标像素点对应的间接光照值,从而能够精准地计算得到每个目标像素点在虚拟场景中的间接光照值。
本实施例中,通过将虚拟场景中各个光照探针的光照传递参数预先烘培处理,并存储至对应的光照探针中。由此在虚拟场景运行时,能够实时地快速计算出动态物体的间接光照值,并且能够精准快速地计算出光源变化后的动态物体的间接光照值。
在一个实施例中,当虚拟场景中的光源发生变化时,确定光源变化信息之前,上述光照渲染方法还包括:将原始光源投影至多个投影基函数,将投影后的每个投影基函数分别作为对应的虚拟光源;针对虚拟场景中静态物体的像素点,基于光线追踪确定各虚拟光源在像素点对应的光照传递参数,并存储至对应的光照贴图中;针对虚拟场景中的光照探针,基于光线追踪确定各虚拟光源在光照探针对应的光照传递参数,并存储至光照探针中。
其中,光线追踪,也即路径跟踪(Path Tracing),是计算机图形学中用于渲染虚拟场景的一种技术,是指在虚拟场景中对光线传播路径的追踪,可以得到该光线在传播过程中的光线路径。其原理为从视点发出一条光线,光线与物体表面相交时,根据表面的材质属性选择一个随机方向,继续发出另一条光线进行跟踪采样,如此迭代,直到光线打到光源上或逃逸出场景。然后计算光线的贡献,作为像素的颜色值,例如可以采用蒙特卡洛法计算光线的贡献。
因此,只要迭代的次数足够多、渲染的时间足够长,最终渲染的图像能收敛得到精确度较高的光照渲染结果。光线追踪可以渲染出高真实感的场景效果,但是相对也需要很高的计算开销。
在几何光学中,光线在物体表面反射的辐射亮度在光学传播中不会改变,也就是光照传递参数不会改变。因此,可以通过在预先烘培出虚拟场景中各物体表面的光照传递参数,由此能够有效减少实时渲染过程中的计算开销,以提高渲染处理的效率。
可以理解,在对虚拟场景中待渲染的目标像素点进行渲染之前,还可以预先烘培出虚拟场景中静态物体的像素点对应的光照传递参数,以及光照探针对应的光照传递参数。具体可以基于虚拟场景中的基函数光源进行光照传递参数的烘培。其中,基函数光源,即虚拟光源,也就是将原始光源投影至预设的投影基函数后,将每一个基函数作为一个虚拟光源,投影后的基函数则为基函数光源。
光照传递参数可以根据投影基函数,采用光线追踪的方式预先烘培出来。其中,投影基函数可以采用球面谐波函数,由于球面谐波函数具有旋转不变性和投影性能高的特性,当光源发生变化时,光照传递参数不会发生变化,仅光源对应的光源投影系数会随着光源变化而变化,因此采用球面谐波函数基于半球表面积分的形式能够有效地烘培出光照传递参数。
终端可以通过将原始光源投影至多个投影基函数上,将投影后的每个投影基函数分别作为对应的虚拟光源,然后利用光线追踪计算虚拟光源在虚拟场景中各物体表面上的亮度信息。其中,终端在预计算光照传递参数的过程中,仅对间接光照进行采样,也就是仅对光线经过两次以上反弹的射线进行采样。
然后,将每个虚拟光源分别投影至虚拟场景中各物体的表面上,虚拟场景中各物体表面的各像素点则会接收到每个虚拟光源对应的亮度信息。
具体地,终端在烘培光照传递参数的过程中,首先将预设的原始光源投影至预设的多个不同的投影基函数上,例如可以投影至3个不同的投影基函数。其中,多个即至少两个以上。可以理解的是,将原始光源投影至不同的投影基函数上,则会产生近似动态的光源,投影后的每个投影基函数则为一种虚拟光源,因此可以将投影后的每个投影基函数分别作为对应的虚拟光源。将投影后的每个投影基函数作为虚拟光源再投影至虚拟场景中,虚拟场景中各物体表面的各像素点则可以接收到各虚拟光源的亮度信息,从而能够在虚拟场景中采样近似动态光源对应的光照信息。
虚拟场景中各物体表面的各像素点,接收到各虚拟光源的亮度信息后,从各物体的像素点发出反射的射线。然后对经过反射的射线进行光线追踪,以捕捉反射的射线在虚拟场景中的光亮度贡献,从而确定物体表面上各像素点对应的光照传递参数。
具体地,终端可以对虚拟场景中的静态物体和光照探针,分别烘培出对应的光照传递参数。针对虚拟场景中静态物体的各像素点,终端则基于光线追踪确定各虚拟光源在各像素点对应的光照传递参数,并存储至对应的光照贴图中。针对虚拟场景中的光照探针,终端则基于光线追踪确定各虚拟光源在光照探针对应的光照传递参数,并存储至对应的光照探针中。
本实施例中,通过预先计算出虚拟场景中静态物体和光照探针对应的光照传递参数,并分别存储至对应的光照贴图和光照探针中,由此在实时进行光照渲染处理时,可以直接获取目标像素点对应的光照传递参数进行间接光照计算,由此能够有效减少实时渲染过程中的计算消耗,有效提高了光照渲染的效果。
在一个实施例中,针对虚拟场景中静态物体的各像素点,基于光线追踪确定各虚拟光源在像素点对应的光照传递参数,并存储至对应的光照贴图中,包括:针对虚拟场景中静态物体的每个像素点,获取各虚拟光源投影后在像素点对应的光线亮度;以像素点为起点,向像素点的法线所指向的半球面,发射具有光线亮度的射线;在虚拟场景中,采样各射线经过半球面反射后的反射亮度和光亮衰减度;基于各射线所对应的反射光线亮度和光源亮度,确定像素点对应的光照传递参数,并将光照传递参数存储至对应的光照贴图中。
其中,像素点经原始光源投影后的光线亮度,是指将虚拟场景中的原始光源投影至预设的投影基函数后,虚拟场景中静态物体上各像素点所接收到的光线亮度信息,也就是像素点在接收到光源照射后,像素点颜色的明暗程度。
可以理解,以投影基函数采用球面谐波函数为例,球面谐波函数是定义于单位球面上的正交基。将光源投影至投影基函数后,投影基函数可以用来表示球面上的方向分布。像素点的法线所指向的半球面,也就是指各像素点在投影基函数上所对应的单位半球面上的正交基。
具体地,终端在预计算虚拟场景中静态物体对应的光照传递参数时,各虚拟光源在虚拟场景中进行投影后,静态物体上的每个像素点会接收到各虚拟光源对应的光线亮度。具体可以是各虚拟光源经过多次反射后的光线亮度。
然后,针对静态物体上的每个像素点,终端则从每个像素点中心对应的世界空间位置作为起点,基于所接收到的光线亮度,向像素点的法线朝向的半球面发射光线,也就是发射具有光线亮度的射线。
终端进而在虚拟场景中进行采样,计算射线经过半球面反射后的反射亮度和光亮衰减度,进而根据反射亮度和光亮衰减度,计算出射线经过多次反弹后的光亮度贡献。具体地,当反射的射线与虚拟场景中的物体相交时,则计算当前投影基函数上,射线经过多次反弹后的光亮度贡献。其中,针对每一条射线,计算出每个射线对应的光亮度贡献,然后将光亮度贡献拟合到对应的投影基函数上,进而根据光亮度贡献计算出在对应投影基函数上的光照传递参数。
可以理解,终端将原始光源投影至多个投影基函数后,针对每一个基函数,都在虚拟场景中采样射线经过多次反弹后的光亮度贡献,并计算出在对应投影基函数上的光照传递参数。然后,对各投影基函数上的光照传递参数进行拟合,得到像素点对应的最终的光照传递参数。
终端计算出虚拟场景中静态物体上各像素点对应的光照传递参数后,进而按照纹理映射关系,将光照传递参数存储至光照贴图中对应的纹素位置上。
本实施例中,通过将原始光源投影至多个投影基函数后,从每个像素点向该像素点的法线所指向的半球面发射射线,然后在虚拟场景中采样各射线经过多次反射后的光亮度贡献,从而能够精准地计算出虚拟场景中静态物体上的各像素点对应的光照传递参数。
在一个实施例中,针对虚拟场景中的光照探针,基于光线追踪确定各虚拟光源在光照探针对应的光照传递参数,并存储至各光照探针中,包括:针对虚拟场景中的光照探针,获取各虚拟光源投影后在光照探针的各个面对应的光线亮度;基于光线亮度,以光照探针的中心点为起点,向以中心点为中心的预设半径的球面发射射线;在虚拟场景中,采样各射线经过球面反射后的反射亮度和光亮衰减度;基于各射线对应的反射亮度和光亮衰减度,确定各光照探针对应的光照传递参数,并将光照传递参数存储至光照探针中。
可以理解,每个光照探针可以预设有对应的多个投影基函数,具体可以为球面基函数。
终端在预计算虚拟场景中光照探针对应的光照传递参数时,各虚拟光源在虚拟场景中进行投影后,虚拟场景中每个光照探针的多个方向上的面会接收到各虚拟光源对应的光线亮度。针对光照探针的每个方向上的面,然后终端从光照探针的中心点位置作为起点,根据光照探针所接收到的光线亮度,向以中心点为中心的预设半径的球面发射射线。
对于每一条射线的光亮度贡献,与针对静态物体上各像素点对应的计算方式相同,计算出每个射线对应的光亮度贡献后,将光亮度贡献拟合到对应的投影基函数上,以根据光亮度贡献计算出对应的光照传递参数。
具体地,对于每一条射线和其对应的亮度值,根据射线的方向和光照探针上每个面的方向计算射线的夹角。当射线的夹角小于90度时,则计算当前投影基函数上,射线经过多次反弹后的光亮度贡献。其中,针对每一条射线,计算出每个射线对应的光亮度贡献,然后将光亮度贡献拟合到对应面的投影基函数上,进而根据光亮度贡献计算出在对应面投影基函数上的光照传递参数。
例如,如图5所示,以正立方体为例,如Ambient Cube(环境光立方体),用来表示光照探针上的多个方向的面。其中,环境光立方体包括六个面,即x面、-x面、y面、-y面、z面和-z面,每一个面对应一个投影基函数,每个基函数上存储有对应的光照传递参数,光照传递参数具体可以为光照转移向量Transfer Vector。即x面对应光照转移向量(x),-x面对应光照转移向量(-x),y面对应光照转移向量(y),-y面对应光照转移向量(-y),z面对应光照转移向量(z),-z面对应光照转移向量(-z)。
终端计算出虚拟场景中光照探针上每个面对应的光照传递参数后,进而将光照传递参数存储光照探针上。
本实施例中,通过将原始光源投影至多个投影基函数后,从每个光照探针中心点向球面发射射线,然后在虚拟场景中采样各射线经过多次反射后的光亮度贡献,从而能够精准地计算出虚拟场景中光照探针上多个面应的光照传递参数。
在一个实施例中,虚拟场景为虚拟游戏场景,虚拟游戏场景中的光源为远景光源;当虚拟场景中的光源发生变化时,确定光源变化信息,包括:在运行虚拟游戏场景时,监测虚拟游戏场景中远景光源的光源方向;当光源方向发生变化时,根据变化后的光源方向和远景光源的初始光源方向,确定光源变化信息。
可以理解,虚拟游戏场景,是指游戏应用中部署的虚拟场景,具体可以为三维的虚拟场景。其中,远景光源,具体可以是指在画面中呈现出的范围较远的光源,也就是虚拟场景中距离物体较远的光源,例如虚拟游戏场景中的太阳光或天空光。例如,游戏场景中的天空光,通常是基于模拟大气散射的方式计算环境中的散射光,能够在不同的太阳位置以及大气特性下渲染天空及景物。通常最终的颜色值是由积分公式计算得到的,积分区间是一个连续的区间,因此可以通过离散采样的方式计算累加和得到近似结果。
具体地,终端中部署有游戏应用,游戏应用中包括虚拟游戏场景。当终端中的虚拟游戏场景在运行时,终端则实时监测虚拟游戏场景中远景光源的光源方向。
当终端监测到虚拟游戏场景中的光源方向发生变化时,根据变化后的光源方向和远景光源的初始光源方向,确定光源变化信息。例如,例如当光源发生旋转时,根据旋转方向,确定光源旋转的角度。然后终端根据旋转的角度计算球面谐波对应的旋转矩阵,以根据旋转矩阵和虚拟游戏场景中的初始光源投影系数,实时更新虚拟游戏场景中的光源投影系数,以计算出待展示的目标像素点所对应的当前光源投影系数。进而根据实时计算出的当前光源投影系数对目标像素点进行光照渲染处理。
例如,如图6所示,为一个实施例中的场景画面6a,可以看出该场景画面中的远景光源为太阳光。该虚拟场景中左侧有房屋,右侧有两面墙,分别是红色和绿色,其在虚拟场景中会反射相应的间接光照。当远景光源发生变化时,例如当虚拟场景中的太阳光发生旋转变化时,虚拟场景中各物体所接收到的光照也会发生变化。如图7所示,为图6中虚拟场景中的太阳光旋转后的场景画面7a。从图7中可以看出,当墙面接受得光照更亮时,左侧房屋墙壁的对应反射光线也更亮。
本实施例中,通过根据虚拟游戏场景中动态光源的光源变化信息,实时更新场景中的光源投影系数,以动态计算出虚拟游戏场景中的直接光照值和间接光照值,由此能够高效实现随光源的动态变化,对场景进行实时动态光照渲染,由此能够呈现出接近真实自然环境的效果,进而有效提高了虚拟场景中动态光源下的光照渲染效果。
在一个具体的实施例中,如图8所示,提供了一种具体的光照渲染方法,具体包括以下步骤:
S802,当虚拟场景中的光源发生变化时,确定光源变化信息。
S804,根据光源变化信息,确定光照变换矩阵;根据光照变换矩阵和虚拟场景中光源变化前的初始光源投影系数,确定变化后的光源所对应的当前光源投影系数。
S806,针对虚拟场景中属于静态物体的目标像素点,基于纹理映射关系在静态物体的光照贴图中,查找与目标像素点相匹配的纹素。
S808,根据相匹配的纹素,从光照贴图中获取与目标像素点对应的光照传递参数。
S810,根据当前光源投影系数和目标像素点对应的光照传递参数,确定目标像素点在虚拟场景中的间接光照值。
S812,针对虚拟场景中属于动态物体的目标像素点,确定与动态物体的目标像素点相匹配的光照探针。
S814,根据当前光源投影系数和光照探针中存储的光照传递参数,更新光照探针上各方向对应的光线亮度。
S816,对各光照探针对应的更新后的光线亮度进行插值;根据插值后的光线亮度和目标像素点的法线方向,确定目标像素点在虚拟场景中的间接光照值。
S818,确定目标像素点在变化后的光源下对应的直接光照值。
S820,根据直接光照值和间接光照值,对目标像素点进行光照渲染。
终端在展示虚拟场景或运行包括虚拟场景的应用的过程中,当终端检测到虚拟场景中的光源发生变化时,变化后的光源对应的光源投影系数也会随之改变。终端则根据光源变化信息,确定光照变换矩阵。例如可以根据光源变换的角度,确定光源旋转矩阵。终端然后根据光照变换矩阵和光源变化前的初始光源投影系数,更新虚拟场景中当前光源所对应的当前光源投影系数。
可以理解,虚拟场景中的光照是一种线性系统,虚拟场景中的光源可以用函数表示,通过将光源函数投影至光源投影基函数上计算虚拟场景中的光照。
具体地,光照线性系统的表达式可以如下:
其中,x、y、z是虚拟场景中光源投影的基函数,a、b、c为光源投影到基函数上的光源投影系数。
例如,对于远景光源,在虚拟场景中可以用CubeMap(立方体映射)来表示,以在进行光照计算时,投影到基函数上。其中,远景光源的投影表达式可以为:
(sh0,sh1,sh2...)=(x,y,z...)=a*sh0+b*sh1+c*sh2+...
其中,sh0、sh1和sh2是基函数,分别对应于x、y和z。光源经过投影之后,对虚拟场景的光照是一个近似效果,可以用于间接光等平滑的光照。当光源旋转时,基函数不改变,只有对应的光源投影系数a、b、c发生改变。由此上述公式中的f(x)、f(y)、f(z)则不改变。具体可以通过预先烘培的方式来计算出来,也就是对应的光照传递参数TransferVector,光源投影系数a、b、c则需要在实时运行中,根据虚拟场景中对应的光源计算出来。
可以理解,在实际应用中,可以根据应用需求采用任意阶数的球面谐波基函数来对光源进行拟合。当阶数更多时,对复杂光源的拟合更准确,但阶数越多,需要消耗的计算资源也越大。本实施例中,可以仅考虑基于PRT技术烘培间接光照。具体可以采用三阶数的球面谐波基函数,即9个基函数,或者4阶数的球面谐波基函数,即16个基函数,能够满足远景光源的拟合需求。
例如,如图9所示,为一个实施例中的场景画面92,场景画面92中包括远景光源92a。如图10所示,投影示意图10a为对图9中的远景光源92a进行投影后的示意图,可以看出,光源部分以及光源周围区域的亮度较高。
以虚拟场景中的远景光源为例,在昼夜变换的情况中,远景光源绕场景进行旋转。其中,投影基函数的选择影响着光照传递参数的烘培和光源的投影。由于光源投影是对远景光源的近似,在远景光源旋转的过程中,如果采用的投影基函数不具有旋转不变性的特点,则会产生系数的抖动,从而造成场景光照的抖动。在本实施例中,采用球面谐波函数作为光源的投影基函数。由于球面谐波函数具有旋转不变性和投影性能高的特性,能够更加精准地计算出虚拟场景中的光照信息,从而能够有效提高最终的光照渲染效果和运行时的性能。
具体地,终端可以预先根据虚拟场景中预设的原始光源的状态信息,将原始光源投影至投影基函数上,进而基于Monte Carlo(蒙特卡洛)法计算出初始投影系数。然后,在对虚拟场景进行渲染的过程中,当光源发生变化时,例如在光源的旋转中,根据旋转的角度计算光照旋转矩阵后,只需要按照初始投影系数,进行一次矩阵和向量的乘积,即可更新光源变化后的当前光源投影系数。相较于每次都进行大量的采样重新进行投影计算光源投影系数的方式,本实施例的方式能够有效节省计算资源的消耗。
其中,终端在对虚拟场景中待渲染的目标像素点进行渲染之前,需要预先烘培出虚拟场景中静态物体的各像素点对应的光照传递参数,以及光照探针对应的光照传递参数。具体可以基于PRT方式,采用基于路径追踪来烘培光照传递参数。在传统的光能传输计算中,会计算整个远景光源对场景的光照贡献度。本实施例中,仅考虑虚拟场景中间接光照的亮度信息,具体地,光照传递参数TransferVector中只计算频率低的间接光照。具体可以采用基于路径积分的方式,虚拟场景中间接光照的亮度表示可以如下:
其中,Lo表示物体上一个位置向某一个方向发射的光亮度,Le为光源或者自发光物体的亮度,P(pn)为光线经过N次反弹之后的亮度贡献,T(pn)为经过N次反弹后光亮度的衰减。
在烘焙光照传递参数的过程中,虚拟场景中的光源被投影到球面谐波基函数上,每一个投影基函数均按照上面的步骤计算出对应的光亮度贡献。
在其中一个实施例中,为了加速光照传递参数的烘培性能,多个投影基函数的光亮度信息可以共用同样的光线弹射路径,打包到一起来计算。由此能够更加快速地烘培出虚拟场景中间接光照对应的光照传递参数。
其中,对于虚拟场景中的静态物体,各静态物体的光照烘培数据,即光照传递参数,存储在各静态物体对应的光照贴图中。光照贴图中的每一个纹素存储了对应的亮度信息,即每个纹素存储一个对应的光照传递参数信息。
具体地,将虚拟场景中的原始光源投影至球面谐波基函数上后,虚拟场景中静态物体表面的各像素点则会接收到相应的亮度信息。然后,对于静态物体上的每个像素点,即对应于光照贴图中的纹素,从纹素中心对应的世界空间位置作为起点,向法线朝向的半球面发射光线。然后在场景中进行采样,计算射线经过多次反弹的光亮度衰减。当光源与场景中的物体相交时,计算当前基函数上各个射线的光亮度贡献,然后对各个射线的光亮度贡献进行拟合,进而根据各基函数上拟合得到的光亮度贡献,计算出对应的光照传递参数。
其中,通过向半球面发射光线以拟合光照传递参数的表达式可以如下:
其中,T表示光照传递参数,L(w)为按照w方向入射的光线亮度,θ为入射方向和法线的夹角。当使用cosine权重投射光线时,其pdf(wi)=cos(θ)*π,约简后得到最后的拟合表达式。
其中,对于虚拟场景中的光照探针,可以采用AmbientCube(环境光立方体),来表示光照探针上的多个方向的面。每一个面对应一个投影基函数,每个面对应的基函数上存储一个光照传递参数。虚拟场景中动态物体的烘培数据则存储在光照探针中,光照探针中每一个面中存储了各个方向的入射光信息。
具体地,光照探针的烘培,以光照探针的位置作为起点,向整个球面均匀发射射线,对于每一条射线,其和光照贴图对应的计算方式相同,累积出各个基函数上的射线对应的光亮度贡献,然后拟合到对应的基函数上。对于一条射线和其对应的亮度值,根据射线的方向和每个面的方向计算夹角,当夹角小于90度时,则累积到对应面的光照传递参数中。
终端在对虚拟场景进行渲染时,例如在运行包括虚拟场景的应用时,终端则需要根据实时的光源信息,更新变化后的光源对应的光源投影系数。以光源为远景光源,例如太阳光为例,首先需要按照当前场景的天光和太阳光,更新远景光源投影到基函数上的系数,然后对于虚拟场景中的静态物体,则从对应的光照贴图中获取存储的预先烘培的对应像素点的光照传递参数,然后就可以直接根据当前光源投影系数和获取的光照传递参数,计算最终的光亮度贡献,也就是静态物体的间接光照值,进而按照纹理映射关系映射到静态物体表面上。
远景光源到基函数的投影,可以采用蒙特卡洛法进行采样计算,具体可以从虚拟场景中的世界坐标系中心出发,向各个方向均匀发射射线,求解投影基函数的系数。求解投影基函数的光源投影系数的表达式可以如下:
其中,a表示求解的需要投影到某一个基函数的球谐系数,即光源投影系数。s表示整个球面,w表示立体角,f(w)是表示该立体角方向的亮度值,a(w)是对应的球面谐波基函数。wi表示当前采样的立体角的参数,pdf为对应的权重。当使用均匀球面采样时,pdf则为1/4π。
对于球面谐波基函数,可以首先基于默认方向投影出基函数,然后当光源发生变化时,计算光照变换矩阵。例如光源旋转时,计算球面谐波对应的旋转矩阵,通过根据默认的初始投影系数和旋转矩阵来更新旋转后的矩阵,由此可以更快速更新光源投影系数。球面谐波的旋转矩阵具体可以如下:
对于虚拟场景中的动态物体,获取动态物体周围的多个光照探针,并获取光照探针中多个面对应存储的光照传递参数,具体可以为6个面。然后根据计算出的当前光源投影系数和光照探针中每个面对应的光照传递参数,更新每个面个光线亮度,也就是计算出每个光照探针中每个面对应的间接光照值。然后对周围的多个光照探针的光线亮度进行线性插值,然后根据插值后的光线亮度,以及动态物体上的目标像素点的法线方向,计算出目标像素点在该方向上的最终的亮度,从而得到目标像素点对应的间接光照值。
具体的计算代码可以如下所示:
float3 AmbientLinghting(const float3 sorldNormal){
float3 nSquared=worldNormal*worldNormal;
int3 isNegative=(worldNormal<0.0);
Return nSquared.x*cAmbientCube[isNegative.x]+nSquared.y*cAmbientCube[isNegative.y+2]+nSquared.z*cAmbientCube[isNegative.z+4];}
其中,光照探针上6个面的亮度信息,具体可以按照(PositiveX,NegtiveX,PositiveY,NegativeY,PositiveZ,NegativeZ)的顺序进行存储。
在另一个实施例中,还可以采用球面谐波的方式,根据光照探针计算动态物体的间接光照值。与采用Ambient Cube环境光立方体的方式类似,首先按照光照探针中存储的预计算出的光照传递参数和当前光源投影系数,实时计算出光照探针中每一个基函数上的投影系数,得到光照探针的光亮度的球面谐波表示。然后按照动态物体上的目标像素点的法线方向,计算出目标像素点对应的漫反射球谐转换参数,最后根据将漫反射球谐转换参数和光照探针对应的球面谐波表示中的球谐系数进行点积,从而能够精准地计算出动态物体的目标像素点对应最终的间接光照值。
在一个实施例中,通过拆分直接光照和间接光照,采用基于PRT的方式,分别动态计算出虚拟场景中目标像素点对应的直接光照值和间接光照值。如图11所示,图11中的图11a,为本实施例中,通过拆分直接光照和间接光照,采用基于PRT方式分别计算直接光照和间接光照的光照渲染效果图。图11中的图11b,为采用基于PRT方式将直接光照和间接光照进行混合计算的光照渲染效果图。图11中的图11c,为仅采用基于PRT方式计算间接光照的光照渲染效果图。可以看出,通过拆分直接光照和间接光照,能够实现动态更新虚拟场景中的整体间接光照,并且高频的直接光照和阴影信息也更加准确,从而使得虚拟场景中的整体光照效果更佳。
本申请还提供一种应用场景,该应用场景为开放世界类型的三维游戏场景,该游戏场景应用上述的光照渲染方法。具体地,开放世界类型的三维游戏场景中包括虚拟场景,虚拟场景中包括静态物体和动态物体以及光照探针,还包括模拟现实世界的远景光源,例如太阳光和天光等。其中,可以预先烘培出虚拟场景中各静态物体和光照探针对应的光照传递参数,并分别存储至对应的光照贴图和光照探针中。
其中,终端中部署有与三维游戏场景对应的游戏应用。当终端中的游戏应用在运行时,实时检测三维游戏场景中远景光源的光源状态。当虚拟场景中的远景光源发生变化时,确定光源变化信息。然后根据光源变化信息确定变化后的远景光源所对应的当前光源投影系数。
然后,对于虚拟场景中待展示的目标像素点,针对虚拟场景中属于静态物体的目标像素点,则从对应的光照贴图中获取预计算的相匹配的光照传递参数,并根据当前光源投影系数和光照传递参数,计算目标像素点在虚拟场景中的间接光照值。针对虚拟场景中属于动态物体的目标像素点,则从对应的光照探针中获取预计算的相匹配的光照传递参数,并根据当前光源投影系数和光照传递参数,计算目标像素点在虚拟场景中的间接光照值。
终端同时还根据光源变化信息,计算出目标像素点在变化后的光源下对应的直接光照值,由此能够实时计算出虚拟场景中动态的直接光照值和间接光照值。终端进而根据直接光照值和间接光照值,对目标像素点进行光照渲染。由此能够精准高效地对游戏场景中实时变化的远景光源进行光照渲染处理,从而有效提高了虚拟场景中动态远景光源下的光照渲染效果。
本申请还另外提供一种应用场景,该应用场景为三维环境演示场景,例如旅游环境演示场景、建筑物演示场景以及虚拟训练场景等,该三维环境演示场景应用上述的三维场景下的光照渲染方法。针对各种环境下的三维环境演示场景中包括预先设置的虚拟场景,虚拟场景中包括静态物体和动态物体以及光照探针。
在对三维环境演示场景进行展示之前,预先烘培出虚拟场景中各静态物体和光照探针对应的光照传递参数,并分别存储至对应的光照贴图和光照探针中。
终端中可以预先加载有三维环境演示场景对应的场景数据,也可以实时从服务器中获取所需的场景数据。当终端在演示三维环境演示场景时,实时检测虚拟场景中的光源状态。当虚拟场景中的光源发生变化时,根据光源变化信息,实时更新虚拟场景中待展示的目标像素点所对应的当前光源投影系数。
然后,针对虚拟场景中属于静态物体的目标像素点,则从对应的光照贴图中获取预计算的相匹配的光照传递参数,并根据当前光源投影系数和光照传递参数,计算目标像素点在虚拟场景中的间接光照值。针对虚拟场景中属于动态物体的目标像素点,则从对应的光照探针中获取预计算的相匹配的光照传递参数,并根据当前光源投影系数和光照传递参数,计算目标像素点在虚拟场景中的间接光照值。
终端同时还根据光源变化信息,计算出目标像素点在变化后的光源下对应的直接光照值,由此能够实时计算出虚拟场景中动态的直接光照值和间接光照值。终端进而根据直接光照值和间接光照值,对目标像素点进行光照渲染。由此不仅能够有效节省间接光照的计算资源,还能够精准地对虚拟场景中实时变化的光源进行光照渲染处理,有效提高了虚拟场景中动态光源下的光照渲染效果。
应该理解的是,虽然图2和图8流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图12所示,提供了一种光照渲染1200装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:光源确定模块1202、投影系数更新模块1204、间接光照确定模块1206、直接光照确定模块1208和光照渲染模块1210,其中:
光源确定模块1202,用于当虚拟场景中的光源发生变化时,确定光源变化信息。
投影系数更新模块1204,用于根据光源变化信息,确定变化后的光源所对应的当前光源投影系数。
间接光照确定模块1206,用于根据虚拟场景中的目标像素点对应的光照传递参数和当前光源投影系数,确定目标像素点在虚拟场景中的间接光照值。
直接光照确定模块1208,用于确定目标像素点在变化后的光源下对应的直接光照值。
光照渲染模块1210,用于根据直接光照值和间接光照值,对目标像素点进行光照渲染。
在一个实施例中,投影系数更新模块1204还用于根据光源变化信息,确定光照变换矩阵;确定虚拟场景中光源变化前的初始光源投影系数;根据光照变换矩阵和初始光源投影系数,确定变化后的光源所对应的当前光源投影系数。
在一个实施例中,光源变化信息,是变化后的光源相较于虚拟场景中预设的原始光源所产生的变化信息;投影系数更新模块1204还用于获取将原始光源投影至投影基函数得到的初始光源投影系数;根据光照变换矩阵,对初始光源投影系数进行更新,得到变化后的光源所对应的当前光源投影系数。
在一个实施例中,光源变化信息,是变化后的光源相较于虚拟场景中变化前的历史光源所产生的变化信息;投影系数更新模块1204还用于获取与历史光源对应的历史光源投影系数;根据光照变换矩阵,对历史光源投影系数进行更新,得到变化后的光源所对应的当前光源投影系数。
在一个实施例中,间接光照确定模块1206还用于针对虚拟场景中属于静态物体的目标像素点,根据当前光源投影系数和目标像素点在相匹配的光照贴图中存储的光照传递参数,确定目标像素点在虚拟场景中的间接光照值。
在一个实施例中,间接光照确定模块1206还用于针对虚拟场景中属于静态物体的目标像素点,基于纹理映射关系在静态物体的光照贴图中,查找与目标像素点相匹配的纹素;根据相匹配的纹素,从光照贴图中获取与目标像素点对应的光照传递参数;根据当前光源投影系数和目标像素点对应的光照传递参数,确定目标像素点在虚拟场景中的间接光照值。
在一个实施例中,间接光照确定模块1206还用于针对虚拟场景中属于动态物体的目标像素点,根据当前光源投影系数和相匹配的光照探针中存储的光照传递参数,确定目标像素点在虚拟场景中的间接光照值。
在一个实施例中,间接光照确定模块1206还用于针对虚拟场景中属于动态物体的目标像素点,确定与动态物体的目标像素点相匹配的光照探针;根据当前光源投影系数和光照探针中存储的光照传递参数,更新光照探针上各方向对应的光线亮度;对各光照探针对应的更新后的光线亮度进行插值;根据插值后的光线亮度和目标像素点的法线方向,确定目标像素点在虚拟场景中的间接光照值。
在一个实施例中,上述光照渲染装置还包括光照传递参数烘培模块,用于将原始光源投影至多个投影基函数,将投影后的每个投影基函数分别作为对应的虚拟光源;针对虚拟场景中静态物体的各像素点,基于光线追踪确定各虚拟光源在像素点对应的光照传递参数,并存储至对应的光照贴图中;针对虚拟场景中的光照探针,基于光线追踪确定各虚拟光源在光照探针对应的光照传递参数,并存储至光照探针中。
在一个实施例中,光照传递参数烘培模块还用于针对虚拟场景中静态物体的每个像素点,获取各虚拟光源投影后在像素点对应的光线亮度;以像素点为起点,向像素点的法线所指向的半球面,发射具有光线亮度的射线;在虚拟场景中,采样各射线经过半球面反射后的反射亮度和光亮衰减度;基于各射线所对应的反射光线亮度和光源亮度,确定像素点对应的光照传递参数,并将光照传递参数存储至对应的光照贴图中。
在一个实施例中,光照传递参数烘培模块还用于针对虚拟场景中的光照探针,获取各虚拟光源投影后在光照探针的各个面对应的光线亮度;基于光线亮度,以光照探针的中心点为起点,向以中心点为中心的预设半径的球面发射射线;在虚拟场景中,采样各射线经过球面反射后的反射亮度和光亮衰减度;基于各射线对应的反射亮度和光亮衰减度,确定各光照探针对应的光照传递参数,并将光照传递参数存储至光照探针中。
在一个实施例中,虚拟场景为虚拟游戏场景,虚拟游戏场景中的光源为远景光源;光源确定模块1202还用于在运行虚拟游戏场景时,监测虚拟游戏场景中远景光源的光源方向;当光源方向发生变化时,根据变化后的光源方向和远景光源的初始光源方向,确定光源变化信息。
关于光照渲染装置的具体限定可以参见上文中对于光照渲染方法的限定,在此不再赘述。上述光照渲染装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种光照渲染方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种光照渲染方法,其特征在于,所述方法包括:
当虚拟场景中的光源发生变化时,确定光源变化信息;
根据所述光源变化信息,确定变化后的光源所对应的当前光源投影系数;
根据所述虚拟场景中的目标像素点对应的光照传递参数和所述当前光源投影系数,确定所述目标像素点在所述虚拟场景中的间接光照值;
确定所述目标像素点在变化后的光源下对应的直接光照值;
根据所述直接光照值和所述间接光照值,对所述目标像素点进行光照渲染。
2.根据权利要求1所述的方法,其特征在于,所述根据所述光源变化信息,确定变化后的光源所对应的当前光源投影系数,包括:
根据所述光源变化信息,确定光照变换矩阵;
确定所述虚拟场景中光源变化前的初始光源投影系数;
根据所述光照变换矩阵和所述初始光源投影系数,确定变化后的光源所对应的当前光源投影系数。
3.根据权利要求2所述的方法,其特征在于,所述光源变化信息,是变化后的光源相较于所述虚拟场景中预设的原始光源所产生的变化信息;
所述确定所述虚拟场景中光源变化前的初始光源投影系数,包括:
获取将所述原始光源投影至投影基函数得到的初始光源投影系数;
所述根据所述光照变换矩阵和所述初始光源投影系数,确定变化后的光源所对应的当前光源投影系数,包括:
根据所述光照变换矩阵,对所述初始光源投影系数进行更新,得到变化后的光源所对应的当前光源投影系数。
4.根据权利要求2所述的方法,其特征在于,所述光源变化信息,是变化后的光源相较于所述虚拟场景中变化前的历史光源所产生的变化信息;
所述确定所述虚拟场景中光源变化前的初始光源投影系数,包括:
获取与所述历史光源对应的历史光源投影系数;
所述根据所述光照变换矩阵和所述初始光源投影系数,确定变化后的光源所对应的当前光源投影系数,包括:
根据所述光照变换矩阵,对所述历史光源投影系数进行更新,得到变化后的光源所对应的当前光源投影系数。
5.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟场景中的目标像素点对应的光照传递参数和所述当前光源投影系数,确定所述目标像素点在所述虚拟场景中的间接光照值,包括:
针对所述虚拟场景中属于静态物体的目标像素点,根据所述当前光源投影系数和所述目标像素点在相匹配的光照贴图中存储的光照传递参数,确定所述目标像素点在所述虚拟场景中的间接光照值。
6.根据权利要求5所述的方法,其特征在于,所述针对所述虚拟场景中属于静态物体的目标像素点,根据所述当前光源投影系数和所述目标像素点在相匹配的光照贴图中存储的光照传递参数,确定所述目标像素点在所述虚拟场景中的间接光照值,包括:
针对所述虚拟场景中属于静态物体的目标像素点,基于纹理映射关系在所述静态物体的光照贴图中,查找与所述目标像素点相匹配的纹素;
根据所述相匹配的纹素,从所述光照贴图中获取与所述目标像素点对应的光照传递参数;
根据所述当前光源投影系数和所述目标像素点对应的光照传递参数,确定所述目标像素点在所述虚拟场景中的间接光照值。
7.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟场景中的目标像素点对应的光照传递参数和所述当前光源投影系数,确定所述目标像素点在所述虚拟场景中的间接光照值,包括:
针对所述虚拟场景中属于动态物体的目标像素点,根据所述当前光源投影系数和相匹配的光照探针中存储的光照传递参数,确定所述目标像素点在所述虚拟场景中的间接光照值。
8.根据权利要求7所述的方法,其特征在于,所述针对所述虚拟场景中属于动态物体的目标像素点,根据所述当前光源投影系数和相匹配的光照探针中存储的光照传递参数,确定所述目标像素点在所述虚拟场景中的间接光照值,包括:
针对所述虚拟场景中属于动态物体的目标像素点,确定与所述动态物体的目标像素点相匹配的光照探针;
根据所述当前光源投影系数和所述光照探针中存储的光照传递参数,更新所述光照探针上各方向对应的光线亮度;
对各所述光照探针对应的更新后的光线亮度进行插值;
根据插值后的光线亮度和所述目标像素点的法线方向,确定所述目标像素点在所述虚拟场景中的间接光照值。
9.根据权利要求1所述的方法,其特征在于,所述当虚拟场景中的光源发生变化时,确定光源变化信息之前,所述方法还包括:
将原始光源投影至多个投影基函数,将投影后的每个投影基函数分别作为对应的虚拟光源;
针对所述虚拟场景中静态物体的像素点,基于光线追踪确定各所述虚拟光源在所述像素点对应的光照传递参数,并存储至对应的光照贴图中;
针对所述虚拟场景中的光照探针,基于光线追踪确定各所述虚拟光源在所述光照探针对应的光照传递参数,并存储至所述光照探针中。
10.根据权利要求9所述的方法,其特征在于,所述针对所述虚拟场景中静态物体的像素点,基于光线追踪确定各所述虚拟光源在所述像素点对应的光照传递参数,并存储至对应的光照贴图中,包括:
针对所述虚拟场景中静态物体的每个像素点,获取各所述虚拟光源投影后在所述像素点对应的光线亮度;
以所述像素点为起点,向所述像素点的法线所指向的半球面,发射具有所述光线亮度的射线;
在所述虚拟场景中,采样各所述射线经过所述半球面反射后的反射亮度和光亮衰减度;
基于各所述射线所对应的所述反射光线亮度和所述光源亮度,确定所述像素点对应的光照传递参数,并将所述光照传递参数存储至对应的光照贴图中。
11.根据权利要求9所述的方法,其特征在于,所述针对所述虚拟场景中的光照探针,基于光线追踪确定各所述虚拟光源在所述光照探针对应的光照传递参数,并存储至所述光照探针中,包括:
针对所述虚拟场景中的光照探针,获取各所述虚拟光源投影后在所述光照探针的各个面对应的光线亮度;
基于所述光线亮度,以所述光照探针的中心点为起点,向以所述中心点为中心的预设半径的球面发射射线;
在所述虚拟场景中,采样各所述射线经过所述球面反射后的反射亮度和光亮衰减度;
基于各所述射线对应的所述反射亮度和所述光亮衰减度,确定各所述光照探针对应的光照传递参数,并将所述光照传递参数存储至所述光照探针中。
12.根据权利要求1至11任意一项所述的方法,其特征在于,所述虚拟场景为虚拟游戏场景,所述虚拟游戏场景中的光源为远景光源;
所述当虚拟场景中的光源发生变化时,确定光源变化信息,包括:
在运行虚拟游戏场景时,监测所述虚拟游戏场景中远景光源的光源方向;
当所述光源方向发生变化时,根据变化后的光源方向和所述远景光源的初始光源方向,确定光源变化信息。
13.一种光照渲染装置,其特征在于,所述装置包括:
光源确定模块,用于当虚拟场景中的光源发生变化时,确定光源变化信息;
投影系数更新模块,用于根据所述光源变化信息,确定变化后的光源所对应的当前光源投影系数;
间接光照确定模块,用于根据所述虚拟场景中的目标像素点对应的光照传递参数和所述当前光源投影系数,确定所述目标像素点在所述虚拟场景中的间接光照值;
直接光照确定模块,用于确定所述目标像素点在变化后的光源下对应的直接光照值;
光照渲染模块,用于根据所述直接光照值和所述间接光照值,对所述目标像素点进行光照渲染。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110359533.9A CN112927341A (zh) | 2021-04-02 | 2021-04-02 | 光照渲染方法、装置、计算机设备和存储介质 |
PCT/CN2022/081063 WO2022206380A1 (zh) | 2021-04-02 | 2022-03-16 | 光照渲染方法、装置、计算机设备和存储介质 |
US17/985,107 US20230076326A1 (en) | 2021-04-02 | 2022-11-10 | Illumination rendering method and apparatus, computer device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110359533.9A CN112927341A (zh) | 2021-04-02 | 2021-04-02 | 光照渲染方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112927341A true CN112927341A (zh) | 2021-06-08 |
Family
ID=76173917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110359533.9A Pending CN112927341A (zh) | 2021-04-02 | 2021-04-02 | 光照渲染方法、装置、计算机设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230076326A1 (zh) |
CN (1) | CN112927341A (zh) |
WO (1) | WO2022206380A1 (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113436247A (zh) * | 2021-07-29 | 2021-09-24 | 北京达佳互联信息技术有限公司 | 一种图像处理方法、装置、电子设备及存储介质 |
CN113592999A (zh) * | 2021-08-05 | 2021-11-02 | 广州益聚未来网络科技有限公司 | 一种虚拟发光体的渲染方法及相关设备 |
CN113786616A (zh) * | 2021-09-30 | 2021-12-14 | 天津亚克互动科技有限公司 | 一种间接光照实现方法、装置、存储介质及计算设备 |
CN113989473A (zh) * | 2021-12-23 | 2022-01-28 | 北京天图万境科技有限公司 | 一种重新光照的方法和装置 |
CN114419240A (zh) * | 2022-04-01 | 2022-04-29 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、计算机设备和存储介质 |
CN115082611A (zh) * | 2022-08-18 | 2022-09-20 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
WO2022206380A1 (zh) * | 2021-04-02 | 2022-10-06 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、计算机设备和存储介质 |
CN115393499A (zh) * | 2022-08-11 | 2022-11-25 | 广州极点三维信息科技有限公司 | 一种3d实时渲染方法、系统及介质 |
CN115439595A (zh) * | 2022-11-07 | 2022-12-06 | 四川大学 | 一种面向ar的室内场景动态光照在线估计方法与装置 |
CN115830208A (zh) * | 2023-01-09 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 全局光照渲染方法、装置、计算机设备和存储介质 |
CN116030180A (zh) * | 2023-03-30 | 2023-04-28 | 北京渲光科技有限公司 | 辐照度缓存光照计算方法及装置、存储介质、计算机设备 |
CN116152419A (zh) * | 2023-04-14 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
CN116310061A (zh) * | 2023-05-18 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法、装置以及存储介质 |
CN116612225A (zh) * | 2023-07-18 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
CN116672706A (zh) * | 2023-08-03 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、终端和存储介质 |
CN116974417A (zh) * | 2023-07-25 | 2023-10-31 | 江苏泽景汽车电子股份有限公司 | 显示控制方法及装置、电子设备、存储介质 |
WO2023231215A1 (zh) * | 2022-06-01 | 2023-12-07 | 合众新能源汽车股份有限公司 | 一种场景渲染方法、装置、电子设备及存储介质 |
WO2023241065A1 (zh) * | 2022-06-17 | 2023-12-21 | 如你所视(北京)科技有限公司 | 用于图像逆渲染的方法、装置、设备和介质 |
CN117953137A (zh) * | 2024-03-27 | 2024-04-30 | 哈尔滨工业大学(威海) | 一种基于动态表面反射场的人体重光照方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11770494B1 (en) * | 2021-06-14 | 2023-09-26 | Jeremy Cowart Photography, Inc. | Apparatus, systems, and methods for providing a lightograph |
US20220414975A1 (en) * | 2021-06-29 | 2022-12-29 | Apple Inc. | Techniques for manipulating computer graphical light sources |
CN115953524B (zh) * | 2023-03-09 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN117011446B (zh) * | 2023-08-23 | 2024-03-08 | 苏州深捷信息科技有限公司 | 一种动态环境光照的实时渲染方法 |
CN117354439A (zh) * | 2023-10-31 | 2024-01-05 | 神力视界(深圳)文化科技有限公司 | 光强处理方法、装置、电子设备和计算机存储介质 |
CN117523062B (zh) * | 2024-01-05 | 2024-03-08 | 腾讯科技(深圳)有限公司 | 光照效果的预览方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889128A (zh) * | 2006-07-17 | 2007-01-03 | 北京航空航天大学 | 基于gpu的预计算辐射度传递全频阴影的方法 |
US9013496B2 (en) * | 2012-06-19 | 2015-04-21 | Microsoft Technology Licensing, Llc | Rendering global light transport in real-time using machine learning |
CN102855400B (zh) * | 2012-09-10 | 2015-09-09 | 北京航空航天大学 | 一种基于投影网格的海洋表面建模及实时光照方法 |
CN112927341A (zh) * | 2021-04-02 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、计算机设备和存储介质 |
-
2021
- 2021-04-02 CN CN202110359533.9A patent/CN112927341A/zh active Pending
-
2022
- 2022-03-16 WO PCT/CN2022/081063 patent/WO2022206380A1/zh unknown
- 2022-11-10 US US17/985,107 patent/US20230076326A1/en active Pending
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022206380A1 (zh) * | 2021-04-02 | 2022-10-06 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、计算机设备和存储介质 |
CN113436247A (zh) * | 2021-07-29 | 2021-09-24 | 北京达佳互联信息技术有限公司 | 一种图像处理方法、装置、电子设备及存储介质 |
CN113436247B (zh) * | 2021-07-29 | 2024-03-01 | 北京达佳互联信息技术有限公司 | 一种图像处理方法、装置、电子设备及存储介质 |
CN113592999A (zh) * | 2021-08-05 | 2021-11-02 | 广州益聚未来网络科技有限公司 | 一种虚拟发光体的渲染方法及相关设备 |
CN113592999B (zh) * | 2021-08-05 | 2022-10-28 | 广州益聚未来网络科技有限公司 | 一种虚拟发光体的渲染方法及相关设备 |
CN113786616A (zh) * | 2021-09-30 | 2021-12-14 | 天津亚克互动科技有限公司 | 一种间接光照实现方法、装置、存储介质及计算设备 |
CN113786616B (zh) * | 2021-09-30 | 2024-04-12 | 天津亚克互动科技有限公司 | 一种间接光照实现方法、装置、存储介质及计算设备 |
CN113989473A (zh) * | 2021-12-23 | 2022-01-28 | 北京天图万境科技有限公司 | 一种重新光照的方法和装置 |
CN114419240A (zh) * | 2022-04-01 | 2022-04-29 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、计算机设备和存储介质 |
WO2023185262A1 (zh) * | 2022-04-01 | 2023-10-05 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、计算机设备和存储介质 |
WO2023231215A1 (zh) * | 2022-06-01 | 2023-12-07 | 合众新能源汽车股份有限公司 | 一种场景渲染方法、装置、电子设备及存储介质 |
WO2023241065A1 (zh) * | 2022-06-17 | 2023-12-21 | 如你所视(北京)科技有限公司 | 用于图像逆渲染的方法、装置、设备和介质 |
CN115393499B (zh) * | 2022-08-11 | 2023-07-25 | 广州极点三维信息科技有限公司 | 一种3d实时渲染方法、系统及介质 |
CN115393499A (zh) * | 2022-08-11 | 2022-11-25 | 广州极点三维信息科技有限公司 | 一种3d实时渲染方法、系统及介质 |
CN115082611A (zh) * | 2022-08-18 | 2022-09-20 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
CN115082611B (zh) * | 2022-08-18 | 2022-11-11 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
WO2024037176A1 (zh) * | 2022-08-18 | 2024-02-22 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染方法、装置、设备和介质 |
CN115439595A (zh) * | 2022-11-07 | 2022-12-06 | 四川大学 | 一种面向ar的室内场景动态光照在线估计方法与装置 |
CN115830208A (zh) * | 2023-01-09 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 全局光照渲染方法、装置、计算机设备和存储介质 |
CN115830208B (zh) * | 2023-01-09 | 2023-05-09 | 腾讯科技(深圳)有限公司 | 全局光照渲染方法、装置、计算机设备和存储介质 |
CN116030180A (zh) * | 2023-03-30 | 2023-04-28 | 北京渲光科技有限公司 | 辐照度缓存光照计算方法及装置、存储介质、计算机设备 |
CN116152419A (zh) * | 2023-04-14 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
CN116310061A (zh) * | 2023-05-18 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法、装置以及存储介质 |
CN116310061B (zh) * | 2023-05-18 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 一种数据的处理方法、装置以及存储介质 |
CN116612225B (zh) * | 2023-07-18 | 2023-12-22 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
CN116612225A (zh) * | 2023-07-18 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、设备和介质 |
CN116974417A (zh) * | 2023-07-25 | 2023-10-31 | 江苏泽景汽车电子股份有限公司 | 显示控制方法及装置、电子设备、存储介质 |
CN116974417B (zh) * | 2023-07-25 | 2024-03-29 | 江苏泽景汽车电子股份有限公司 | 显示控制方法及装置、电子设备、存储介质 |
CN116672706B (zh) * | 2023-08-03 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、终端和存储介质 |
CN116672706A (zh) * | 2023-08-03 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 光照渲染方法、装置、终端和存储介质 |
CN117953137A (zh) * | 2024-03-27 | 2024-04-30 | 哈尔滨工业大学(威海) | 一种基于动态表面反射场的人体重光照方法 |
CN117953137B (zh) * | 2024-03-27 | 2024-06-14 | 哈尔滨工业大学(威海) | 一种基于动态表面反射场的人体重光照方法 |
Also Published As
Publication number | Publication date |
---|---|
US20230076326A1 (en) | 2023-03-09 |
WO2022206380A1 (zh) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112927341A (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
Patow et al. | A survey of inverse rendering problems | |
US7212207B2 (en) | Method and apparatus for real-time global illumination incorporating stream processor based hybrid ray tracing | |
CN112755535B (zh) | 光照渲染方法、装置、存储介质及计算机设备 | |
CN114419240B (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
Chao et al. | Parallel algorithm for viewshed analysis on a modern GPU | |
CN114119853B (zh) | 图像渲染方法、装置、设备和介质 | |
CN107644453A (zh) | 一种基于物理着色的渲染方法及系统 | |
Hillaire | A scalable and production ready sky and atmosphere rendering technique | |
Alhejri et al. | Reconstructing real object appearance with virtual materials using mobile augmented reality | |
Kán et al. | High-quality consistent illumination in mobile augmented reality by radiance convolution on the gpu | |
CN116894922A (zh) | 一种基于实时图形引擎的夜视图像生成方法 | |
US20180005432A1 (en) | Shading Using Multiple Texture Maps | |
CN116740253B (zh) | 一种光线追踪方法和电子设备 | |
Kwak et al. | Harmonic rendering for visual coherence on mobile outdoor AR environment | |
González et al. | based ambient occlusion | |
Mézières et al. | Harmonics Virtual Lights: fast projection of luminance field on spherical harmonics for efficient rendering | |
Abbas et al. | Gaussian radial basis function for efficient computation of forest indirect illumination | |
Boulanger et al. | Rendering trees with indirect lighting in real time | |
Han et al. | Research on rocket laser scattering characteristic simulation software | |
Hao et al. | A BRDF representing method based on Gaussian process | |
CN116030179B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
Andrade et al. | An unstructured lumigraph based approach to the SVBRDF estimation problem | |
CN117333609B (zh) | 图像渲染方法、网络的训练方法、设备及介质 | |
Favorskaya et al. | Lighting and shadows rendering in natural scenes |
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: 40046380 Country of ref document: HK |