CN116012520B - 阴影渲染方法、装置、计算机设备和存储介质 - Google Patents
阴影渲染方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116012520B CN116012520B CN202310288426.0A CN202310288426A CN116012520B CN 116012520 B CN116012520 B CN 116012520B CN 202310288426 A CN202310288426 A CN 202310288426A CN 116012520 B CN116012520 B CN 116012520B
- Authority
- CN
- China
- Prior art keywords
- shadow
- pixel point
- light source
- space
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
本申请涉及一种阴影渲染方法、装置、计算机设备和存储介质。涉及到游戏领域,包括:在以目标观察视角观察虚拟场景的情况下,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离;阴影空间距离,是指像素点的世界空间位置与位于目标光源位置处的阴影相机在阴影相机空间中的距离;基于目标光源的线性变换参数,对像素点在目标光源下对应的阴影空间距离进行线性变换,得到像素点对应的阴影衰减因子;线性变换参数是根据针对目标光源设置的预设衰减参数确定的;基于像素点对应的阴影衰减因子对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果。采用本方法能够提高阴影的渲染效率。
Description
技术领域
本申请涉及阴影渲染技术领域,特别是涉及一种阴影渲染方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了阴影渲染技术,阴影渲染技术用于渲染出阴影,阴影包括软阴影和硬阴影,硬阴影具有明显的边界,而软阴影中从阴影逐渐过渡到无阴影,故软阴影更加符合现实中的阴影
传统技术中,为了实现软阴影的效果,可以通过计算投影区域和遮挡物之间的距离来实现软阴影。
然而,传统的实现软阴影的方法,计算复杂度高,从而导致阴影渲染效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升阴影的渲染效果的阴影渲染方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一方面,本申请提供了一种阴影渲染方法。所述方法包括:在以目标观察视角观察虚拟场景的情况下,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离;所述阴影空间距离,是指所述像素点的世界空间位置与位于所述目标光源位置处的阴影相机在阴影相机空间中的距离;基于所述目标光源的线性变换参数,对所述像素点在目标光源下对应的阴影空间距离进行线性变换,得到所述像素点对应的阴影衰减因子;所述线性变换参数是根据针对所述目标光源设置的预设衰减参数确定的;基于所述像素点对应的阴影衰减因子对所述像素点进行阴影渲染,得到所述目标观察视角下所述虚拟场景的阴影渲染结果。
另一方面,本申请还提供了一种阴影渲染装置。所述装置包括:距离确定模块,用于在以目标观察视角观察虚拟场景的情况下,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离;所述阴影空间距离,是指所述像素点的世界空间位置与位于所述目标光源位置处的阴影相机在阴影相机空间中的距离;因子确定模块,用于基于所述目标光源的线性变换参数,对所述像素点在目标光源下对应的阴影空间距离进行线性变换,得到所述像素点对应的阴影衰减因子;所述线性变换参数是根据针对所述目标光源设置的预设衰减参数确定的;阴影渲染模块,用于基于所述像素点对应的阴影衰减因子对所述像素点进行阴影渲染,得到所述目标观察视角下所述虚拟场景的阴影渲染结果。
在一些实施例中,所述因子确定模块,还用于基于所述像素点在目标光源下对应的阴影空间距离,确定所述像素点对应的深度相关值;所述深度相关值与所述阴影空间距离成线性关系、且所述深度相关值与像素深度值相关,所述像素深度值,是指所述像素点的世界空间位置在阴影相机空间下的深度值;基于所述目标光源的线性变换参数对所述像素点的深度相关值进行线性变换,得到所述像素点对应的阴影衰减因子。
在一些实施例中,所述预设衰减参数包括衰减起始距离、衰减长度或衰减终止距离中的至少两个,所述衰减长度是所述衰减起始距离与所述衰减终止距离的差值,所述线性变换参数满足以下约束条件:在所述阴影空间距离与所述衰减起始距离一致的情况下,利用所述线性变换参数对所述像素点的深度相关值进行线性变换的结果为第一预设值;所述衰减起始距离是指在所述阴影相机空间中阴影衰减的起始位置到所述阴影相机的距离;在所述阴影空间距离与所述衰减终止距离一致的情况下,利用所述线性变换参数对所述像素点的深度相关值进行线性变换的结果为第二预设值;所述衰减终止距离是指在所述阴影相机空间中阴影衰减的结束位置到所述阴影相机的距离;所述第一预设值小于所述第二预设值。
在一些实施例中,所述因子确定模块,还用于在所述阴影相机为正交投影相机的情况下,基于所述像素点在目标光源下对应的阴影空间距离确定所述像素深度值;将所述像素深度值确定为所述像素点对应的深度相关值。
在一些实施例中,所述因子确定模块,还用于在所述阴影相机为透视投影相机的情况下,基于所述像素点在目标光源下对应的阴影空间距离,确定所述像素点对应的深度相关值;其中,所述像素深度值,为所述像素点对应的深度相关值与所述阴影空间位置的比值。
在一些实施例中,所述因子确定模块,还用于基于所述目标光源的线性变换参数对所述像素点的深度相关值进行线性变换,得到线性变换值;基于所述线性变换值和衰减因子阈值确定所述像素点对应的阴影衰减因子。
在一些实施例中,所述距离确定模块,还用于将所述像素点的世界空间位置转换到所述阴影相机空间中,得到所述世界空间位置的阴影空间位置;确定在所述阴影相机的观察方向上,所述世界空间位置的阴影空间位置与所述阴影相机的阴影空间位置之间的距离,得到所述像素点在目标光源下对应的阴影空间距离。
在一些实施例中,所述阴影渲染模块,还用于确定所述像素点在所述目标光源下的第一阴影强度;所述第一阴影强度为第一预设强度或第二预设强度中的一种;所述第一预设强度,表征所述目标光源射向所述像素点的世界空间位置的光线被遮挡,所述第二预设强度,表征所述目标光源射向所述像素点的世界空间位置的光线未被遮挡;利用所述阴影衰减因子对所述像素点的第一阴影强度进行衰减处理,得到所述像素点在所述目标光源下的第二阴影强度;基于所述第二阴影强度对所述像素点进行阴影渲染,得到所述目标观察视角下所述虚拟场景的阴影渲染结果。
在一些实施例中,所述阴影渲染模块,还用于将所述像素点的世界空间位置转换到所述阴影相机的阴影相机空间中,得到所述世界空间位置对应的阴影空间位置;将所述世界空间位置对应的阴影空间位置转换到屏幕空间,得到所述世界空间位置对应的屏幕空间位置;基于像素深度值和所述屏幕空间位置处的最小深度值,确定所述像素点在所述目标光源下的第一阴影强度;所述像素深度值,是指所述像素点的世界空间位置在阴影相机空间下的深度值。
在一些实施例中,所述装置还包括深度值得到模块,所述深度值得到模块,用于确定目标光源的阴影贴图;所述阴影贴图包括将阴影相机观察到的场景区域投影到屏幕空间后,屏幕空间中各屏幕空间位置处的最小深度值;从所述阴影贴图中获取所述世界空间位置对应的屏幕空间位置处的最小深度值。
在一些实施例中,所述阴影渲染模块,还用于在所述像素深度值大于所述屏幕空间位置处的最小深度值的情况下,确定所述像素点在所述目标光源下的第一阴影强度为所述第一预设强度;在所述像素深度值小于或等于所述屏幕空间位置处的最小深度值的情况下,确定所述像素点在所述目标光源下的第一阴影强度为所述第二预设强度。
在一些实施例中,所述阴影渲染模块,还用于确定所述像素点的第一颜色值;所述第一颜色值是指在无阴影情况下所述像素点的颜色值;基于所述第二阴影强度和所述第一颜色值确定所述像素点的第二颜色值;利用所述像素点的第二颜色值渲染得到所述目标观察视角下所述虚拟场景的阴影渲染结果。
另一方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述阴影渲染方法中的步骤。
另一方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述阴影渲染方法中的步骤。
另一方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述阴影渲染方法中的步骤。
上述阴影渲染方法、装置、计算机设备、存储介质和计算机程序产品,在以目标观察视角观察虚拟场景的情况下,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离,阴影空间距离,是指像素点的世界空间位置与位于目标光源位置处的阴影相机在阴影相机空间中的距离,基于目标光源的线性变换参数,对像素点在目标光源下对应的阴影空间距离进行线性变换,得到像素点对应的阴影衰减因子,线性变换参数是根据针对目标光源设置的预设衰减参数确定的,基于像素点对应的阴影衰减因子对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果。由于阴影衰减因子是对阴影空间距离进行线性变换得到的,从而阴影衰减因子与阴影空间距离成线性关系,从而利用阴影衰减因子进行阴影衰减可以使得阴影呈现软阴影的效果,而由于线性变化是利用目标光源的线性变换参数实现的,而线性变换参数是根据目标光源的预设衰减参数确定的,故利用目标光源的预设衰减参数,可以简单且高效的实现对阴影衰减因子的控制,计算复杂度低,从而在渲染出软阴影的同时提升了渲染效率。
附图说明
图1为一些实施例中阴影渲染方法的应用环境图;
图2为一些实施例中阴影渲染方法的流程示意图;
图3为一些实施例中阴影渲染的效果对比图;
图4为一些实施例中深度值与阴影空间距离的关系示意图;
图5为一些实施例中深度值与阴影空间距离的关系示意图;
图6为一些实施例中深度值与阴影空间距离的关系示意图;
图7为一些实施例中阴影渲染方法的流程示意图;
图8为一些实施例中阴影渲染的效果对比图;
图9为一些实施例中阴影渲染装置的结构框图;
图10为一些实施例中计算机设备的内部结构图;
图11为一些实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的阴影渲染方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。
具体地,终端102可以从服务器104获取虚拟场景,为了渲染出目标观察视角所观察到的画面,在该画面中存在阴影的情况下,终端102可以确定屏幕空间中的像素点在目标光源下对应的阴影空间距离,基于目标光源的线性变换参数,对像素点在目标光源下对应的阴影空间距离进行线性变换,得到像素点对应的阴影衰减因子,基于像素点对应的阴影衰减因子对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果。其中,阴影空间距离,是指像素点的世界空间位置与位于目标光源位置处的阴影相机在阴影相机空间中的距离。线性变换参数是根据针对目标光源设置的预设衰减参数确定的。终端102可以展示阴影渲染结果,也可以将阴影渲染结果发送至服务器104。
其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、云安全、主机安全等网络安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一些实施例中,如图2所示,提供了一种阴影渲染方法,该方法可以由终端或服务器执行,还可以由终端和服务器共同执行,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
步骤202,在以目标观察视角观察虚拟场景的情况下,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离;阴影空间距离,是指像素点的世界空间位置与位于目标光源位置处的阴影相机在阴影相机空间中的距离。
其中,虚拟场景是应用程序在终端上运行时显示(或提供)的虚拟的场景。该虚拟场景可以是对真实世界的仿真环境场景,也可以是半仿真半虚构的三维环境场景,还可以是纯虚构的三维环境场景。虚拟场景可以是二维虚拟场景、2.5维虚拟场景和三维虚拟场景中的任意一种。目标观察视角可以是任意的观察视角。虚拟场景包括但不限于是影视特效、游戏、视镜模拟、可视化设计、VR(Virtual Reality,虚拟现实)、工业仿真和数字文创等场景。
阴影相机位于目标光源位置处,且从目标光源的照射方向观察虚拟场景,即阴影相机的朝向与目标光源的照射方向一致,也就是说,阴影相机是指从目标光源的位置观察虚拟场景时采用的相机,阴影相机的观察方向与目标光源的照射方向一致。阴影相机空间是以阴影相机的位置为原点建立的三维坐标系。阴影相机空间也可以理解为目标光源的灯光空间,目标光源的灯光空间是以目标光源为原点建立的三维坐标系。
世界空间(World Space)是指虚拟场景所在的三维空间,世界空间的大小可以自定义,例如,世界空间为长100米宽100米高100米的立体空间。世界空间位置是指在世界空间中的位置。屏幕空间(Screnn Space)是指屏幕的二维空间,屏幕空间的大小为屏幕的大小,以像素为单位。
像素点的世界空间位置,是将目标场景区域投影到屏幕空间后像素点的世界空间位置。目标场景区域是指在目标观察视角下观察虚拟场景所观察到的场景区域。目标光源可以是虚拟场景中对目标场景区域产生光照的光源。光源是指能够自行发光且正在发光的物体,例如太阳、电灯、燃烧的物质等。虚拟场景中的光源,是能够真实地模拟现实中的光源的光照效果的一系列光照数据。
具体地,终端可以确定将目标场景区域投影到屏幕空间后,屏幕空间中各像素点分别对应的世界空间位置;目标场景区域是在目标观察视角下观察虚拟场景所观察到的场景区域。像素点的颜色值由该像素点对应的世界空间位置处的颜色值确定,像素点对应的世界空间位置例如可以是世界空间中物体上的位置。为了渲染出目标光源,针对每个像素点的世界空间位置,终端可以将该世界空间位置转换阴影相机空间中,得到该世界空间位置在阴影相机空间中的位置即阴影空间位置。
在一些实施例中,针对每个像素点,终端可以确定阴影相机在阴影相机空间中的位置,得到阴影相机的阴影空间位置,计算在阴影相机的观察方向上,世界空间位置的阴影空间位置到阴影相机的阴影空间位置的距离,计算得到的距离即为该像素点在目标光源下对应的阴影空间距离。步骤204,基于目标光源的线性变换参数,对像素点在目标光源下对应的阴影空间距离进行线性变换,得到像素点对应的阴影衰减因子;线性变换参数是根据针对目标光源设置的预设衰减参数确定的。
其中,预设衰减参数包括衰减起始距离、衰减长度或衰减终止距离中的至少两个。衰减起始距离是指在阴影相机空间中阴影衰减的起始位置到阴影相机的距离,阴影衰减的起始位置到目标光源的距离,可以是阴影衰减的起始位置和阴影相机的阴影空间位置在阴影相机的观察方向上的距离。阴影相机的阴影空间位置是指阴影相机在阴影相机空间中的位置。阴影相机的观察方向是指阴影相机朝向。阴影相机的阴影空间位置是指阴影相机在阴影相机空间中的位置。阴影相机空间可以通过三维坐标系标识,且该三维坐标系中的一个坐标轴的方向为该阴影相机朝向,例如,该三维坐标系中的Z轴的方向为该阴影相机朝向,从而阴影相机的观察方向即该三维坐标系中的Z轴的方向。
衰减终止距离是指在阴影相机空间中阴影衰减的结束位置到阴影相机的距离,阴影衰减的结束位置到阴影相机的距离,可以是阴影衰减的结束位置和阴影相机的阴影空间位置在阴影相机的观察方向上的距离。衰减长度表示衰减起始距离与衰减终止距离之间的差值,衰减起始距离与衰减长度进行求和所得到的结果为该衰减终止距离。
阴影衰减因子影响对应的像素点处渲染出的阴影的阴影强度,阴影衰减因子越大,则阴影强度越小,从而像素点处呈现出的阴影越不明显,阴影衰减因子越小,则阴影强度越大,从而像素点处呈现出的阴影越明显。
具体地,阴影衰减因子可以是利用线性变换参数直接对阴影空间距离进行线性变化得到的结果。线性变换参数满足的条件包括:在阴影空间距离与衰减起始距离一致的情况下,利用线性变换参数对阴影空间距离进行线性变换的结果为第一预设值,在阴影空间距离与衰减终止距离一致的情况下,利用线性变换参数对阴影空间距离进行线性变换的结果为第二预设值。第一预设值小于第二预设值。第一预设值例如为0附近的数值,例如可以为0或0.1等,第二预设值例如为1附近的数值,例如可以 1或0.9等。从而对深度相关值进行线性变换所得到的结果大于等于第一预设值且小于或等于第二预设值。
在一些实施例中,阴影衰减因子可以是利用线性变换参数间接对阴影空间距离进行线性变化得到的结果。具体地,终端可以基于像素点在目标光源下对应的阴影空间距离,确定像素点对应的深度相关值。深度相关值与阴影空间距离成线性关系、且深度相关值与目标深度值相关。目标深度值是指世界空间位置在阴影相机空间中的位置处的深度值。深度值用于表征与相机之间的距离,深度值越大,则与相机之间的距离越大,目标深度值表征世界空间位置在阴影相机空间中的位置,与该阴影相机之间的距离。终端可以基于目标光源的线性变换参数对像素点的深度相关值进行线性变换,得到像素点对应的阴影衰减因子。其中,线性变换参数满足预设条件,预设条件包括:在阴影空间距离与衰减起始距离一致的情况下,利用线性变换参数对深度相关值进行线性变换的结果为第一预设值,在阴影空间距离与衰减终止距离一致的情况下,利用线性变换参数对深度相关值进行线性变换的结果为第二预设值。
在一些实施例中,终端可以基于目标光源的线性变换参数对像素点的深度相关值进行线性变换,将线性变换的结果作为像素点对应的阴影衰减因子。线性变换参数可以为一个或多个,多个是指至少两个。例如,factor =posL.z * t1 +t2。其中,posL.z代表深度相关值,t1和t2为两个线性变换参数,且t1和t2满足预设条件。
步骤206,基于像素点对应的阴影衰减因子对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果。
具体地,终端可以确定像素点在目标光源下的第一阴影强度;第一阴影强度为第一预设强度或第二预设强度中的一种;第一预设强度,表征目标光源射向像素点的世界空间位置的光线被遮挡,第二预设强度,表征目标光源射向像素点的世界空间位置的光线未被遮挡。第一预设强度大于第二预设强度,第一预设强度例如为1附近的数值,例如可以 1或0.9等,第二预设强度例如为0附近的数值,例如可以为0或0.1等。终端可以利用阴影衰减因子对像素点的第一阴影强度进行衰减处理,得到像素点在目标光源下的第二阴影强度,基于第二阴影强度对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果。其中,第二阴影强度与阴影衰减因子成负相关关系。
在一些实施例中,终端确定将目标场景区域投影到屏幕空间后,屏幕空间中各像素点各自的世界空间位置。目标场景区域是指在目标观察视角下观察虚拟场景所观察到的场景区域。针对每个像素点,终端可以利用本申请提供确定阴影衰减因子的方法,根据像素点的世界空间位置得到像素点的阴影衰减因子。在得到各像素点各自的阴影衰减因子的情况下,基于像素点对应的阴影衰减因子对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果,该阴影渲染结果中包括目标光源产生的阴影,且呈现软阴影效果。在目标光源为多个的情况下,可以依次利用每个目标光源进行渲染得到阴影渲染结果,从而阴影渲染结果中包括各个目标光源产生的软阴影。
上述阴影渲染方法中,在以目标观察视角观察虚拟场景的情况下,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离,阴影空间距离,是指像素点的世界空间位置与位于目标光源位置处的阴影相机在阴影相机空间中的距离,基于目标光源的线性变换参数,对像素点在目标光源下对应的阴影空间距离进行线性变换,得到像素点对应的阴影衰减因子,线性变换参数是根据针对目标光源设置的预设衰减参数确定的,基于像素点对应的阴影衰减因子对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果。由于阴影衰减因子是对阴影空间距离进行线性变换得到的,从而阴影衰减因子与阴影空间距离成线性关系,从而利用阴影衰减因子进行阴影衰减可以使得阴影呈现软阴影的效果,而由于线性变化是利用目标光源的线性变换参数实现的,而线性变换参数是根据目标光源的预设衰减参数确定的,故利用目标光源的预设衰减参数,可以简单且高效的实现对阴影衰减因子的控制,计算复杂度低,从而提高了软阴影的渲染效率。
采用本申请提供的阴影渲染方法,可以渲染出软阴影,并且通过调整预设衰减参数,可以方便且快捷的控制阴影的效果,并且计算复杂度较低,提高了阴影渲染的效率,以预设衰减参数包括衰减起始距离x1、衰减长度x2为例,如图3所示,图3中的(a)中是不存在阴影衰减的效果图,即是硬阴影的效果图,图3中的(b)-(d)是x1和x2的取值不同情况下的阴影衰减的效果图。(b)比(c)早衰减且衰减距离大,但是(b)和(c)衰减终止距离为都是1.5,(d)比(c)早衰减且衰减距离大。可见,采用本申请提供的阴影衰减渲染方法,可以灵活的调整阴影的渲染效果,从而使得渲染出的阴影更加真实。
在一些实施例中,基于目标光源的线性变换参数,对像素点在目标光源下对应的阴影空间距离进行线性变换,得到像素点对应的阴影衰减因子包括:基于像素点在目标光源下对应的阴影空间距离,确定像素点对应的深度相关值;深度相关值与阴影空间距离成线性关系、且深度相关值与像素深度值相关,像素深度值,是指像素点的世界空间位置在阴影相机空间下的深度值;基于目标光源的线性变换参数对像素点的深度相关值进行线性变换,得到像素点对应的阴影衰减因子。
具体地,终端可以根据像素点在目标光源下对应的阴影空间距离,确定像素深度值。深度值的计算方法包括正向深度计算方法和反向深度计算方法(Reversed-Z方法),正向深度计算方法中,深度值与距离成正相关关系,从而在正向深度计算方法中,像素深度值与阴影空间距离成正相关关系。在反向深度计算方法中,深度值与距离成负相关关系,从而在反向深度计算方法中,像素深度值与阴影空间距离成负相关关系。深度值计算方式与阴影相机的投影类型有关,投影类型包括透视投影或正交投影中的至少一个。
在一些实施例中,在阴影相机的投影类型为透视投影,且深度计算方法为正向深度计算方法的情况下,深度值d的计算公式为:(1),其中,d代表深度值,x代表阴影空间距离,n代表阴影相机的近平面对应的阴影空间距离,近平面对应的阴影空间距离,表示阴影相机空间中阴影相机到近平面的距离。f代表阴影相机的远平面对应的阴影空间距离,远平面对应的阴影空间距离,表示阴影相机空间中阴影相机到远平面的距离。在公式(1)中的x取值为像素点在目标光源下对应的阴影空间距离的情况下,公式(1)中计算出的d则为像素深度值。
在一些实施例中,在阴影相机的投影类型为正交投影,且深度计算方法为正向深度计算方法的情况下,深度值d的计算公式为:(2)。在公式(2)中的x取值为像素点在目标光源下对应的阴影空间距离的情况下,公式(2)中计算出的d则为像素深度值。
在一些实施例中,在阴影相机的投影类型为透视投影,且深度计算方法为反向深度计算方法的情况下,深度值d的计算公式为:(3)。在公式(3)中的x取值为像素点在目标光源下对应的阴影空间距离的情况下,公式(3)中计算出的d则为像素深度值。
在一些实施例中,在阴影相机的投影类型为正交投影,且深度计算方法为反向深度计算方法的情况下,深度值d的计算公式为:(4)。在公式(4)中的x取值为像素点在目标光源下对应的阴影空间距离的情况下,公式(4)中计算出的d则为像素深度值。
从公式(1)-(4)可以看出,在投影类型为透视投影的情况下,深度值d与阴影空间距离x成非线性关系,如图4,展示了公式(3)中的d随着x而变化的示意图,显然,d与x成非线性关系。在投影类型为正交投影的情况下,深度值d与阴影空间距离x成线性关系,如图5,展示了公式(2)中的d随着x而变化的示意图,显然,d与x成线性关系。从而在投影类型为正交投影的情况下,终端可以将像素深度值作为像素点对应的深度相关值。在投影类型为透视投影的情况下,终端可以将未经过透视除法的深度值d1作为像素点对应的深度相关值,在深度计算方法为正向深度计算方法的情况下,未经过透视除法的深度值的计算公式为:(5),在深度计算方法为反向深度计算方法的情况下,未经过透视除法的深度值的计算公式为:/>(6),d与d1的区别在于是否除以x,除以x则表示进行了透视除法,未除以x则表示未进行透视除法。未经过透视除法的深度值d1与阴影空间距离x成线性关系,如图6所示,展示了公式(5)中的d1随着x而变化的示意图,显然,d1与x成线性关系。
在一些实施例中,终端可以通过视图矩阵、阴影相机对应的投影矩阵、从NDC(归一化的设备坐标空间,Normalized Device Coordinate)跳转屏幕空间的矩阵,依次对像素点的世界空间位置进行变换,得到变换后的位置,变换后的位置可以是通过齐次坐标(X,Y,Z,W)表示的,其中,W用于对坐标进行缩放处理,w即为阴影空间距离,Z代表未经过透视除法的像素深度值,Z/W则为像素深度值,(X/W,Y/W)则为屏幕空间位置。从而终端可以直接根据变换后的位置确定阴影空间距离、未经过透视除法的像素深度值以及像素深度值。
本实施例中,基于目标光源的线性变换参数对像素点的深度相关值进行线性变换,得到像素点对应的阴影衰减因子,由此可知,阴影衰减因子与阴影衰减因子之间存在线性关系,而由于深度相关值与阴影空间距离成线性关系,从而使得阴影衰减因子与阴影空间距离成线性关系,从而通过简单的线性变换即可以得到与阴影空间距离成线性关系的阴影衰减因子,提高了确定阴影衰减因子的效率,从而提高了阴影渲染的效率。并且本申请提供的计算阴影衰减因子的方法,可以适用于透视投影以及正交投影,从而统一透视投影和正交投影的衰减计算方法,减少运算量,进一步的提高了渲染效率。
在一些实施例中,预设衰减参数包括衰减起始距离、衰减长度或衰减终止距离中的至少两个,衰减长度是衰减起始距离与衰减终止距离的差值,线性变换参数满足以下约束条件:在阴影空间距离与衰减起始距离一致的情况下,利用线性变换参数对像素点的深度相关值进行线性变换的结果为第一预设值;衰减起始距离是指在阴影相机空间中阴影衰减的起始位置到阴影相机的距离;在阴影空间距离与衰减终止距离一致的情况下,利用线性变换参数对像素点的深度相关值进行线性变换的结果为第二预设值;衰减终止距离是指在阴影相机空间中阴影衰减的结束位置到阴影相机的距离;第一预设值小于第二预设值。
其中,第一预设值小于第二预设值。第一预设值例如为0附近的数值,例如可以为0或0.1等,第二预设值例如为1附近的数值,例如可以 1或0.9等。约束条件包括:1、在阴影空间距离与衰减起始距离一致的情况下,利用线性变换参数对像素点的深度相关值进行线性变换的结果为第一预设值;2、在阴影空间距离与衰减终止距离一致的情况下,利用线性变换参数对像素点的深度相关值进行线性变换的结果为第二预设值。例如,用x1表示衰减起始距离,用x2表示衰减长度,用x3表示衰减终止距离,x3= x1+ x2,若第一预设值为0,第二预设值为1,则约束条件为:在x=x1的情况下,fac=0,在x=x3的情况下,fac=1。
从而对深度相关值进行线性变换所得到的结果大于等于第一预设值且小于或等于第二预设值。在线性变换参数满足约束条件的情况下,可以使得阴影从衰减起始距离处开始衰减,并在衰减终止距离处阴影消失,以使得阴影呈现出软阴影的效果。第一变换参数和第二变换参数是根据预设衰减参数确定的,预设衰减参数包括衰减起始距离、衰减长度或衰减终止距离中的至少两个。
具体地,终端可以确定满足约束条件的线性变换参数,利用满足约束条件的线性变换参数,对像素点的深度相关值进行线性变换,得到像素点对应的阴影衰减因子,从而使得利用阴影衰减因子渲染出的阴影呈现出软阴影的效果。
在一些实施例中,线性变换参数包括第一变换参数和第二变换参数,终端可以根据约束条件计算得到满足约束条件的第一变换参数和第二变换参数,利用满足约束条件的第一变换参数和第二变换参数,对像素点的深度相关值进行线性变换,得到像素点对应的阴影衰减因子。例如,终端可以利用公式fac=t1*D(x)+t2计算得到阴影衰减因子。其中,fac代表阴影衰减因子,t1为第一变换参数,t2为第二变换参数,D(x)代表计算深度相关值的函数,例如,在正交投影情况下,D(x)为深度值的计算公式,在透视投影的情况下,D(x)为未经过透视除法的深度值的计算公式。其中,第一变换参数和第二变换参数满足约束条件。
在一些实施例中,第一预设值为0,第二预设值为1,在的情况下,满足约束条件的第一变换参数和第二变换参数分别为:/>,;在/>的情况下,满足约束条件的第一变换参数和第二变换参数分别为:/>,/>;在/>的情况下,满足约束条件的第一变换参数和第二变换参数分别为:/>,;在/>的情况下,满足约束条件的第一变换参数和第二变换参数分别为:/>,/>。
本实施例中,由于在阴影空间距离与衰减起始距离一致的情况下,线性变换的结果为第一预设值,在阴影空间距离与衰减终止距离一致的情况下,线性变换的结果为第二预设值,第一预设值小于第二预设值,从而在阴影空间距离从衰减起始距离变化到衰减终止距离的过程中,即在阴影空间距离逐渐变大的过程中,线性变换的结果逐渐从第一预设值变大到第二预设值,即阴影衰减因子逐渐从第一预设值变大到第二预设值,也就是说,阴影衰减因子随着阴影空间距离的增大而增大,符合软阴影的真实现象。
在一些实施例中,基于像素点在目标光源下对应的阴影空间距离,确定像素点对应的深度相关值包括:在阴影相机为正交投影相机的情况下,基于像素点在目标光源下对应的阴影空间距离确定像素深度值;将像素深度值确定为像素点对应的深度相关值。
具体地,阴影相机为正交投影相机,是指阴影相机的投影方式为正交投影,在正交投影情况下,由于像素深度值与阴影空间距离成线性关系,故终端可以将像素深度值确定为像素点对应的深度相关值。
本实施例中,将像素深度值确定为像素点对应的深度相关值,从而方便且快捷的得到了深度相关值。
在一些实施例中,方法还包括:在阴影相机为透视投影相机的情况下,基于像素点在目标光源下对应的阴影空间距离,确定像素点对应的深度相关值;其中,像素深度值,为像素点对应的深度相关值与阴影空间位置的比值。
具体地,由于像素深度值,为像素点对应的深度相关值与阴影空间位置的比值,从而像素点对应的深度相关值,是指未经过透视除法的像素深度值,由于在投影类型为透视投影的情况下,像素深度值与阴影空间位置成非线性关系,而未经过透视除法的像素深度值与阴影空间位置成线性关系,从而像素点对应的深度相关值与阴影空间位置成线性关系。例如,在深度计算方法为正向深度计算方法的情况下,像素深度值为,未经过透视除法的像素深度值为/>,显然未经过透视除法的像素深度值与x成线性关系。
本实施例中,由于像素深度值,为像素点对应的深度相关值与阴影空间位置的比值,从而得到了与阴影空间距离成线性关系的深度相关值。
在一些实施例中,基于目标光源的线性变换参数对像素点的深度相关值进行线性变换,得到像素点对应的阴影衰减因子包括:基于目标光源的线性变换参数对像素点的深度相关值进行线性变换,得到线性变换值;基于线性变换值和衰减因子阈值确定像素点对应的阴影衰减因子。
其中,衰减因子阈值包括第一衰减因子阈值或第二衰减因子阈值中的至少一个,第一衰减因子阈值小于第二衰减因子阈值,例如,第一衰减因子阈值为0附近的数值,例如可以为0或0.1。第二衰减因子阈值为1附近的数值,例如可以 1或0.9等。
具体地,终端可以基于目标光源的线性变换参数对像素点的深度相关值进行线性变换,得到线性变换值。在线性变换值小于第一衰减因子阈值的情况下,终端可以将第一衰减因子阈值作为像素点对应的阴影衰减因子。在线性变换值大于第二衰减因子阈值的情况下,终端可以将第二衰减因子阈值作为像素点对应的阴影衰减因子。在线性变换值大于或等于第一衰减因子阈值、且线性变换值小于或等于第二衰减因子阈值的情况下,终端可以将线性变换值作为像素点对应的阴影衰减因子。
以第一衰减因子阈值为0,第二衰减因子阈值为1为例,则阴影衰减因子factor可以通过公式factor = saturate(posL.z * t1 +t2)计算得到。其中,在posL.z * t1 +t2的计算结果小于0的情况下,saturate函数的结果为0,从而阴影衰减因子factor=0,在posL.z*t1 +t2的计算结果大于1的情况下,saturate函数的结果为1,从而阴影衰减因子factor=1,在posL.z * t1 +t2的计算结果大于或等于0且小于或等于1的情况下,saturate函数的结果为posL.z *t1 +t2的计算结果,从而阴影衰减因子factor= posL.z * t1 +t2。posL.z代表深度相关值,t1和t2为两个线性变换参数。
本实施例中,基于线性变换值和衰减因子阈值确定像素点对应的阴影衰减因子,从而对阴影衰减因子的取值范围进行了限定,使得阴影衰减因子更加合理。
在一些实施例中,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离包括:将像素点的世界空间位置转换到阴影相机空间中,得到世界空间位置的阴影空间位置;确定在阴影相机的观察方向上,世界空间位置的阴影空间位置与阴影相机的阴影空间位置之间的距离,得到像素点在目标光源下对应的阴影空间距离。
其中,阴影相机的观察方向是指阴影相机朝向。阴影相机的阴影空间位置是指阴影相机在阴影相机空间中的位置。阴影相机空间可以通过三维坐标系标识,且该三维坐标系中的一个坐标轴的方向为该阴影相机朝向,例如,该三维坐标系中的Z轴的方向为该阴影相机朝向,从而阴影相机的观察方向即该三维坐标系中的Z轴的方向。
具体地,对于屏幕空间中的像素点,终端可以确定世界空间位置的阴影空间位置在该阴影相机的观察方向上的坐标,例如在阴影相机空间的三维坐标系中Z轴方向上的坐标,得到第一坐标,同样的,终端可以确定阴影相机的阴影空间位置在该阴影相机的观察方向上的坐标,得到第二坐标,计算第一坐标与第二坐标之间的差值,该差值即为像素点在目标光源下对应的阴影空间距离。
本实施例中,由于阴影空间距离,是世界空间位置的阴影空间位置与阴影相机的阴影空间位置在阴影相机的观察方向上的距离,而观察方向与目标光源的照射方向一致,从而阴影空间位置反映了与目标光源之间的距离,而由于远离目标光源的阴影具有较大的衰减,从而利用阴影空间距离确定阴影衰减因子,提高了阴影衰减因子的合理性。
在一些实施例中,基于像素点对应的阴影衰减因子对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果包括:确定像素点在目标光源下的第一阴影强度;第一阴影强度为第一预设强度或第二预设强度中的一种;第一预设强度,表征目标光源射向像素点的世界空间位置的光线被遮挡,第二预设强度,表征目标光源射向像素点的世界空间位置的光线未被遮挡;利用阴影衰减因子对像素点的第一阴影强度进行衰减处理,得到像素点在目标光源下的第二阴影强度;基于第二阴影强度对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果。
其中,阴影强度用于反映阴影的明显程度,阴影强度越大,则阴影越明显。第一阴影强度为第一预设强度或第二预设强度中的一种。第一预设强度,表征目标光源射向像素点的世界空间位置的光线被遮挡。第二预设强度,表征目标光源射向像素点的世界空间位置的光线未被遮挡。第一预设强度大于第二预设强度,第一预设强度例如为1附近的数值,例如可以 1或0.9等,第二预设强度例如为0附近的数值,例如可以为0或0.1等。第二阴影强度与阴影衰减因子成负相关关系,第二阴影强度与第一阴影强度成正相关关系。
具体地,终端可以根据阴影衰减因子确定强度保留值,强度保留值与阴影衰减因子成负相关关系,例如,强度保留值=1-阴影衰减因子。终端可以对强度保留值与第一阴影强度进行乘积运算,将运算的结果作为第二阴影强度。例如,第二阴影强度intensity2 =(1- factor)* intensity1。其中,intensity1代表第一阴影强度,intensity2代表第二阴影强度,factor代表阴影衰减因子。
本实施例中,利用阴影衰减因子对像素点的第一阴影强度进行衰减处理,得到像素点在目标光源下的第二阴影强度,基于第二阴影强度对像素点进行阴影渲染,从而使阴影渲染结果可以呈现出软阴影效果,提高了阴影渲染效果。
在一些实施例中,确定像素点在目标光源下的第一阴影强度包括:将像素点的世界空间位置转换到阴影相机的阴影相机空间中,得到世界空间位置对应的阴影空间位置;将世界空间位置对应的阴影空间位置转换到屏幕空间,得到世界空间位置对应的屏幕空间位置;基于像素深度值和屏幕空间位置处的最小深度值,确定像素点在目标光源下的第一阴影强度;像素深度值,是指像素点的世界空间位置在阴影相机空间下的深度值。
其中,世界空间位置对应的阴影空间位置,是指将世界空间位置从世界空间转换到阴影相机空间所得到的位置。屏幕空间位置代表像素点在屏幕空间中的位置。屏幕空间位置处的最小深度值,是指将阴影相机观察到的场景区域投影到屏幕空间后,屏幕空间中该屏幕空间位置处的最小深度值。阴影相机观察到的场景区域中的多个场景点可以投影到屏幕空间中的同一位置,从而屏幕空间位置可以对应多个场景点,该多个场景点中未被遮挡的场景点在阴影相机空间中的深度值,即为该屏幕空间位置处的最小深度值。场景点属于虚拟场景中的虚拟物体上的点,虚拟物体可以是有生命的物体或无生命的物体,例如可以是动物、建筑物或家具等。像素点的世界空间位置也可以理解为虚拟场景中的虚拟物体上的点。
具体地,为了确定屏幕空间位置的最小深度值,针对屏幕空间对应的多个场景点中的每个场景点,终端可以确定在阴影相机的观察方向上,该场景点在阴影相机空间中的位置与该阴影相机的阴影空间位置之间的距离,将确定出的距离作为该场景点在目标光源下对应的阴影空间距离,根据场景点在目标光源下对应的阴影空间距离,确定场景点在阴影相机空间下的深度值。得到该多个场景点各自的深度值后,终端可以从各深度值中确定最小的深度值,作为该屏幕空间位置处的最小深度值。根据阴影空间距离确定深度值的方式,可以参考上述的根据阴影空间距离确定像素深度值的方法,这里不再赘述。
在一些实施例中,终端可以将像素深度值与屏幕空间位置处的最小深度值进行对比,根据对比结果确定像素点在目标光源下的第一阴影强度。
本实施例中,由于深度值之间的关系可以反映出遮挡关系,从而通过对比深度值来确定第一阴影强度,以使得第一阴影强度准确的反映遮挡关系,提高了第一阴影强度的准确度。
在一些实施例中,得到屏幕空间位置处的最小深度值的步骤包括:确定目标光源的阴影贴图;阴影贴图包括将阴影相机观察到的场景区域投影到屏幕空间后,屏幕空间中各屏幕空间位置处的最小深度值;从阴影贴图中获取世界空间位置对应的屏幕空间位置处的最小深度值。
具体地,阴影贴图包括将阴影相机观察到的场景区域投影到屏幕空间后,屏幕空间中各屏幕空间位置处的最小深度值。阴影贴图可以是预先生成的。在利用目标光源进行阴影渲染时,可以从目标光源的阴影贴图中获取屏幕空间位置处的最小深度值。
本实施例中,通过阴影贴图,可以快速获取屏幕空间位置处的最小深度值,提高了渲染效率。
在一些实施例中,基于像素深度值和屏幕空间位置处的最小深度值,确定像素点在目标光源下的第一阴影强度包括:在像素深度值大于屏幕空间位置处的最小深度值的情况下,确定像素点在目标光源下的第一阴影强度为第一预设强度;在像素深度值小于或等于屏幕空间位置处的最小深度值的情况下,确定像素点在目标光源下的第一阴影强度为第二预设强度。
其中,第一预设强度,表征目标光源射向像素点的世界空间位置的光线被遮挡。第二预设强度,表征目标光源射向像素点的世界空间位置的光线未被遮挡。第一预设强度大于第二预设强度,第一预设强度例如为1附近的数值,例如可以 1或0.9等,第二预设强度例如为0附近的数值,例如可以为0或0.1等。第二阴影强度与阴影衰减因子成负相关关系,第二阴影强度与第一阴影强度成正相关关系。
具体地,在像素深度值大于屏幕空间位置处的最小深度值的情况下,说明目标光源射向像素点的世界空间位置的光线被遮挡了,故在像素深度值大于屏幕空间位置处的最小深度值的情况下,终端可以确定像素点在目标光源下的第一阴影强度为第一预设强度。在像素深度值小于或等于屏幕空间位置处的最小深度值的情况下,说明目标光源射向像素点的世界空间位置的光线未被遮挡,故在像素深度值小于或等于屏幕空间位置处的最小深度值的情况下,终端可以确定像素点在目标光源下的第一阴影强度为第二预设强度。
本实施例中,利用像素深度值大于屏幕空间位置处的最小深度值,准确的判断出了第一阴影强度的取值。
在一些实施例中,基于第二阴影强度对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果包括:确定像素点的第一颜色值;第一颜色值是指在无阴影情况下像素点的颜色值;基于第二阴影强度和第一颜色值确定像素点的第二颜色值;利用像素点的第二颜色值渲染得到目标观察视角下虚拟场景的阴影渲染结果。
其中,像素点的第一颜色值是指在无阴影情况下像素点的颜色值,即是在不考虑遮挡的情况下像素点的颜色值,即在假设目标光源可以照射到像素点的世界空间位置的情况下,该像素点的颜色值。
具体地,第二颜色值与第二阴影强度成负相关关系。第一终端可以根据第二阴影强度确定颜色保留系数,颜色保留系数与第二阴影强度成负相关关系,将颜色保留系数与第二颜色值的乘积作为第二颜色值。颜色保留系数为0-1之间的数值,例如,颜色保留系数=1-第二阴影强度,第二颜色值=第一颜色值×(1-第二阴影强度)。
在一些实施例中,终端确定将目标场景区域投影到屏幕空间后,屏幕空间中各像素点各自的世界空间位置。目标场景区域是指在目标观察视角下观察虚拟场景所观察到的场景区域。针对每个像素点,终端可以利用本申请提供确定阴影衰减因子的方法,根据像素点的世界空间位置得到像素点的阴影衰减因子。在得到各像素点各自的阴影衰减因子的情况下,确定各像素点各自的第二颜色值,利用各像素点各自的第二颜色值渲染得到目标观察视角下虚拟场景的阴影渲染结果,该阴影渲染结果中包括目标光源产生的阴影,且呈现软阴影效果。在目标光源为多个的情况下,可以依次利用每个目标光源进行渲染得到阴影渲染结果,从而阴影渲染结果中包括各个目标光源产生的软阴影。
本实施例中,基于第二阴影强度和第一颜色值确定像素点的第二颜色值,利用像素点的第二颜色值渲染得到目标观察视角下虚拟场景的阴影渲染结果,从而使得阴影渲染结果中的阴影呈现出软阴影效果,提高了阴影渲染效果。
在一些实施例中,如图7所示,提供了一种阴影渲染方法,该方法可以由终端执行,还可以由终端和服务器共同执行,以该方法应用于终端为例进行说明,包括以下步骤:
步骤702,确定将目标场景区域投影到屏幕空间后,屏幕空间中各像素点分别对应的世界空间位置;目标场景区域是在目标观察视角下观察虚拟场景所观察到的场景区域。
步骤704,针对每个像素点,确定在阴影相机的观察方向上,像素点的世界空间位置对应的阴影空间位置与阴影相机的阴影空间位置之间的距离,得到像素点在目标光源下对应的阴影空间距离。
其中,阴影相机位于目标光源位置处,且从目标光源的照射方向观察虚拟场景,即阴影相机的朝向与目标光源的照射方向一致。
步骤706,基于像素点在目标光源下对应的阴影空间距离,确定像素点的深度相关值。
其中,深度相关值与阴影空间距离成线性关系、且深度相关值与像素深度值相关,像素深度值,是指像素点的世界空间位置在阴影相机空间下的深度值。
步骤708,基于目标光源的线性变换参数,对像素点的深度相关值进行线性变换,得到像素点对应的阴影衰减因子。
其中,线性变换参数满足以下约束条件:在阴影空间距离与衰减起始距离一致的情况下,利用线性变换参数对像素点的深度相关值进行线性变换的结果为第一预设值;衰减起始距离是指在阴影相机空间中阴影衰减的起始位置到阴影相机的距离;在阴影空间距离与衰减终止距离一致的情况下,利用线性变换参数对像素点的深度相关值进行线性变换的结果为第二预设值;衰减终止距离是指在阴影相机空间中阴影衰减的结束位置到阴影相机的距离;第一预设值小于第二预设值。
步骤710,确定像素点在目标光源下的第一阴影强度。
其中,第一阴影强度为第一预设强度或第二预设强度中的一种;第一预设强度,表征目标光源射向像素点的世界空间位置的光线被遮挡,第二预设强度,表征目标光源射向像素点的世界空间位置的光线未被遮挡。
步骤712,利用阴影衰减因子对像素点的第一阴影强度进行衰减处理,得到像素点在目标光源下的第二阴影强度。
步骤714,基于第二阴影强度对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果。
本实施例中,通过衰减起始距离、衰减终止距离或衰减长度确定出的线性变换参数,对像素点在目标光源下对应的阴影空间距离进行线性变换,得到像素点对应的阴影衰减因子,从而实现了利用参数(衰减起始距离、衰减终止距离或衰减长度)控制阴影衰减因子的方法,控制阴影衰减因子的方式简单高效,计算复杂度低,提高了软阴影的渲染效率。如图8所示,展示了不存在阴影衰减和存在阴影衰减的效果图。
本申请提供的阴影渲染方法,可以应用于任意的需要渲染阴影的场景,包括但不限于应用于影视特效、游戏、视镜模拟、可视化设计、VR(Virtual Reality,虚拟现实)、工业仿真和数字文创等场景中。通过本申请的阴影渲染方法,可在影视特效、可视化设计、游戏、视镜模拟、VR、工业仿真和数字文创等场景中提升阴影渲染效率。
针对游戏场景,在游戏场景中存在阴影的情况下,终端可以确定将观察到的游戏场景区域投影到屏幕空间后,屏幕空间中各像素点分别对应的世界空间位置,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离,基于目标光源的线性变换参数,对像素点在目标光源下对应的阴影空间距离进行线性变换,得到像素点对应的阴影衰减因子,基于像素点对应的阴影衰减因子对像素点进行阴影渲染,得到游戏场景的阴影渲染结果。从而在渲染出软阴影的同时提升了渲染效率。
针对工业仿真场景,为了渲染出仿真物体被灯光照射下产生的阴影,终端可以确定将观察到的工业仿真场景区域投影到屏幕空间后,屏幕空间中各像素点分别对应的世界空间位置,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离,基于目标光源的线性变换参数,对像素点在目标光源下对应的阴影空间距离进行线性变换,得到像素点对应的阴影衰减因子,基于像素点对应的阴影衰减因子对像素点进行阴影渲染,得到工业仿真场景的阴影渲染结果。从而在渲染出软阴影的同时提升了渲染效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的阴影渲染方法的阴影渲染装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个阴影渲染装置实施例中的具体限定可以参见上文中对于阴影渲染方法的限定,在此不再赘述。
在一些实施例中,如图9所示,提供了一种阴影渲染装置,包括:距离确定模块902、因子确定模块904和阴影渲染模块906,其中:
距离确定模块902,用于在以目标观察视角观察虚拟场景的情况下,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离;阴影空间距离,是指像素点的世界空间位置与位于目标光源位置处的阴影相机在阴影相机空间中的距离。
因子确定模块904,用于基于目标光源的线性变换参数,对像素点在目标光源下对应的阴影空间距离进行线性变换,得到像素点对应的阴影衰减因子;线性变换参数是根据针对目标光源设置的预设衰减参数确定的。
阴影渲染模块906,用于基于像素点对应的阴影衰减因子对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果。
在一些实施例中,因子确定模块904,还用于基于像素点在目标光源下对应的阴影空间距离,确定像素点对应的深度相关值;深度相关值与阴影空间距离成线性关系、且深度相关值与像素深度值相关,像素深度值,是指像素点的世界空间位置在阴影相机空间下的深度值;基于目标光源的线性变换参数对像素点的深度相关值进行线性变换,得到像素点对应的阴影衰减因子。
在一些实施例中,预设衰减参数包括衰减起始距离、衰减长度或衰减终止距离中的至少两个,衰减长度是衰减起始距离与衰减终止距离的差值,线性变换参数满足以下约束条件:在阴影空间距离与衰减起始距离一致的情况下,利用线性变换参数对像素点的深度相关值进行线性变换的结果为第一预设值;衰减起始距离是指在阴影相机空间中阴影衰减的起始位置到阴影相机的距离;在阴影空间距离与衰减终止距离一致的情况下,利用线性变换参数对像素点的深度相关值进行线性变换的结果为第二预设值;衰减终止距离是指在阴影相机空间中阴影衰减的结束位置到阴影相机的距离;第一预设值小于第二预设值。
在一些实施例中,因子确定模块904,还用于在阴影相机为正交投影相机的情况下,基于像素点在目标光源下对应的阴影空间距离确定像素深度值;将像素深度值确定为像素点对应的深度相关值。
在一些实施例中,因子确定模块904,还用于在阴影相机为透视投影相机的情况下,基于像素点在目标光源下对应的阴影空间距离,确定像素点对应的深度相关值;其中,像素深度值,为像素点对应的深度相关值与阴影空间位置的比值。
在一些实施例中,因子确定模块904,还用于基于目标光源的线性变换参数对像素点的深度相关值进行线性变换,得到线性变换值;基于线性变换值和衰减因子阈值确定像素点对应的阴影衰减因子。
在一些实施例中,距离确定模块902,还用于将像素点的世界空间位置转换到阴影相机空间中,得到世界空间位置的阴影空间位置;确定在阴影相机的观察方向上,世界空间位置的阴影空间位置与阴影相机的阴影空间位置之间的距离,得到像素点在目标光源下对应的阴影空间距离。
在一些实施例中,阴影渲染模块906,还用于确定像素点在目标光源下的第一阴影强度;第一阴影强度为第一预设强度或第二预设强度中的一种;第一预设强度,表征目标光源射向像素点的世界空间位置的光线被遮挡,第二预设强度,表征目标光源射向像素点的世界空间位置的光线未被遮挡;利用阴影衰减因子对像素点的第一阴影强度进行衰减处理,得到像素点在目标光源下的第二阴影强度;基于第二阴影强度对像素点进行阴影渲染,得到目标观察视角下虚拟场景的阴影渲染结果。
在一些实施例中,阴影渲染模块906,还用于将像素点的世界空间位置转换到阴影相机的阴影相机空间中,得到世界空间位置对应的阴影空间位置;将世界空间位置对应的阴影空间位置转换到屏幕空间,得到世界空间位置对应的屏幕空间位置;基于像素深度值和屏幕空间位置处的最小深度值,确定像素点在目标光源下的第一阴影强度;像素深度值,是指像素点的世界空间位置在阴影相机空间下的深度值。
在一些实施例中,装置还包括深度值得到模块,深度值得到模块,用于确定目标光源的阴影贴图;阴影贴图包括将阴影相机观察到的场景区域投影到屏幕空间后,屏幕空间中各屏幕空间位置处的最小深度值;从阴影贴图中获取世界空间位置对应的屏幕空间位置处的最小深度值。
在一些实施例中,阴影渲染模块906,还用于在像素深度值大于屏幕空间位置处的最小深度值的情况下,确定像素点在目标光源下的第一阴影强度为第一预设强度;在像素深度值小于或等于屏幕空间位置处的最小深度值的情况下,确定像素点在目标光源下的第一阴影强度为第二预设强度。
在一些实施例中,阴影渲染模块906,还用于确定像素点的第一颜色值;第一颜色值是指在无阴影情况下像素点的颜色值;基于第二阴影强度和第一颜色值确定像素点的第二颜色值;利用像素点的第二颜色值渲染得到目标观察视角下虚拟场景的阴影渲染结果。
上述阴影渲染装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储阴影渲染方法中涉及到的数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种阴影渲染方法。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种阴影渲染方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10和图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一些实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述阴影渲染方法中的步骤。
在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述阴影渲染方法中的步骤。
在一些实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述阴影渲染方法中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(MagnetoresistiveRandom Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(PhaseChange Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(StaticRandom Access Memory,SRAM)或动态随机存取存储器(Dynamic Random AccessMemory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (24)
1.一种阴影渲染方法,其特征在于,所述方法包括:
在以目标观察视角观察虚拟场景的情况下,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离;所述阴影空间距离,是指所述像素点的世界空间位置与位于所述目标光源位置处的阴影相机在阴影相机空间中的距离;所述阴影相机位于所述目标光源位置处,且从所述目标光源的照射方向观察所述虚拟场景;
基于所述像素点在目标光源下对应的阴影空间距离,确定所述像素点对应的深度相关值;所述深度相关值与所述阴影空间距离成线性关系、且所述深度相关值与像素深度值相关,所述像素深度值,是指所述像素点的世界空间位置在阴影相机空间下的深度值;
基于所述目标光源的线性变换参数对所述像素点的深度相关值进行线性变换,得到所述像素点对应的阴影衰减因子;所述线性变换参数是根据针对所述目标光源设置的预设衰减参数确定的;
基于所述像素点对应的阴影衰减因子对所述像素点进行阴影渲染,得到所述目标观察视角下所述虚拟场景的阴影渲染结果。
2.根据权利要求1所述的方法,其特征在于,所述预设衰减参数包括衰减起始距离、衰减长度或衰减终止距离中的至少两个,所述衰减长度是所述衰减起始距离与所述衰减终止距离的差值,所述线性变换参数满足以下约束条件:
在所述阴影空间距离与所述衰减起始距离一致的情况下,利用所述线性变换参数对所述像素点的深度相关值进行线性变换的结果为第一预设值;所述衰减起始距离是指在所述阴影相机空间中阴影衰减的起始位置到所述阴影相机的距离;
在所述阴影空间距离与所述衰减终止距离一致的情况下,利用所述线性变换参数对所述像素点的深度相关值进行线性变换的结果为第二预设值;所述衰减终止距离是指在所述阴影相机空间中阴影衰减的结束位置到所述阴影相机的距离;所述第一预设值小于所述第二预设值。
3.根据权利要求1所述的方法,其特征在于,所述基于所述像素点在目标光源下对应的阴影空间距离,确定所述像素点对应的深度相关值包括:
在所述阴影相机为正交投影相机的情况下,基于所述像素点在目标光源下对应的阴影空间距离确定所述像素深度值;
将所述像素深度值确定为所述像素点对应的深度相关值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述阴影相机为透视投影相机的情况下,基于所述像素点在目标光源下对应的阴影空间距离,确定所述像素点对应的深度相关值;
其中,所述像素深度值,为所述像素点对应的深度相关值与所述阴影空间位置的比值。
5.根据权利要求1所述的方法,其特征在于,所述基于所述目标光源的线性变换参数对所述像素点的深度相关值进行线性变换,得到所述像素点对应的阴影衰减因子包括:
基于所述目标光源的线性变换参数对所述像素点的深度相关值进行线性变换,得到线性变换值;
基于所述线性变换值和衰减因子阈值确定所述像素点对应的阴影衰减因子。
6.根据权利要求1所述的方法,其特征在于,所述确定屏幕空间中的像素点在目标光源下对应的阴影空间距离包括:
将所述像素点的世界空间位置转换到所述阴影相机空间中,得到所述世界空间位置的阴影空间位置;
确定在所述阴影相机的观察方向上,所述世界空间位置的阴影空间位置与所述阴影相机的阴影空间位置之间的距离,得到所述像素点在目标光源下对应的阴影空间距离。
7.根据权利要求1至6任意一项所述的方法,其特征在于,所述基于所述像素点对应的阴影衰减因子对所述像素点进行阴影渲染,得到所述目标观察视角下所述虚拟场景的阴影渲染结果包括:
确定所述像素点在所述目标光源下的第一阴影强度;所述第一阴影强度为第一预设强度或第二预设强度中的一种;所述第一预设强度,表征所述目标光源射向所述像素点的世界空间位置的光线被遮挡,所述第二预设强度,表征所述目标光源射向所述像素点的世界空间位置的光线未被遮挡;
利用所述阴影衰减因子对所述像素点的第一阴影强度进行衰减处理,得到所述像素点在所述目标光源下的第二阴影强度;
基于所述第二阴影强度对所述像素点进行阴影渲染,得到所述目标观察视角下所述虚拟场景的阴影渲染结果。
8.根据权利要求7所述的方法,其特征在于,所述确定所述像素点在所述目标光源下的第一阴影强度包括:
将所述像素点的世界空间位置转换到所述阴影相机的阴影相机空间中,得到所述世界空间位置对应的阴影空间位置;
将所述世界空间位置对应的阴影空间位置转换到屏幕空间,得到所述世界空间位置对应的屏幕空间位置;
基于像素深度值和所述屏幕空间位置处的最小深度值,确定所述像素点在所述目标光源下的第一阴影强度;所述像素深度值,是指所述像素点的世界空间位置在阴影相机空间下的深度值。
9.根据权利要求8所述的方法,其特征在于,得到所述屏幕空间位置处的最小深度值的步骤包括:
确定目标光源的阴影贴图;所述阴影贴图包括将阴影相机观察到的场景区域投影到屏幕空间后,屏幕空间中各屏幕空间位置处的最小深度值;
从所述阴影贴图中获取所述世界空间位置对应的屏幕空间位置处的最小深度值。
10.根据权利要求8所述的方法,其特征在于,所述基于像素深度值和所述屏幕空间位置处的最小深度值,确定所述像素点在所述目标光源下的第一阴影强度包括:
在所述像素深度值大于所述屏幕空间位置处的最小深度值的情况下,确定所述像素点在所述目标光源下的第一阴影强度为所述第一预设强度;
在所述像素深度值小于或等于所述屏幕空间位置处的最小深度值的情况下,确定所述像素点在所述目标光源下的第一阴影强度为所述第二预设强度。
11.根据权利要求7所述的方法,其特征在于,所述基于所述第二阴影强度对所述像素点进行阴影渲染,得到所述目标观察视角下所述虚拟场景的阴影渲染结果包括:
确定所述像素点的第一颜色值;所述第一颜色值是指在无阴影情况下所述像素点的颜色值;
基于所述第二阴影强度和所述第一颜色值确定所述像素点的第二颜色值;
利用所述像素点的第二颜色值渲染得到所述目标观察视角下所述虚拟场景的阴影渲染结果。
12.一种阴影渲染装置,其特征在于,所述装置包括:
距离确定模块,用于在以目标观察视角观察虚拟场景的情况下,确定屏幕空间中的像素点在目标光源下对应的阴影空间距离;所述阴影空间距离,是指所述像素点的世界空间位置与位于所述目标光源位置处的阴影相机在阴影相机空间中的距离;所述阴影相机位于所述目标光源位置处,且从所述目标光源的照射方向观察所述虚拟场景;
因子确定模块,用于基于所述像素点在目标光源下对应的阴影空间距离,确定所述像素点对应的深度相关值;所述深度相关值与所述阴影空间距离成线性关系、且所述深度相关值与像素深度值相关,所述像素深度值,是指所述像素点的世界空间位置在阴影相机空间下的深度值;基于所述目标光源的线性变换参数对所述像素点的深度相关值进行线性变换,得到所述像素点对应的阴影衰减因子;所述线性变换参数是根据针对所述目标光源设置的预设衰减参数确定的;
阴影渲染模块,用于基于所述像素点对应的阴影衰减因子对所述像素点进行阴影渲染,得到所述目标观察视角下所述虚拟场景的阴影渲染结果。
13.根据权利要求12所述的装置,其特征在于,所述预设衰减参数包括衰减起始距离、衰减长度或衰减终止距离中的至少两个,所述衰减长度是所述衰减起始距离与所述衰减终止距离的差值,所述线性变换参数满足以下约束条件:
在所述阴影空间距离与所述衰减起始距离一致的情况下,利用所述线性变换参数对所述像素点的深度相关值进行线性变换的结果为第一预设值;所述衰减起始距离是指在所述阴影相机空间中阴影衰减的起始位置到所述阴影相机的距离;
在所述阴影空间距离与所述衰减终止距离一致的情况下,利用所述线性变换参数对所述像素点的深度相关值进行线性变换的结果为第二预设值;所述衰减终止距离是指在所述阴影相机空间中阴影衰减的结束位置到所述阴影相机的距离;所述第一预设值小于所述第二预设值。
14.根据权利要求12所述的装置,其特征在于,所述因子确定模块,还用于:
在所述阴影相机为正交投影相机的情况下,基于所述像素点在目标光源下对应的阴影空间距离确定所述像素深度值;
将所述像素深度值确定为所述像素点对应的深度相关值。
15.根据权利要求14所述的装置,其特征在于,所述装置还用于:
在所述阴影相机为透视投影相机的情况下,基于所述像素点在目标光源下对应的阴影空间距离,确定所述像素点对应的深度相关值;
其中,所述像素深度值,为所述像素点对应的深度相关值与所述阴影空间位置的比值。
16.根据权利要求12所述的装置,其特征在于,所述因子确定模块,还用于:
基于所述目标光源的线性变换参数对所述像素点的深度相关值进行线性变换,得到线性变换值;
基于所述线性变换值和衰减因子阈值确定所述像素点对应的阴影衰减因子。
17.根据权利要求12所述的装置,其特征在于,所述距离确定模块,还用于:
将所述像素点的世界空间位置转换到所述阴影相机空间中,得到所述世界空间位置的阴影空间位置;
确定在所述阴影相机的观察方向上,所述世界空间位置的阴影空间位置与所述阴影相机的阴影空间位置之间的距离,得到所述像素点在目标光源下对应的阴影空间距离。
18.根据权利要求12至17任意一项所述的装置,其特征在于,所述阴影渲染模块,还用于:
确定所述像素点在所述目标光源下的第一阴影强度;所述第一阴影强度为第一预设强度或第二预设强度中的一种;所述第一预设强度,表征所述目标光源射向所述像素点的世界空间位置的光线被遮挡,所述第二预设强度,表征所述目标光源射向所述像素点的世界空间位置的光线未被遮挡;
利用所述阴影衰减因子对所述像素点的第一阴影强度进行衰减处理,得到所述像素点在所述目标光源下的第二阴影强度;
基于所述第二阴影强度对所述像素点进行阴影渲染,得到所述目标观察视角下所述虚拟场景的阴影渲染结果。
19.根据权利要求18所述的装置,其特征在于,所述阴影渲染模块,还用于:
将所述像素点的世界空间位置转换到所述阴影相机的阴影相机空间中,得到所述世界空间位置对应的阴影空间位置;
将所述世界空间位置对应的阴影空间位置转换到屏幕空间,得到所述世界空间位置对应的屏幕空间位置;
基于像素深度值和所述屏幕空间位置处的最小深度值,确定所述像素点在所述目标光源下的第一阴影强度;所述像素深度值,是指所述像素点的世界空间位置在阴影相机空间下的深度值。
20.根据权利要求19所述的装置,其特征在于,所述装置还用于:
确定目标光源的阴影贴图;所述阴影贴图包括将阴影相机观察到的场景区域投影到屏幕空间后,屏幕空间中各屏幕空间位置处的最小深度值;
从所述阴影贴图中获取所述世界空间位置对应的屏幕空间位置处的最小深度值。
21.根据权利要求19所述的装置,其特征在于,所述阴影渲染模块,还用于:
在所述像素深度值大于所述屏幕空间位置处的最小深度值的情况下,确定所述像素点在所述目标光源下的第一阴影强度为所述第一预设强度;
在所述像素深度值小于或等于所述屏幕空间位置处的最小深度值的情况下,确定所述像素点在所述目标光源下的第一阴影强度为所述第二预设强度。
22.根据权利要求18所述的装置,其特征在于,所述阴影渲染模块,还用于:
确定所述像素点的第一颜色值;所述第一颜色值是指在无阴影情况下所述像素点的颜色值;
基于所述第二阴影强度和所述第一颜色值确定所述像素点的第二颜色值;
利用所述像素点的第二颜色值渲染得到所述目标观察视角下所述虚拟场景的阴影渲染结果。
23.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310288426.0A CN116012520B (zh) | 2023-03-23 | 2023-03-23 | 阴影渲染方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310288426.0A CN116012520B (zh) | 2023-03-23 | 2023-03-23 | 阴影渲染方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116012520A CN116012520A (zh) | 2023-04-25 |
CN116012520B true CN116012520B (zh) | 2023-06-02 |
Family
ID=86037646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310288426.0A Active CN116012520B (zh) | 2023-03-23 | 2023-03-23 | 阴影渲染方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116012520B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116524061B (zh) * | 2023-07-03 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法和相关装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112419472A (zh) * | 2019-08-23 | 2021-02-26 | 南京理工大学 | 一种基于虚拟阴影图的增强现实实时阴影生成方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6664962B1 (en) * | 2000-08-23 | 2003-12-16 | Nintendo Co., Ltd. | Shadow mapping in a low cost graphics system |
CN1278282C (zh) * | 2003-12-04 | 2006-10-04 | 北京金山数字娱乐科技有限公司 | 场景动态光影实现方法 |
JP6393153B2 (ja) * | 2014-10-31 | 2018-09-19 | 株式会社スクウェア・エニックス | プログラム、記録媒体、輝度演算装置及び輝度演算方法 |
CN113362253B (zh) * | 2021-06-30 | 2023-10-13 | 成都纵横自动化技术股份有限公司 | 一种图像阴影校正方法、系统及其装置 |
CN114119854A (zh) * | 2021-11-29 | 2022-03-01 | 北京字跳网络技术有限公司 | 阴影渲染方法、游戏文件打包方法及相应装置 |
CN115049772A (zh) * | 2022-06-30 | 2022-09-13 | 北京字跳网络技术有限公司 | 三维模型的阴影渲染方法、装置、计算机设备及存储介质 |
-
2023
- 2023-03-23 CN CN202310288426.0A patent/CN116012520B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112419472A (zh) * | 2019-08-23 | 2021-02-26 | 南京理工大学 | 一种基于虚拟阴影图的增强现实实时阴影生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116012520A (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114419240B (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
US8803880B2 (en) | Image-based lighting simulation for objects | |
Kronander et al. | Efficient visibility encoding for dynamic illumination in direct volume rendering | |
CN109840949A (zh) | 基于光学定位的增强现实图像处理方法和装置 | |
CN115830208B (zh) | 全局光照渲染方法、装置、计算机设备和存储介质 | |
CN112184873B (zh) | 分形图形创建方法、装置、电子设备和存储介质 | |
KR102573787B1 (ko) | 광 프로브 생성 방법 및 장치, 저장 매체 및 컴퓨터 디바이스 | |
Calian et al. | The shading probe: Fast appearance acquisition for mobile ar | |
CN116012520B (zh) | 阴影渲染方法、装置、计算机设备和存储介质 | |
CN114119853B (zh) | 图像渲染方法、装置、设备和介质 | |
CN110930497B (zh) | 一种全局光照相交加速方法、装置及计算机存储介质 | |
CN112734896B (zh) | 环境遮蔽渲染方法、装置、存储介质及电子设备 | |
CN115984449A (zh) | 一种光照渲染方法、装置、电子设备及存储介质 | |
CN116109765A (zh) | 标注对象的三维渲染方法、装置、计算机设备、存储介质 | |
CN115984440B (zh) | 对象渲染方法、装置、计算机设备和存储介质 | |
US10754498B2 (en) | Hybrid image rendering system | |
US9615009B1 (en) | Dynamically adjusting a light source within a real world scene via a light map visualization manipulation | |
CN112669427B (zh) | 距离采样方法、装置、设备和存储介质 | |
CN115761105A (zh) | 光照渲染方法、装置、电子设备及存储介质 | |
CN115359172A (zh) | 渲染方法及相关装置 | |
CN114820980A (zh) | 三维重建方法、装置、电子设备和可读存储介质 | |
CN110853143B (zh) | 场景实现方法、装置、计算机设备和存储介质 | |
KR20230013099A (ko) | 실시간 깊이 맵을 사용한 지오메트리 인식 증강 현실 효과 | |
CN117557711B (zh) | 可视域的确定方法、装置、计算机设备、存储介质 | |
CN117611781B (zh) | 一种实景三维模型的压平方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |