System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Tile-Based分块算法的局部Blit级联阴影映射方法技术_技高网

一种基于Tile-Based分块算法的局部Blit级联阴影映射方法技术

技术编号:40802977 阅读:4 留言:0更新日期:2024-03-28 19:28
本发明专利技术公开了一种基于Tile‑Based分块算法的局部Blit级联阴影映射方法,包括:标记场景中的静态物体和动态物体,按照不同策略切分相机视锥;按照不同的更新频率得到静态物体和动态物体的级联阴影贴图;将动态物体的级联阴影贴图进行瓦片化处理;将符合像素要求的瓦片通过局部Blit操作将动态物体阴影与静态物体阴影合并;得到标准设备坐标系顶点坐标,并复原世界空间坐标;将顶点变换到光源空间,比较顶点与阴影贴图的深度确定是否为阴影以及阴影的层级。本发明专利技术分离了静态物体和动态物体的实时阴影绘制和更新,经过Tile‑Based分块算法划分阴影贴图,通过局部Blit匹配的瓦片,快速合并静态物体和动态物体阴影贴图,提高了级联阴影的绘制速度和动态物体阴影的精度。

【技术实现步骤摘要】

本专利技术属于计算机图形学实时渲染领域,涉及级联阴影映射技术,具体涉及一种基于tile-based分块算法的局部blit级联阴影映射方法。


技术介绍

1、阴影映射就是以光源视角绘制场景阴影贴图,再以相机视角绘制场景变换到光源空间与阴影贴图比较深度的过程。阴影映射的目的是在三维场景中模拟光源对物体产生的阴影效果。由于实时光栅化渲染管线并不符合现实世界的物理规则,因此想要实现照片级真实感渲染很大的困难。阴影映射是一种实现简单的实时阴影实现方法,是目前主流的实时渲染阴影技术路线。

2、级联阴影映射是对阴影映射的改进,通过将相机视锥体进行切分为多个级别,生成多张阴影贴图,每个级别使用不同分辨率的阴影贴图,以提高远处物体的阴影精度。因此主要用于太阳光对开阔场景的阴影效果。级联阴影通过每帧更新变换矩阵和级联阴影贴图,可以达到最佳的渲染效果。通常移动端设备上需要对级联阴影映射进行加速,对于距离相机较远的视锥可以通过分帧更新的手段降低性能开销。但分帧更新可能会导致动态物体阴影出现瑕疵。移动端实时阴影的绘制需要考虑硬件的限制。每帧更新全场景的阴影贴图会为移动端gpu带来可观的渲染压力。


技术实现思路

1、专利技术目的:为了克服现有技术中存在的不足,提供一种基于tile-based分块算法的局部blit级联阴影映射方法,通过本专利技术方法,分离了静态物体和动态物体的实时阴影绘制和更新,经过tile-based分块算法划分阴影贴图,通过局部blit匹配的瓦片,快速合并静态物体和动态物体阴影贴图,提高了级联阴影的绘制速度和动态物体阴影的精度。

2、技术方案:为实现上述目的,本专利技术提供一种基于tile-based分块算法的局部blit级联阴影映射方法,包括如下步骤:

3、s1:标记场景中的静态物体和动态物体,按照不同策略切分相机视锥;

4、s2:从光源位置和方向渲染场景,按照不同的更新频率得到静态物体和动态物体的级联阴影贴图;

5、s3:将动态物体的级联阴影贴图进行瓦片化处理;

6、s4:遍历所有瓦片,将符合像素要求的瓦片通过局部blit操作将动态物体阴影与静态物体阴影合并;

7、s5:从延迟渲染的几何缓冲区中得到标准设备坐标系顶点坐标,并复原世界空间坐标;

8、s6:从相机位置和方向渲染场景,将顶点变换到光源空间,比较顶点与阴影贴图的深度确定是否为阴影以及阴影的层级。

9、进一步地,所述步骤s1中切分相机视锥的策略为:静态物体划分多个视锥体层级,动态物体直接采用静态物体划分好的第0层或更多层的视锥层级。

10、进一步地,所述步骤s2中从光源位置和方向渲染场景的方式为:从光源位置和方向,以正交投影的方式渲染场景,经过透视除法后得到标准设备坐标系下的顶点坐标,具体表示为:

11、

12、其中,r、l、t、b分别表示视口的最右、最左、最上、最下坐标值,f、n分别表示视锥的远平面坐标值和近平面坐标值。

13、进一步地,所述步骤s2中按照不同的更新频率得到静态物体和动态物体的级联阴影贴图的方式为:对于静态物体,视锥远处部分应多帧更新一次,距离相机较近的静态物体和动态物体应每帧更新,将得到的静态物体和动态物体的阴影贴图合并到一张阴影贴图上,使用时根据阴影层级计算偏移后的纹理坐标,具体表示如下:

14、

15、其中,u、v分别表示根据屏幕空间坐标转换的纹理坐标,u′、v′分别表示映射到阴影贴图上的纹理左边,m、n分别表示级联阴影在一张图上划分的行列数,i、j分别表示纹理坐标应在横纵坐标上的偏移量。

16、进一步地,所述步骤s3中瓦片化处理的方式为:按照一定策略将阴影贴图划分为若干个瓦片。

17、进一步地,所述步骤s4中遍历所有瓦片,瓦片中有任意像素为阴影像素则整个瓦片通过局部blit操作将动态物体阴影与静态物体阴影合并。

18、进一步地,所述步骤s4中动态物体阴影与静态物体阴影合并的方式为:根据主流图形应用接口的标准设备坐标系规范的不同,取最小深度最大深度为合并结果,具体操作如下:

19、p(u,v)=min(ps(u,v).z,pd(u,v).z) (3)

20、其中p、ps、pd分别表示为对应纹理坐标下片元着色器写入的像素、动态物体阴影贴图的像素和静态物体阴影贴图的像素,其中z表示为采样纹理的深度值。

21、进一步地,所述步骤s5具体为:从延迟渲染的几何缓冲区中读取深度缓冲,将深度转换为线性深度,根据屏幕空间坐标得到标准设备坐标系顶点坐标复原出世界空间坐标,具体操作如下:

22、

23、其中z′、分别是采样深度缓冲的深度值、观察矩阵和投影矩阵的逆矩阵,pndc、pw分别是标准设备坐标系顶点坐标和世界空间坐标。

24、进一步地,所述步骤s6具体为:从相机位置和方向渲染场景,将世界空间坐标系顶点变换到光源空间,转换到屏幕空间得到采样阴影贴图的纹理坐标,具体操作如下:

25、

26、其中pndc′、mvp′分别是光源空间下的标准设备坐标系坐标、光源空间观察变换和投影变换矩阵,其中uv采样阴影贴图的纹理坐标,通过比较顶点在标准设备坐标系下的深度与采样阴影贴图的深度,确定是否为阴影以及阴影的层级。

27、本专利技术方法基于tile-base分块算法,然后将通过静态物体和动态物体阴影贴图分开计算阴影贴图,然后减少静态物体阴影的更新频率,降低开销,但动态物体的阴影比较敏感,需要实时更新,所以实时合并静态物体第一层的阴影贴图和动态物体的阴影贴图,从而提高级联阴影映射的性能。

28、有益效果:本专利技术与现有技术相比,提供了一种以分帧更新、动静态物体阴影分离绘制为基本思想的加速方法,本专利技术在级联阴影的生成中将动态物体和静态物体区分开来,即分别对两种物体绘制阴影贴图,通过降低远处静态物体的绘制和更新频率来提升渲染性能;利用动态物体的稀疏性,将动态物体的阴影像素以瓦片为单位,将有阴影像素的瓦片通过局部blit与静态物体阴影合并,提高了实时阴影的绘制速度。本专利技术简单高效地提升了现有分帧更新级联阴影映射算法的绘制速度和渲染精度。

本文档来自技高网...

【技术保护点】

1.一种基于Tile-Based分块算法的局部Blit级联阴影映射方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种基于Tile-Based分块算法的局部Blit级联阴影映射方法,其特征在于,所述步骤S1中切分相机视锥的策略为:静态物体划分多个视锥体层级,动态物体直接采用静态物体划分好的第0层或更多层的视锥层级。

3.根据权利要求1所述的一种基于Tile-Based分块算法的局部Blit级联阴影映射方法,其特征在于,所述步骤S2中从光源位置和方向渲染场景的方式为:从光源位置和方向,以正交投影的方式渲染场景,经过透视除法后得到标准设备坐标系下的顶点坐标,具体表示为:

4.根据权利要求3所述的一种基于Tile-Based分块算法的局部Blit级联阴影映射方法,其特征在于,所述步骤S2中按照不同的更新频率得到静态物体和动态物体的级联阴影贴图的方式为:对于静态物体,视锥远处部分应多帧更新一次,距离相机较近的静态物体和动态物体应每帧更新,将得到的静态物体和动态物体的阴影贴图合并到一张阴影贴图上,使用时根据阴影层级计算偏移后的纹理坐标,具体表示如下:

5.根据权利要求1所述的一种基于Tile-Based分块算法的局部Blit级联阴影映射方法,其特征在于,所述步骤S3中瓦片化处理的方式为:将阴影贴图划分为若干个瓦片。

6.根据权利要求1所述的一种基于Tile-Based分块算法的局部Blit级联阴影映射方法,其特征在于,所述步骤S4中遍历所有瓦片,瓦片中有任意像素为阴影像素则整个瓦片通过局部Blit操作将动态物体阴影与静态物体阴影合并。

7.根据权利要求6所述的一种基于Tile-Based分块算法的局部Blit级联阴影映射方法,其特征在于,所述步骤S4中动态物体阴影与静态物体阴影合并的方式为:根据主流图形应用接口的标准设备坐标系规范的不同,取最小深度最大深度为合并结果,具体操作如下:

8.根据权利要求1所述的一种基于Tile-Based分块算法的局部Blit级联阴影映射方法,其特征在于,所述步骤S5具体为:从延迟渲染的几何缓冲区中读取深度缓冲,将深度转换为线性深度,根据屏幕空间坐标得到标准设备坐标系顶点坐标复原出世界空间坐标,具体操作如下:

9.根据权利要求1所述的一种基于Tile-Based分块算法的局部Blit级联阴影映射方法,其特征在于,所述步骤S6具体为:从相机位置和方向渲染场景,将世界空间坐标系顶点变换到光源空间,转换到屏幕空间得到采样阴影贴图的纹理坐标,具体操作如下:

...

【技术特征摘要】

1.一种基于tile-based分块算法的局部blit级联阴影映射方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种基于tile-based分块算法的局部blit级联阴影映射方法,其特征在于,所述步骤s1中切分相机视锥的策略为:静态物体划分多个视锥体层级,动态物体直接采用静态物体划分好的第0层或更多层的视锥层级。

3.根据权利要求1所述的一种基于tile-based分块算法的局部blit级联阴影映射方法,其特征在于,所述步骤s2中从光源位置和方向渲染场景的方式为:从光源位置和方向,以正交投影的方式渲染场景,经过透视除法后得到标准设备坐标系下的顶点坐标,具体表示为:

4.根据权利要求3所述的一种基于tile-based分块算法的局部blit级联阴影映射方法,其特征在于,所述步骤s2中按照不同的更新频率得到静态物体和动态物体的级联阴影贴图的方式为:对于静态物体,视锥远处部分应多帧更新一次,距离相机较近的静态物体和动态物体应每帧更新,将得到的静态物体和动态物体的阴影贴图合并到一张阴影贴图上,使用时根据阴影层级计算偏移后的纹理坐标,具体表示如下:

5.根据权利要求1所述的一种基于tile-based分块算法的局部blit级联阴影映射方法,...

【专利技术属性】
技术研发人员:王卫东田志浩
申请(专利权)人:江苏科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1