一种改进的屏幕空间环境光遮蔽(SSAO)算法

2017-04-22 10:11杨志成
现代计算机 2017年8期
关键词:纹理阴影滤波

杨志成

(四川大学计算机学院,成都 262500)

一种改进的屏幕空间环境光遮蔽(SSAO)算法

杨志成

(四川大学计算机学院,成都 262500)

在计算机图形学中全局光照的效果直接影响画面的真实性,使用传统的光线跟踪技术计算复杂,难以实时。所以在游戏等实时应用中一般选用环境光遮蔽(AO)技术模拟全局光照效果。屏幕空间环境光遮蔽(SSAO)是实际应用较多的一种AO算法,该算法可以在实时运行的条件下较为逼真的模拟全局光照的渲染效果。针对目前SSAO算法在采样点选择、纹理采样和平滑滤波3个方面的缺陷,提出相应的改进方法,改善原有算法的性能和渲染效果,使其更适用于三维游戏中的实时游戏场景渲染。

全局光照;环境光遮蔽;屏幕空间;多级纹理

0 引言

随着计算机硬件能力的大幅提升,计算机图形也发生了翻天地覆的变换。作为典型代表的游戏领域,其画面从最初的马赛克感严重到现在的真假难辨也象征着图形学的飞速发展。真实的游戏画面可以给玩家沉浸式的游戏体验,很大程度上决定了一款游戏的好坏。而影响画面逼真程度的关键就是关照(包括阴影)。传统的基于物理的关照算法(例如光线跟踪算法)可以达到很好的效果,但其计算复杂,难以做到实时应用。因此在游戏中经常采用替代技术,例如环境光遮蔽技术,在画面质量和渲染速度之间取得平衡。

1 环境光遮蔽算法(SSAO)简介

环境光遮蔽(AO,Ambient Occlusion)是全局光照明的一种近似替代品,可以产生重要的视觉明暗效果,通过描绘物体之间由于遮挡而产生的阴影,能够更好地捕捉到场景中的细节,可以解决漏光,阴影漂浮等问题,改善场景中角落、齿轮、裂缝等细小物体阴影不清晰等问题,增强场景的深度和立体感。可以说,AO特效在直观上给玩家的主要感觉体现在画面的明暗程度上,未开启AO特效的画面光照稍亮一些;而开启AO特效之后,局部的细节画面尤其是暗部阴影会更加明显一些。

AO算法的基本原理是为场景中的点计算一个遮挡因子。这个遮挡因子用来表示从该点出射的所有光线会被其他物体所遮挡的概率。因此在AO算法中,遮挡因子的算法就显得尤为重要,好的遮挡因子可以给画面增加细腻的明暗效果,极大提升画面的真实感。

2 改进的SSAO算法

改进的SSAO(Screen Space Ambient Occlusion)算法在计算屏幕空间中某个像素的屏蔽因子时,先计算出相应的视点空间坐标,然后在屏幕空间像素点的周围选择若干个采样点,并将采样点映射到相机空间,最后根据采样点与像素点的深度、像素点指向采样点的向量与像素点的法向量之间的夹角计算AO值。

SSAO算法的高效在于算法把采样空间从原始的顶点数据空间改变到屏幕空间。屏幕空间中大量的顶点将被裁剪掉,这就减小了采样了样本,极大地提升算法的效率。有利有弊,采样点减小也使随机采用计算得到的AO值不精确,导致渲染效果差强人意。为解决此问题,本文提出一种新的SSAO算法,通过如下3个方面对原有算法进行改进:

(1)采样点选取方式,随机采样得到的样本可能聚集在大致相同的方向,无法保证样本均匀分布,而指定样本分布向量不能很好的捕捉场景细节。为了解决这个问题,本文使用螺旋式采样模型,使采样点均匀的分布在各个角度,从而捕捉到场景中各个方向的细节信息;

(2)纹理采样方面,原有的SSAO算法只渲染一张法线/深度纹理。本文的算法在渲染得到一张深度纹理后,创建多级纹理,为每个采样点选择合适分辨率的纹理。mipmap中的每一级纹理都有一部分存储在cache中,其余部分存储在DRAM中。选择的纹理分辨率越小,cache命中的机率就越大,从而减少读取时间,提高采样效率。

(3)平滑滤波,由于采样点的数量有限,渲染得到的SSAO贴图会出现大量噪点,而选取足够多的采样点来消除噪点对实时渲染是不可行的。常见的解决解决方案是对SSAO贴图应用边缘保护模糊。本文中的SSAO算法使用双边滤波保持场景边缘,突出细节信息。

3 采样点选择

采样点的选择关系到对场景细节的捕捉,理想的采样点是尽可能均匀地分散在各个方向上。原有的算法为了避免采样点落在大致相同的角度,指定了采样点的位置,分别为以像素为中心的立方体的8个顶点,6个面的中心以及其中6条边的中点。这种采样方式失去了随机性,场景中的一些细节可能被忽略。改进的算法采用螺旋式采样模型,以当前像素为中心,将采样点螺旋状放置,根据像素的屏幕空间坐标计算采样点的位置,如图1所示。

图1 螺旋式采样点

在屏幕空间像素点的周围螺旋式选取s个采样点。第i个采样点的屏幕空间坐标为(x',y')+hi'ui,其中,(x',y')是像素的屏幕空间坐标。

s是采样点的数量;r'是相机空间采样半径r对对应的屏幕空间半径,由投影变换得到;常量τ是螺旋的圈数,用来确保角度均匀分配;角度Ø偏移是采样点的随机旋转角度,由式(1)计算得到:

4 纹理采样

本文中的算法在进行纹理采样时引进多级纹理(mipmap)技术,它是目前解决纹理分辨率与视点距离关系的最有效途径。原有的算法只渲染一张法线/深度纹理,改进的算法在渲染得到一张深度纹理后,创建多级纹理。

纹理采样时,相应分辨率的纹理会被调入到cache中。如果选择的纹理分辨率越低,那么cache命中的机率就越大,从而减少读取时间,提高采样效率。DirectX中生成下一级纹理时,通过采样像素周围的4个点取平均值获得,这样得到的纹理效果不是很理想。为了避免XY方向和z精度的偏差,本文使用旋转网格二次采样来创建mipmap。

先通过式(3)将深度缓存中的深度0≤d≤1转换到视点空间z<0,

zn和zf分别为近平面和远平面的深度。当时是一个常量数组;当时然后通过式(4)为深度纹理创建mipmap,

通过式(5)为每个采样点计算得到合适分辨率的纹理级别。mipmap中的每一级纹理都有一部分存储在cache中,其余部分存储在DRAM中。选择的纹理分辨率越小,cache命中的机率就越大,从而减少读取时间,提高采样效率。

式(5)中的q'是选择mipmap级别时的屏幕空间半径增量。

5 平滑滤波

由于采样点的数量有限,渲染得到的AO贴图会出现大量噪点,如图2左边所示。

图2

选择足够多的采样点来消除噪点对实时渲染会极大增加计算量并不可取,一种有效的替代方法是对AO贴图使用边缘保护模糊,本文采用的是双边滤波。

双边滤波最大的优势正如其名称所说:在进行滤波的同时可以有效的保护边缘信息。常用的滤波方法如维纳滤波或者高斯滤波在模糊图像的高频信息的同时,也会丢失较多的边缘信息。高斯滤波是基于空间的滤波算法:离中心点越近的值的权重越大,反之远离中心点的权重则非常小,这就造成了边缘丢失。双边滤波在高斯滤波的基础上考虑了像素值的影响,综合考虑了空间和像素值对中心点的影响,使边缘信息得意较好的保存。如图2所示。本文从高斯滤波开始推导更方便计算的双边滤波公式。常用的高斯滤波公式如公式(6)和(7)所示。

在上述公式中,c(ε,x)是关于距离的函数,用来表征模糊过程中一点对另一点权重。显然当越接近的点之间的相互影响越大,这和高斯函数的分布性质是一样的。然而高斯滤波只针对空间位置进行加权混合,没有考虑像素间的差异性。双边滤波通过在高斯滤波中引入关于像素的加权函数来弥补这一缺陷,取得较好的滤波效果。见公式(8)和(9)。

和公式(6),(7)相比较,可以发现双波滤波公式多了一个函数s(f(ε),f(x)),该函数和c(ε,x)正好相对应,一个是像素的加权函数,一个是空间距离的加权函数。

结合以上公式,我们就得到了如下以像素和空间双重考量的模糊函数:

为便于应用于图像处理中,对上诉公式进行离散化,并将函数的作用域限制在图像像素的有效领域Ω内,最终本文得到简化后的公式(14)。

在模糊过程中涉及到卷积操作,虽然本文限制了卷积的有效范围Ω,图像的平滑扔占据大量的处理时间,成为本文算法的主要瓶颈之一。由于平滑操作的本身的隔离性,本文将模糊算法迁移到GPU上,用GPU多核的优势,极大地减小了图像平滑所需要的时间。具体做法如下:

(1)根据卷积的范围Ω将待处理的图像划为细小的模块。

(2)在各个模块同时进行双边模糊操作,此步骤将在GPU上高速并行。

(3)将处理后的各个模块进行整合。

备注:在实际的代码中,并不真正的切分图片,只是根据图片内存将其分为不同的处理单元。

6 实验结果分析

本文在相同的硬件环境下分别使用SSAO及经本文改进后的SSAO算法渲染同一画面。两种算法的采样半径都是1.5单位,采样点数量都是20。由图3对比可知,改进的SSAO算法在渲染效果上得到了较大的提升。图3左图中贴近地面的阴影出现“漂浮”现象,细小物体的阴影不清晰。图2右图中解决了阴影“漂浮”,细小物体阴影不清晰的问题,画面层次感增强。而且改进的SSAO算法的运行速率是原有算法的两倍。

在图4中,禁用了模糊通道。虽然渲染速度得到了提升,但画面效果很差,AO贴图有大量的噪点,颗粒感严重。因此必须采用双边滤波平滑图像,保持场景边缘,突出细节信息。

7 结语

本文针对现有的SSAO算法进行改进优化,提出了更有效的采样方法,提出了新的衰减英子的计算方法,并采用双边滤波替换高斯滤波来保留图像的边缘信息。改进后的算法改善了原有算法的性能和渲染效果,解决了阴影漂浮、细小物体阴影不清晰等问题,增强了画面的层次感和真实感,同时提升了渲染速度。具有一定的应用价值。

同时本文算法仍存在以下问题需要解决。首先本文采用的螺旋采样方法,对于细小的边缘区域信息,仍然缺乏有效的保留;采用精度也有待于进一步提高以提高渲染的精度。最后算法中的相关控制因子需要自己手动调试,较为繁琐,也有待进一步改进。

图3

图4

[1]Landis H.Production-Ready Global Illumination[C].New York:Proceeding of the International Conference on Computer Graphics and Interactive

[2]Morgan McGuire,Michael Mara,David.Scalable Ambient Obscurance[J].High Performance Graphics,2012.

[3]Lance Williams.Pyramidal Parametrics[J].Computer Graphics,1983.

[4]Morgan McGuire,Brian Osman,Michael Bukowski,Padraic Hennessy.The Alchemy Screen-Space Ambient Obscurance Algorithm [J].High Performance Graphics,2011.

[5]Louis Bavoil,Miguel Sainz,Rouslan Dimitrov.Image-Space Horizon-Based Ambient Occlusion[Z].NVIDIA Corporation,2009.

[6]Ville Timonen.Screen-Space Far-Field Ambient Obscurance[J].High Performace Graphics,2013.

[7]Thai-Duong Hoang,Kok-Lim Low.Efficient Screen-Space Approach to High-Quality Multi-Scale Ambient Occlusion[J].The Visual Computer,2011.

Face Recognition Based on DCNN

(1.State Key Laboratory of Visual Synthesis Graphics,Sichuan University,Chengdu 610065;2.Sichuan Kawashio Zhisheng Software,Chengdu 610065)

In the process of face attribute recognition,there are several methods at present,face attribute recognition based on Gabor wavelet transform,face attribute recognition based on SIFT and face attribute recognition based on differential texture features.There are many problems in the traditional methods,such as the characteristics of the selection needs human intervention,and the characteristic of the choice are not necessarily able to meet expectations.Adopts deep convolutional neural network(DCNN)based on the supervised method,constructs a multilayered convolution neural network,neural network obtained by convolution convolution activation depth features,this method uses the CelebA database training,after using the JAFFE face database for testing,and achieves good results.

Attribute Recognition;SIFT;Supervised;Depth Convolution Neural Network

1007-1423(2017)08-0041-05

10.3969/j.issn.1007-1423.2017.08.009

杨志成(1990-),男,湖北襄阳人,在读硕士研究生,研究方向为计算机图形学、数字图像处理

2016-12-20

2017-03-10

猜你喜欢
纹理阴影滤波
船岸通信技术下舰船导航信号非线性滤波
你来了,草就没有了阴影
基于BM3D的复杂纹理区域图像去噪
一种考虑GPS信号中断的导航滤波算法
高效LCL滤波电路的分析与设计
使用纹理叠加添加艺术画特效
基于EKF滤波的UWB无人机室内定位研究
TEXTURE ON TEXTURE质地上的纹理
阴影魔怪