CN111968216B - 一种体积云阴影渲染方法、装置、电子设备及存储介质 - Google Patents
一种体积云阴影渲染方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111968216B CN111968216B CN202010747146.8A CN202010747146A CN111968216B CN 111968216 B CN111968216 B CN 111968216B CN 202010747146 A CN202010747146 A CN 202010747146A CN 111968216 B CN111968216 B CN 111968216B
- Authority
- CN
- China
- Prior art keywords
- shadow
- cloud
- map
- light source
- pixel
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 95
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000004364 calculation method Methods 0.000 claims description 34
- 238000005286 illumination Methods 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 6
- 102100038720 Histone deacetylase 9 Human genes 0.000 abstract description 14
- 101100338512 Homo sapiens HDAC9 gene Proteins 0.000 abstract description 14
- 230000000694 effects Effects 0.000 abstract description 10
- 230000000007 visual effect Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 8
- 238000004088 simulation Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- 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/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/529—Depth or shape recovery from texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本申请涉及一种体积云阴影渲染方法、装置、电子设备及存储介质,该方法包括:创建高清晰渲染管线;在所述高清晰渲染管线中添加体积云模型,其中,所述体积云模型用于表示虚拟场景中的云层;在屏幕空间计算所述体积云模型对应的云层阴影贴图;在所述高清晰渲染管线中将体积云模型和所述云层阴影贴图渲染到渲染目标,使得将所述云层及所述云层对应的阴影显示到屏幕。该技术方案在HDRP中实现对体积云的渲染,使得在场景中生成高级视觉保真度的体积云效果,并且通过对体积云阴影的渲染,丰富了云层的立体感和层次感,进一步提高了体积云的逼真度以及场景的真实度。
Description
技术领域
本申请涉及图像渲染技术领域,尤其涉及一种体积云阴影渲染方法、装置、电子设备及存储介质。
背景技术
随着计算机图形学的发展,越来越多的游戏中来模拟真实的自然世界,需要运用计算机图形学的各种复杂的算法来实现这种需求,如:蓝天白云、河流山脉、阳光等等。作为游戏引擎中一个非常重要功能的光影效果,阴影在虚拟的游戏有着至关重要的作用,加入了此效果,图像的立体感和层次将更加的丰富,同时也提高了场景的真实感受度。
在进行体积云模拟过程中,增加对体积云产生阴影的模拟,能够进一步提高体积云的逼真度。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种体积云阴影渲染方法、装置、电子设备及存储介质。
根据本申请实施例的一个方面,提供了一种体积云阴影渲染方法,包括:
创建高清晰渲染管线;
在所述高清晰渲染管线中添加体积云模型,其中,所述体积云模型用于表示虚拟场景中的云层;
在屏幕空间计算所述体积云模型对应的云层阴影贴图;
在所述高清晰渲染管线中将体积云模型和所述云层阴影贴图渲染到渲染目标,使得将所述云层及所述云层对应的阴影显示到屏幕。
可选的,所述在屏幕空间计算所述体积云模型对应的云层阴影贴图,包括:
获取所述屏幕空间中太阳光源对应的太阳阴影贴图;
根据所述太阳阴影贴图计算所述屏幕空间中所有像素对应的屏幕空间阴影遮罩图;
获取所述体积云模型在太阳光源方向上投射的阴影强度;
根据所述阴影强度调整所述屏幕空间阴影遮罩图中所述像素的像素值,得到所述体积云模型对应的云层阴影遮罩图;
根据所述云层阴影遮罩图确定所述云层阴影贴图。
可选的,所述根据所述云层阴影遮罩图确定所述云层阴影贴图,包括:
根据所述云层阴影遮罩图确定所述云层阴影的顶点;
获取所述顶点对应的屏幕坐标及第一像素值;
根据所述屏幕坐标进行随机计算,得到随机数;
将所述随机数归一化到第一预设数值范围,得到归一化随机数;
基于所述归一化随机数对所述第一像素值进行跨色阶百分比闭合滤波计算,得到所述顶点对应第二像素值;
将所述第二像素值映射到第二预设数据范围,得到所述云层阴影贴图。
可选的,所述第一预设数值范围为[-2.5,2.5]。
可选的,所述根据所述云层阴影遮罩图确定所述云层阴影贴图,包括:
从所述屏幕空间中的像素点向所述太阳光源方向步进地发射第一射线,对所述第一射线进行碰撞检测,得到所述像素点与碰撞点的第一距离;
当所述第一距离小于所述像素点与所述太阳光源的第二距离时,获取所述像素点对应的光照信息;
根据所述光照信息对云层阴影遮罩图进行校正,得到所述云层阴影贴图。
可选的,所述获取太阳光源对应的太阳阴影贴图,包括:
获取从相机视角得到的相机深度纹理贴图,及从所述太阳光源方向得到的光源深度纹理贴图;
根据所述相机深度纹理贴图和所述光源深度纹理贴图在所述屏幕空间进行阴影收集计算,得到所述太阳阴影贴图。
可选的,所述根据所述相机深度纹理贴图和所述光源深度纹理贴图在所述屏幕空间进行阴影收集计算,得到所述太阳阴影贴图,包括:
确定所述相机深度纹理贴图中各像素的第一深度值及其对应的世界空间坐标;
将所述像素的世界空间坐标转换为所述光源深度纹理贴图对应的光源空间坐标;
将所述光源空间坐标在所述光源深度纹理贴图中对应的第二深度值与所述第一深度值进行比对;
当根据所述第一深度值与所述第二深度值的比对结果确定所述像素位于阴影内时,根据位于阴影内像素的像素值得到所述太阳阴影贴图。
可选的,所述根据所述相机深度纹理贴图和所述光源深度纹理贴图在所述屏幕空间进行阴影收集计算,得到太阳阴影贴图,包括:
获取至少两个不同的分辨率;
根据所述相机深度纹理贴图和所述光源深度纹理贴图在所述屏幕空间进行阴影收集计算,分别生成不同所述分辨率对应的太阳阴影贴图;
所述根据所述太阳阴影贴图计算所述屏幕空间中所有像素对应的屏幕空间阴影遮罩图,包括:
获取所述像素与相机的距离;
根据所述距离对应的分辨率选择所述像素对应的太阳阴影贴图;
分别根据每个所述像素对应的太阳阴影贴图,计算得到所述屏幕空间阴影遮罩图。
根据本申请实施例的另一个方面,提供了一种体积云阴影渲染装置,包括:
创建模块,用于创建高清晰渲染管线;
添加模块,用于在所述高清晰渲染管线中添加体积云模型,其中,所述体积云模型用于表示虚拟场景中的云层;
计算模块,用于在屏幕空间计算所述体积云模型对应的云层阴影贴图;
渲染模块,用于在所述高清晰渲染管线中将体积云模型和所述云层阴影贴图渲染到渲染目标,使得将所述云层及所述云层对应的阴影显示到屏幕。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
根据本申请实施例的另一个方面,提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行计算机程序时,实现上述方法步骤。
根据本申请实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
在HDRP中实现对体积云的渲染,使得在场景中生成高级视觉保真度的体积云效果,并且通过对体积云阴影的渲染,丰富了云层的立体感和层次感,进一步提高了体积云的逼真度以及场景的真实度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种体积云阴影渲染方法的流程图;
图2为本申请另一实施例提供的一种体积云阴影渲染方法的流程图;
图3为本申请另一实施例提供的一种体积云阴影渲染方法的流程图;
图4为本申请另一实施例提供的一种体积云阴影渲染方法的流程图;
图5为本申请另一实施例提供的一种体积云阴影渲染方法的流程图;
图6为本申请另一实施例提供的一种体积云阴影渲染方法的流程图;
图7为本申请实施例提供的阴影错位的示意图;
图8为本申请另一实施例提供的一种体积云阴影渲染方法的流程图;
图9为本申请另一实施例提供的一种体积云阴影渲染方法的流程图;
图10为本申请实施例提供的一种体积云阴影渲染装置的框图;
图11为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
体积云(Volumetric Clouds),一般称为容积云,在游戏中的体积云就是使用图像引擎来模拟真实云雾半透明、无规则的表现效果。
Unity为了提高引擎的画面表现,推出了提供高级视觉保真度,适用于PC和主机平台的可编程渲染管线——高清晰渲染管线(High Definition Render Pipeline,简称HDRP)。相对于传统的渲染管线,HDRP可以通过C#脚本完全自定义管线的实现方式。目前,HDRP还处于试用阶段,缺乏很多具体渲染效果的实现。本申请中,基于HDRP实现高清晰且效果逼真的体积云阴影的渲染。
下面首先对本发明实施例所提供的一种体积云阴影渲染方法进行介绍。
图1为本申请实施例提供的一种体积云阴影渲染方法的流程图。如图1所示,该方法包括以下步骤:
步骤S11,创建高清晰渲染管线;
步骤S12,在高清晰渲染管线中添加体积云模型,其中,体积云模型用于表示虚拟场景中的云层;
步骤S13,在屏幕空间计算体积云模型对应的云层阴影贴图;
步骤S14,在高清晰渲染管线中将体积云模型和云层阴影贴图渲染到渲染目标,使得将云层及云层对应的阴影显示到屏幕。
本实施例中,在HDRP中实现对体积云的渲染,使得在场景中生成高级视觉保真度的体积云效果,并且通过对体积云阴影的渲染,丰富了云层的立体感和层次感,进一步提高了体积云的逼真度以及场景的真实度。
下面对上述步骤S11至S14进行详细说明。
步骤S11中,Unity创建HDRP工程有两种方式,一是在原有的工程基础上升级为HDRP工程,二是创建新的HDRP工程。本实施例中,两种方式均可采用。
步骤S12中,在HDRP中添加体积云模型的操作具体包括:首先开启体积照明(Volumetric Lighting),然后在Volume框架下添加体积云模型。
可选的,本实施例中的体积云模型,为预先采用云模拟技术模拟得到的模型。云模拟方法包括但不限于以下方法:
(1)基于物理方法的云模拟技术,如粒子系统、气泡建模或体素建模。例如,利用细胞自动机算法模拟体积云的物理变化过程;
(2)基于已有经验模型的云模拟技术,如纹理映射方法或噪音函数方法。例如,利用Perlin噪音函数构建三维体积云模型,增加时间维度后,根据程序运行的帧数控制粒子的生成或消失,从而实现体积云的物理变化。
由于在HDRP中,默认是不开启屏幕空间阴影遮罩(ScreenSpaceShadowMask)功能的,仅在打开接触阴影(Contact Shadow)时,才会计算阴影。因此,在步骤S13中,首先在HDRP中开启Contact Shadow,将Contact Shadow的长度设为大于零的值后,渲染器将通过场景的深度缓存从像素的位置到光源进行光线追踪。举一个典型的例子来说,将接触阴影长度的最大值设为1,此处的1则代表光线遍历整个屏幕。而将接触阴影长度的值设为0.5则意味着光线遍历半个屏幕。在开启Contact Shadow后,在HDRP中可以通过体积云模型的覆盖范围在屏幕空间内计算一个云层阴影贴图,如可以通过自定义计算着色器(ComputeShader)在脚本中生成体积云的阴影遮罩图(Shadow mask),基于Shadow mask得到包括云层阴影对应的像素坐标及像素值的云层阴影贴图。
在步骤S14中,在HDRP中将体积云模型和云层阴影贴图渲染到渲染目标,使得将渲染后的云层及云层对应的阴影显示到屏幕。其中,渲染目标(RenderTarget),是用于渲染像素的显存缓冲区。该步骤中,可以将体积云模型和云层阴影贴图渲染到默认渲染目标,默认渲染目标即后台缓冲区,物理上就是包含下一帧要绘制的信息的一块显存。也可以采用RenderTarget2D类创建一个新渲染目标,在显存中保留一块新区域用于绘制体积云模型和云层阴影贴图。可选的,还可以将图像的各部分内容分别绘制到不同渲染目标内,然后再编译这些图像元素,将它们组合后构成最终的后台缓冲数据。显卡通过读取渲染目标中的数据,使用一个Effect类绘制场景的像素,从而将云层及阴影显示在屏幕上。
下面对上述步骤S13中计算云层阴影贴图的过程进行详细描述,采用屏幕空间阴影(Screen Space Shadow)逻辑生成云层阴影贴图。
图2为本申请另一实施例提供的一种体积云阴影渲染方法的流程图。如图2所示,上述步骤S13包括以下步骤:
步骤S21,获取屏幕空间中太阳光源对应的太阳阴影贴图;
步骤S22,根据太阳阴影贴图计算屏幕空间中所有像素对应的屏幕空间阴影遮罩图;
步骤S23,获取体积云模型在太阳光源方向上投射的阴影强度;
步骤S24,根据阴影强度调整屏幕空间阴影遮罩图中像素的像素值,得到体积云模型对应的云层阴影遮罩图;
步骤S25,根据云层阴影遮罩图确定云层阴影贴图。
本实施例中,由于云层的阴影是通过太阳光投射到地面上的,因此,本实施例的云层阴影是通过太阳光的阴影贴图计算得到。通过太阳阴影贴图提前计算屏幕空间中所有像素的屏幕空间阴影遮罩图,将该屏幕空间阴影遮罩图作为后续计算云层阴影的采样基础。根据云层在太阳光方向上投射的阴影强度(ShadowStrength),对屏幕空间阴影遮罩图中相应的像素值进行调整,其中,ShadowStrength的取值范围为[0,1],当ShadowStrength为0时,表示没有阴影。最终得到的云层阴影遮罩图表现出云层对太阳光的阴影效果。
下面对上述步骤S21中,在Screen Space生成太阳阴影贴图的过程具体如下。
图3为本申请另一实施例提供的一种体积云阴影渲染方法的流程图。如图3所示,上述步骤S21包括以下步骤:
步骤S31,获取从相机视角得到的相机深度纹理贴图,及从太阳光源方向得到的光源深度纹理贴图;
步骤S32,根据相机深度纹理贴图和光源深度纹理贴图在屏幕空间进行阴影收集计算,得到太阳阴影贴图。
在步骤S31中,首先在当前相机处创建深度相机,得到从当前相机处观察到的深度纹理贴图;然后从太阳光源处创建深度相机,得到从该太阳光源处观察得到的深度纹理贴图。在步骤S32中,在屏幕空间做一次阴影收集计算(Shadows Collector),得到太阳阴影贴图,即在太阳光照射下位于阴影中的像素。
图4为本申请另一实施例提供的一种体积云阴影渲染方法的流程图。如图4所示,上述步骤S32阴影收集过程包括以下步骤:
步骤S41,确定相机深度纹理贴图中各像素的第一深度值及其对应的世界空间坐标;
步骤S42,将像素的世界空间坐标转换为光源深度纹理贴图对应的光源空间坐标;
步骤S43,将光源空间坐标在光源深度纹理贴图中对应的第二深度值与第一深度值进行比对;
步骤S44,当根据第一深度值与第二深度值的比对结果确定像素位于阴影内时,根据位于阴影内像素的像素值得到太阳阴影贴图。
在步骤S41至S44中,使用深度信息重建像素在世界空间中的世界坐标,把每个像素的世界空间坐标转换到光源空间中后,确定该像素在光源深度纹理贴图里面相应的深度值,将该像素在相机深度纹理贴图中的深度值与在光源深度纹理贴图中的深度值进行比对,如果该像素在相机深度纹理贴图中的深度值大于在光源深度纹理贴图中的深度值,那么就说明光源无法照到该像素,该像素处在阴影内。这样,最终得到的太阳阴影贴图中包含了屏幕空间中相对于太阳光所有有阴影的区域。
由于体积云场景一般大型场景,对于太阳投射的阴影,容易出现阴影抖动和锯齿边缘的现象,如果在一张阴影贴图(Shadow map)中捕捉所有对象需要Shadow map,则该Shadow map需要具有非常高的分辨率。为了解决该问题,采用层级阴影贴图(CascadedShadow Maps,CSM)方法,根据对象到观察者的距离提供不同分辨率的Shadow map。对于近处的场景使用较高分辨率的阴影贴图,对于远处的场景使用粗糙的较低分辨率的阴影贴图。
图5为本申请另一实施例提供的一种体积云阴影渲染方法的流程图。如图5所示,上述步骤S32包括以下步骤:
步骤S51,获取至少两个不同的分辨率;
步骤S52,根据相机深度纹理贴图和光源深度纹理贴图在屏幕空间进行阴影收集计算,分别生成不同分辨率对应的太阳阴影贴图;
上述步骤S22包括以下步骤:
步骤S53,获取像素与相机的距离;
步骤S54,根据距离对应的分辨率选择像素对应的太阳阴影贴图;
步骤S55,分别根据每个像素对应的太阳阴影贴图,计算得到屏幕空间阴影遮罩图。
本实施例中,根据与相机原点的远近将相机的视锥体分割成若干部分,为每一部分生成不同分辨率的阴影贴图。例如,将相机的视锥体根据原件分割成三个层级:near、middle、far,每一层级对应阴影贴图的分辨率分别为1024×1024,512×512,256×256。这样,需要预先生成3张上述分辨率的太阳阴影贴图,根据屏幕空间中各像素与相机的距离确定该像素所属的层级,如该像素所属层级为near,选择分辨率为1024×1024的太阳阴影贴图来计算其对应的像素值,若该像素所属层级为far,选择分辨率为256×256的太阳阴影贴图来计算其对应的像素值。最终,基于所有像素的最终计算结果得到屏幕空间阴影遮罩图。
在上述实施例中,通过CSM方法,可以有效解决大型场景渲染问题,消除阴影抖动和锯齿边缘现象,提高体积云阴影渲染效果的逼真度。
另外,通过体积云模型的覆盖范围在屏幕空间内计算云层阴影,由于得到的云层阴影贴图大小有限,将其覆盖到地形上较大的空间上时,多个片元可能从深度贴图的同一个值中去采样,导致地形上一块范围才对应云层阴影贴图上的一个像素,阴影边缘处出现明显的锯齿。即便采用百分比闭合滤波(Percentage-Closer Filtering,PCF),也会出现明显的色阶过渡断裂。
为解决阴影锯齿问题,本实施例在PCF处理之前,为云层阴影引入基于顶点屏幕坐标的随机数,随机跨两个以上的色阶对云层阴影进行PCF混合。
图6为本申请另一实施例提供的一种体积云阴影渲染方法的流程图。如图6所示,上述步骤S25包括以下步骤:
步骤S61,根据云层阴影贴图确定云层阴影的顶点;
步骤S62,获取顶点对应的屏幕坐标及第一像素值;
步骤S63,根据屏幕坐标进行随机计算,得到随机数;
步骤S64,将随机数归一化到第一预设数值范围,得到归一化随机数;
步骤S65,基于归一化随机数对第一像素值进行跨色阶百分比闭合滤波计算,得到顶点对应第二像素值;
步骤S66,将第二像素值映射到第二预设数据范围,得到云层阴影。
可选的,第一预设数值范围为[-2.5,2.5]。
具体实现可参考以下代码:
float cloudShadow=tex2D(_CloudCoverage,coverageUV).r
float fRandom=pesudoRandom(i.vertex.xy)*5-2.5;
cloudShadow+=fRandom*1.0/255.f;
cloudShadow=saturate(cloudShadow).
上述代码中,通过对云层阴影贴图进行采样得到云层阴影的顶点的UV坐标,将顶点的UV坐标转换为屏幕坐标vertex.xy;根据vertex.xy计算一个随机数pesudoRandom(i.vertex.xy),并将该随机数归一化到[-2.5,2.5]的范围内,得到fRandom;基于fRandom对cloudShadow的像素值进行跨色阶的PCF计算;将像素值映射到一个预设范围内,如0~1之间,例如,可以采用saturate()函数,如果像素值小于0,则返回值为0。如果像素值大于1,则返回值为1。若像素值在0到1之间,则直接返回该像素值。
通过上述步骤S61至S66,基于顶点屏幕坐标的随机数,随机跨两个以上的色阶对云层阴影进行PCF混合,可以有效地消除云层阴影的锯齿,且消除色阶过渡断裂,对云层阴影的优化提高场景显示的真实度。
上述实施例中通过体积云模型的覆盖范围在屏幕空间内计算云层阴影,还可能会出现阴影错位的问题。如图7所示,模拟云层覆盖范围(coverage)阴影相对于云层实际阴影来说,产生一定偏移。本实施例中,可以通过光线步进(Ray Marching)解决阴影错位问题。图8为本申请另一实施例提供的一种体积云阴影渲染方法的流程图。如图8所示,上述步骤S25包括以下步骤:
步骤S71,从屏幕空间中的像素点向太阳光源方向步进地发射第一射线,对第一射线进行碰撞检测,得到像素点与碰撞点的第一距离;
步骤S72,当第一距离小于像素点与太阳光源的第二距离时,获取像素点对应的光照信息;
步骤S73,根据光照信息对云层阴影遮罩图进行校正,得到云层阴影贴图。
本实施例中,采用Ray Marching的方式,对屏幕上每个像素点对着太阳光源发射射线,如果这个射线中间,没有遇到任何物体,该像素点就可以被太阳光照亮,如果被物体挡住,该像素点就位于该物体的阴影中。由此可见,采用Ray Marching的方式,可以消除图7所示的阴影错位问题,提高体积云阴影渲染的准确性,提高场景显示的逼真度。
图9为本申请另一实施例提供的一种体积云阴影渲染方法的流程图。如图9所示,上述步骤S72中,位于阴影中的像素点对应的光照信息通过以下步骤实现:
步骤S81,从相机位置向屏幕空间中的像素点步进地发射第二射线,对第二射线进行碰撞检测,得到相机位置与碰撞点的第三距离;
步骤S82,根据第三距离计算碰撞点对应的法线方向;
步骤S83,根据法线方向及太阳光源方向计算像素点对应的光照系数;
步骤S84,根据光照系数计算像素点的光照信息。
上述步骤S81至S84中,通过Ray Marching的方式计算屏幕上各像素点的光照信息,从相机位置向屏幕每一个像素点发射一条光线,光线按照一定步长前进,并检测当前光线是否位于物体表面,据此调整光线前进幅度,直到抵达物体表面,再按照一般光线追踪的方法计算光照信息。
其中,上述步骤S83中,光照系数用于该像素点上光照强度的影响值,通过法线方向及太阳光源方向这两个向量之间的夹角得到。当这两个向量之间的夹角为0的时候,亮度为1,夹角越大亮度越小,夹角为90度以上的时候,亮度为0。
上述实施例中,通过Ray Marching的方式对体积云阴影进行快速渲染。由于基于预设步长进行采样使得Ray Marching有一定误差,可以适当降低效率,减少步长,增加循环次数,以提高Ray Marching渲染精度。这样,Ray Marching能够提高体积云阴影的渲染的真实度。
在另一个可选实施例中,该方法还包括:
接收在体积云编辑器中对体积云覆盖贴图的编辑操作;
根据编辑操作调整体积云模型。
本实施例中,体积云编辑器提供GameView窗口,用户在该窗口中可以实时编辑体积云的Coverage贴图,从而不仅可以对体积云的渲染结果进行调整,还可以基于Coverage贴图调整体积云的阴影。
下述为本申请装置实施例,可以用于执行本申请方法实施例。
图10为本申请实施例提供的一种体积云阴影渲染装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图10所示,该体积云阴影渲染装置包括:
创建模块101,用于创建高清晰渲染管线;
添加模块102,用于在高清晰渲染管线中添加体积云模型,其中,体积云模型用于表示虚拟场景中的云层;
计算模块103,用于在屏幕空间计算体积云模型对应的云层阴影贴图;
渲染模块104,用于在高清晰渲染管线中将体积云模型和云层阴影贴图渲染到渲染目标,使得将云层及云层对应的阴影显示到屏幕。
可选的,计算模块103包括:
第一获取子模块1031,用于获取屏幕空间中太阳光源对应的太阳阴影贴图;
第一计算子模块1032,用于根据太阳阴影贴图计算屏幕空间中所有像素对应的屏幕空间阴影遮罩图;
第二获取子模块1033,用于获取体积云模型在太阳光源方向上投射的阴影强度;
调整子模块1034,用于根据阴影强度调整屏幕空间阴影遮罩图中像素的像素值,得到体积云模型对应的云层阴影遮罩图;
第一确定子模块1035,用于根据云层阴影遮罩图确定云层阴影贴图。
可选的,第一确定子模块1035,用于根据云层阴影遮罩图确定云层阴影的顶点;获取顶点对应的屏幕坐标及第一像素值;根据屏幕坐标进行随机计算,得到随机数;将随机数归一化到第一预设数值范围,得到归一化随机数;基于归一化随机数对第一像素值进行跨色阶百分比闭合滤波计算,得到顶点对应第二像素值;将第二像素值映射到第二预设数据范围,得到云层阴影贴图。
可选的,第一预设数值范围为[-2.5,2.5]。
可选的,第一确定子模块1035,用于从屏幕空间中的像素点向太阳光源方向步进地发射第一射线,对第一射线进行碰撞检测,得到像素点与碰撞点的第一距离;当第一距离小于像素点与太阳光源的第二距离时,获取像素点对应的光照信息;根据光照信息对云层阴影遮罩图进行校正,得到云层阴影贴图。
可选的,第一获取子模块1031,用于获取从相机视角得到的相机深度纹理贴图,及从太阳光源方向得到的光源深度纹理贴图;根据相机深度纹理贴图和光源深度纹理贴图在屏幕空间进行阴影收集计算,得到太阳阴影贴图。
可选的,第一获取子模块1031,用于确定相机深度纹理贴图中各像素的第一深度值及其对应的世界空间坐标;将像素的世界空间坐标转换为光源深度纹理贴图对应的光源空间坐标;将光源空间坐标在光源深度纹理贴图中对应的第二深度值与第一深度值进行比对;当根据第一深度值与第二深度值的比对结果确定像素位于阴影内时,根据位于阴影内像素的像素值得到太阳阴影贴图。
可选的,第一获取子模块1031,用于获取至少两个不同的分辨率;根据相机深度纹理贴图和光源深度纹理贴图在屏幕空间进行阴影收集计算,分别生成不同分辨率对应的太阳阴影贴图。第一计算子模块1032,用于获取像素与相机的距离;根据距离对应的分辨率选择像素对应的太阳阴影贴图;分别根据每个像素对应的太阳阴影贴图,计算得到屏幕空间阴影遮罩图。
本申请实施例还提供一种电子设备,如图11所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现以下方法实施例的步骤:
创建高清晰渲染管线;
在高清晰渲染管线中添加体积云模型,其中,体积云模型用于表示虚拟场景中的云层;
在屏幕空间计算体积云模型对应的云层阴影贴图;
在高清晰渲染管线中将体积云模型和云层阴影贴图渲染到渲染目标,使得将云层及云层对应的阴影显示到屏幕。
可选的,在屏幕空间计算体积云模型对应的云层阴影贴图,包括:
获取屏幕空间中太阳光源对应的太阳阴影贴图;
根据太阳阴影贴图计算屏幕空间中所有像素对应的屏幕空间阴影遮罩图;
获取体积云模型在太阳光源方向上投射的阴影强度;
根据阴影强度调整屏幕空间阴影遮罩图中像素的像素值,得到体积云模型对应的云层阴影遮罩图;
根据云层阴影遮罩图确定云层阴影贴图。
可选的,根据云层阴影遮罩图确定云层阴影贴图,包括:
根据云层阴影遮罩图确定云层阴影的顶点;
获取顶点对应的屏幕坐标及第一像素值;
根据屏幕坐标进行随机计算,得到随机数;
将随机数归一化到第一预设数值范围,得到归一化随机数;
基于归一化随机数对第一像素值进行跨色阶百分比闭合滤波计算,得到顶点对应第二像素值;
将第二像素值映射到第二预设数据范围,得到云层阴影贴图。
可选的,第一预设数值范围为[-2.5,2.5]。
可选的,根据云层阴影遮罩图确定云层阴影贴图,包括:
从屏幕空间中的像素点向太阳光源方向步进地发射第一射线,对第一射线进行碰撞检测,得到像素点与碰撞点的第一距离;
当第一距离小于像素点与太阳光源的第二距离时,获取像素点对应的光照信息;
根据光照信息对云层阴影遮罩图进行校正,得到云层阴影贴图。
可选的,获取太阳光源对应的太阳阴影贴图,包括:
获取从相机视角得到的相机深度纹理贴图,及从太阳光源方向得到的光源深度纹理贴图;
根据相机深度纹理贴图和光源深度纹理贴图在屏幕空间进行阴影收集计算,得到太阳阴影贴图。
可选的,根据相机深度纹理贴图和光源深度纹理贴图在屏幕空间进行阴影收集计算,得到太阳阴影贴图,包括:
确定相机深度纹理贴图中各像素的第一深度值及其对应的世界空间坐标;
将像素的世界空间坐标转换为光源深度纹理贴图对应的光源空间坐标;
将光源空间坐标在光源深度纹理贴图中对应的第二深度值与第一深度值进行比对;
当根据第一深度值与第二深度值的比对结果确定像素位于阴影内时,根据位于阴影内像素的像素值得到太阳阴影贴图。
可选的,根据相机深度纹理贴图和光源深度纹理贴图在屏幕空间进行阴影收集计算,得到太阳阴影贴图,包括:
获取至少两个不同的分辨率;
根据相机深度纹理贴图和光源深度纹理贴图在屏幕空间进行阴影收集计算,分别生成不同分辨率对应的太阳阴影贴图;
根据太阳阴影贴图计算屏幕空间中所有像素对应的屏幕空间阴影遮罩图,包括:
获取像素与相机的距离;
根据距离对应的分辨率选择像素对应的太阳阴影贴图;
分别根据每个像素对应的太阳阴影贴图,计算得到屏幕空间阴影遮罩图。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,P C I)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下上述方法实施例的步骤。
需要说明的是,对于上述装置、电子设备及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
进一步需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种体积云阴影渲染方法,其特征在于,包括:
创建高清晰渲染管线;
在所述高清晰渲染管线中添加体积云模型,其中,所述体积云模型用于表示虚拟场景中的云层;
在屏幕空间计算所述体积云模型对应的云层阴影贴图;
在所述高清晰渲染管线中将体积云模型和所述云层阴影贴图渲染到渲染目标,使得将所述云层及所述云层对应的阴影显示到屏幕;
所述在屏幕空间计算所述体积云模型对应的云层阴影贴图,包括:
获取所述屏幕空间中太阳光源对应的太阳阴影贴图;
根据所述太阳阴影贴图计算所述屏幕空间中所有像素对应的屏幕空间阴影遮罩图;
获取所述体积云模型在太阳光源方向上投射的阴影强度;
根据所述阴影强度调整所述屏幕空间阴影遮罩图中所述像素的像素值,得到所述体积云模型对应的云层阴影遮罩图;
根据所述云层阴影遮罩图确定所述云层阴影贴图。
2.根据权利要求1所述的方法,其特征在于,所述根据所述云层阴影遮罩图确定所述云层阴影贴图,包括:
根据所述云层阴影遮罩图确定所述云层阴影的顶点;
获取所述顶点对应的屏幕坐标及第一像素值;
根据所述屏幕坐标进行随机计算,得到随机数;
将所述随机数归一化到第一预设数值范围,得到归一化随机数;
基于所述归一化随机数对所述第一像素值进行跨色阶百分比闭合滤波计算,得到所述顶点对应第二像素值;
将所述第二像素值映射到第二预设数据范围,得到所述云层阴影贴图。
3.根据权利要求2所述的方法,其特征在于,所述第一预设数值范围为[-2.5,2.5]。
4.根据权利要求1所述的方法,其特征在于,所述根据所述云层阴影遮罩图确定所述云层阴影贴图,包括:
从所述屏幕空间中的像素点向所述太阳光源方向步进地发射第一射线,对所述第一射线进行碰撞检测,得到所述像素点与碰撞点的第一距离;
当所述第一距离小于所述像素点与所述太阳光源的第二距离时,获取所述像素点对应的光照信息;
根据所述光照信息对云层阴影遮罩图进行校正,得到所述云层阴影贴图。
5.根据权利要求1所述的方法,其特征在于,获取太阳光源对应的太阳阴影贴图,包括:
获取从相机视角得到的相机深度纹理贴图,及从所述太阳光源方向得到的光源深度纹理贴图;
根据所述相机深度纹理贴图和所述光源深度纹理贴图在所述屏幕空间进行阴影收集计算,得到所述太阳阴影贴图。
6.根据权利要求5所述的方法,其特征在于,所述根据所述相机深度纹理贴图和所述光源深度纹理贴图在所述屏幕空间进行阴影收集计算,得到所述太阳阴影贴图,包括:
确定所述相机深度纹理贴图中各像素的第一深度值及其对应的世界空间坐标;
将所述像素的世界空间坐标转换为所述光源深度纹理贴图对应的光源空间坐标;
将所述光源空间坐标在所述光源深度纹理贴图中对应的第二深度值与所述第一深度值进行比对;
当根据所述第一深度值与所述第二深度值的比对结果确定所述像素位于阴影内时,根据位于阴影内像素的像素值得到所述太阳阴影贴图。
7.根据权利要求5所述的方法,其特征在于,所述根据所述相机深度纹理贴图和所述光源深度纹理贴图在所述屏幕空间进行阴影收集计算,得到太阳阴影贴图,包括:
获取至少两个不同的分辨率;
根据所述相机深度纹理贴图和所述光源深度纹理贴图在所述屏幕空间进行阴影收集计算,分别生成不同所述分辨率对应的太阳阴影贴图;
所述根据所述太阳阴影贴图计算所述屏幕空间中所有像素对应的屏幕空间阴影遮罩图,包括:
获取所述像素与相机的距离;
根据所述距离对应的分辨率选择所述像素对应的太阳阴影贴图;
分别根据每个所述像素对应的太阳阴影贴图,计算得到所述屏幕空间阴影遮罩图。
8.一种体积云阴影渲染装置,其特征在于,包括:
创建模块,用于创建高清晰渲染管线;
添加模块,用于在所述高清晰渲染管线中添加体积云模型,其中,所述体积云模型用于表示虚拟场景中的云层;
计算模块,用于在屏幕空间计算所述体积云模型对应的云层阴影贴图;
渲染模块,用于在所述高清晰渲染管线中将体积云模型和所述云层阴影贴图渲染到渲染目标,使得将所述云层及所述云层对应的阴影显示到屏幕;
所述计算模块,用于获取所述屏幕空间中太阳光源对应的太阳阴影贴图;根据所述太阳阴影贴图计算所述屏幕空间中所有像素对应的屏幕空间阴影遮罩图;获取所述体积云模型在太阳光源方向上投射的阴影强度;根据所述阴影强度调整所述屏幕空间阴影遮罩图中所述像素的像素值,得到所述体积云模型对应的云层阴影遮罩图;根据所述云层阴影遮罩图确定所述云层阴影贴图。
9.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述计算机程序时,实现权利要求1-7任一项所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-7任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010747146.8A CN111968216B (zh) | 2020-07-29 | 2020-07-29 | 一种体积云阴影渲染方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010747146.8A CN111968216B (zh) | 2020-07-29 | 2020-07-29 | 一种体积云阴影渲染方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111968216A CN111968216A (zh) | 2020-11-20 |
CN111968216B true CN111968216B (zh) | 2024-03-22 |
Family
ID=73363597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010747146.8A Active CN111968216B (zh) | 2020-07-29 | 2020-07-29 | 一种体积云阴影渲染方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111968216B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112465941B (zh) * | 2020-12-02 | 2023-04-28 | 成都完美时空网络技术有限公司 | 一种体积云处理方法、装置、电子设备及存储介质 |
CN112200900B (zh) * | 2020-12-02 | 2021-02-26 | 成都完美时空网络技术有限公司 | 一种体积云渲染方法、装置、电子设备及存储介质 |
CN112669432A (zh) * | 2020-12-23 | 2021-04-16 | 北京像素软件科技股份有限公司 | 容积云渲染方法、装置、电子设备及存储介质 |
CN112819940B (zh) * | 2021-01-29 | 2024-02-23 | 网易(杭州)网络有限公司 | 渲染方法、装置和电子设备 |
CN112967366B (zh) * | 2021-03-12 | 2023-07-28 | 北京壳木软件有限责任公司 | 一种体积光渲染方法、装置、电子设备及存储介质 |
CN113012274B (zh) * | 2021-03-24 | 2023-07-28 | 北京壳木软件有限责任公司 | 一种阴影渲染的方法、装置以及电子设备 |
CN113052950B (zh) * | 2021-03-31 | 2021-12-17 | 完美世界(北京)软件科技发展有限公司 | 光照计算方法、装置、计算机设备及计算机可读存储介质 |
CN113470161B (zh) * | 2021-06-30 | 2022-06-07 | 完美世界(北京)软件科技发展有限公司 | 虚拟环境中容积云的光照确定方法、相关设备及存储介质 |
CN113706683B (zh) * | 2021-08-06 | 2023-09-26 | 网易(杭州)网络有限公司 | 虚拟三维模型的阴影处理方法、阴影处理装置及电子装置 |
CN113570697A (zh) * | 2021-09-24 | 2021-10-29 | 深圳易帆互动科技有限公司 | 基于模型预烘焙的阴影渲染方法、装置及可读存储介质 |
CN113936097B (zh) * | 2021-09-30 | 2023-10-20 | 完美世界(北京)软件科技发展有限公司 | 体积云渲染方法、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8723865B1 (en) * | 2010-08-06 | 2014-05-13 | Nvidia Corporation | System and method for rendering a volumetric shadow |
CN104091363A (zh) * | 2014-07-09 | 2014-10-08 | 无锡梵天信息技术股份有限公司 | 一种基于屏幕空间实时的体积云计算方法 |
CN104143205A (zh) * | 2013-05-11 | 2014-11-12 | 哈尔滨点石仿真科技有限公司 | 大规模真实感体积云的实时渲染方法 |
CN105321201A (zh) * | 2015-11-26 | 2016-02-10 | 郭小虎 | 基于云端光照烘焙的移动端3d实时渲染方法及系统 |
CN105447906A (zh) * | 2015-11-12 | 2016-03-30 | 浙江大学 | 基于图像和模型计算光照参数进行重光照渲染的方法 |
CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
CN111145326A (zh) * | 2019-12-26 | 2020-05-12 | 网易(杭州)网络有限公司 | 三维虚拟云模型的处理方法、存储介质、处理器及电子装置 |
CN111260769A (zh) * | 2020-01-09 | 2020-06-09 | 北京中科深智科技有限公司 | 一种基于动态光照变化的实时渲染方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7184890B2 (en) * | 2003-11-24 | 2007-02-27 | The Boeing Company | Cloud shadow detection: VNIR-SWIR |
-
2020
- 2020-07-29 CN CN202010747146.8A patent/CN111968216B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8723865B1 (en) * | 2010-08-06 | 2014-05-13 | Nvidia Corporation | System and method for rendering a volumetric shadow |
CN104143205A (zh) * | 2013-05-11 | 2014-11-12 | 哈尔滨点石仿真科技有限公司 | 大规模真实感体积云的实时渲染方法 |
CN104091363A (zh) * | 2014-07-09 | 2014-10-08 | 无锡梵天信息技术股份有限公司 | 一种基于屏幕空间实时的体积云计算方法 |
CN105447906A (zh) * | 2015-11-12 | 2016-03-30 | 浙江大学 | 基于图像和模型计算光照参数进行重光照渲染的方法 |
CN105321201A (zh) * | 2015-11-26 | 2016-02-10 | 郭小虎 | 基于云端光照烘焙的移动端3d实时渲染方法及系统 |
CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
CN111145326A (zh) * | 2019-12-26 | 2020-05-12 | 网易(杭州)网络有限公司 | 三维虚拟云模型的处理方法、存储介质、处理器及电子装置 |
CN111260769A (zh) * | 2020-01-09 | 2020-06-09 | 北京中科深智科技有限公司 | 一种基于动态光照变化的实时渲染方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111968216A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111968216B (zh) | 一种体积云阴影渲染方法、装置、电子设备及存储介质 | |
CN111968215B (zh) | 一种体积光渲染方法、装置、电子设备及存储介质 | |
US11024077B2 (en) | Global illumination calculation method and apparatus | |
CN110458930B (zh) | 三维地图的渲染方法、装置及存储介质 | |
CN107341853B (zh) | 超大虚拟场景和动态摄屏的虚实融合方法及系统 | |
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
CN108986195B (zh) | 一种结合环境映射和全局光照渲染的单镜头混合现实实现方法 | |
US7583264B2 (en) | Apparatus and program for image generation | |
CN108805971B (zh) | 一种环境光遮蔽方法 | |
US8207968B1 (en) | Method and apparatus for irradiance caching in computing indirect lighting in 3-D computer graphics | |
US20050219249A1 (en) | Integrating particle rendering and three-dimensional geometry rendering | |
CN111968214B (zh) | 一种体积云渲染方法、装置、电子设备及存储介质 | |
CN109448137B (zh) | 交互方法、交互装置、电子设备及存储介质 | |
US11276150B2 (en) | Environment map generation and hole filling | |
CN111047506B (zh) | 环境图生成和孔填充 | |
Widmer et al. | An adaptive acceleration structure for screen-space ray tracing | |
US10825231B2 (en) | Methods of and apparatus for rendering frames for display using ray tracing | |
CN111476877A (zh) | 一种阴影渲染的方法及装置、电子设备、存储介质 | |
WO2008014384A2 (en) | Real-time scenery and animation | |
US10424106B1 (en) | Scalable computer image synthesis | |
JPH08153213A (ja) | 画像合成表示方法 | |
CN115713584A (zh) | 基于有向距离场渲染体积云方法、系统、设备及存储介质 | |
CN112465941B (zh) | 一种体积云处理方法、装置、电子设备及存储介质 | |
CN112085855B (zh) | 交互式图像编辑方法、装置、存储介质及计算机设备 | |
CN118037920A (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 |