收稿日期:20180603;修回日期:20180720 基金项目:国家自然科学基金资助项目(51679058);中国高等专项研究基金资助项目
(20132304110018)
作者简介:张菁(1965),女,教授,博士,主要研究方向为虚拟现实、医学图像处理(296582337@qq.com);王鹤(1994),女,硕士,主要研究方
向为虚拟现实、医学图像处理;张晓东(1993),男,硕士,主要研究方向为虚拟现实.
基于级联体素纹理的 VCT全局光照算法
张 菁
1,2,3
,王 鹤
1
,张晓东
1
(1.哈尔滨工程大学 计算机科学与技术学院,哈尔滨 150006;2.汕头大学 工学院,广东 汕头 515063;3.济南
大学 信息科学与工程学院,济南 250022)
摘 要:针对大规模场景的全局光照渲染往往因为计算量过大而无法满足实时性要求的问题进行了研究,提出
一种高性能的体素圆锥追踪(
voxelconetracking,VCT)全局光照算法。算法包括:a)在体素化阶段,提出一种新
型的场景光照信息表示级联体素纹理结构,该结构极大地减少了存储场景的内存消耗而且具有各向异性,在处
理大规模场景时具有速度快、质量高的优势;
b)在光照计算阶段,基于级联体素纹理结构提出一种改进的圆锥追
踪滤波器,能够提高光照注入和反射光计算的效率;c)改进场景的体素化更新策略进一步提高了算法的运行时
帧率。实验证明,本算法在降低内存占用空间和提高速度方面均远优于原 VCT算法,满足了大规模场景中全局
光照计算的实时性要求。
关键词:虚拟现实;大规模场景;实时全局光照;级联体素纹理;体素圆锥追踪
中图分类号:TP391.41 文献标志码:A 文章编号:10013695(2020)02058057806
doi
:10.19734/j.issn.10013695.2018.06.0573
VCTglobalilluminationalgorithmbasedoncascadevoxeltexture
ZhangJing
1,2,3
,WangHe
1
,ZhangXiaodong
1
(1.CollegeofComputerScience& Technology,HarbinEngineeringUniversity,Harbin150006,China;2.CollegeofEngineering,Shantou
University
,ShantouGuangdong515063,China;3.SchoolofInformationScience&Engineering,UniversityofJinan,Jinan250022,China)
Abstract:Tosolvetheproblemthattheglobalilluminationrenderingoflargescalescenecan’tmeettherealtimerequire
ment,thispaperproposedaVCTglobalilluminationalgorithm.Thealgorithmincluded:a)Inthephaseofvoxelization,this
paperproposedanovelsceneilluminationinformationrepresentationstructurecalledcascadevoxeltextures,whichcouldnot
onlygreatlyreducethememoryconsumptionofthestoragescenes,butalsohadanisotropy;b)Inthephaseofillumination
calculation
,thispaperproposedanimprovedconetracingfilterbasedonthecascadetexturestructure,thisfilterimprovedthe
efficiencyofilluminationinjectionandreflectedlightcalculation;c)Thevoxelupdatingstrategyofthesceneimprovedthe
runtimeframerateofthealgorithm.ExperimentalresultsshowthattheproposedalgorithmismuchbetterthantheoriginalVCT
algorithminreducingthememoryandimprovingthespeed.Thealgorithmmeetstherealtimerequirementofglobalillumina
tioncalculationinlargescalescene.
Keywords:virtualreality;largescalescene;realtimeglobalillumination;cascadevoxeltexture;VCT
0 引言
在虚拟世界中,真实的光照是沉浸感的重要来源,其中全
局光照是最重要的技术手段。良好的模拟全局光照能够极大
地提高场景渲染的真实感。但是,由于复杂场景中的间接光照
模拟的难度较高,对全局光照算法实时性和准确性的要求也较
高,所以需要一种更快速、近似和自适应的方案解决在大规模
复杂场景中实时全局光照的计算问题。目前,主流的全局光照
算法分别有 1979年 Whitted提出的光线追踪算法
[1]
及其改进
算法
[2~4]
、1996年 Jensen
[5]
提 出 的 光 子 映 射 法 及 其 改 进 算
法
[6,7]
,以及 1997年 Keller提出的立即辐射度算法
[8,9]
及其改
进算法
[10,11]
。如今,光子映射算法仍没有达到实时性能,且受
到时间闪烁伪影的影响。光线追踪技术和立即辐射度算法虽
然实现了在复杂照明情况下的可交互性能,但仍不适用于复杂
大规模场景的实时全局光照。
为了满足对于动态全局光照算法的需求,2010年 Crytek
首次提出动态全局光照算法 CascadedLPV
[12,13]
,文中提出使
用级联纹理结构保存光照信息,性能得到了很大的提升,该结
构对本文有所启示。
2011年,Crassin等人
[14]
提出了体素圆锥
追踪(
VCT)算法,也被称为 VXGI算法。Cyril在 VCT算法中
提出一种稀疏体素八叉树的体素存储结构,该结构具有较高的
光照计算效率,利用近似计算的思想完成了对于多种间接光照
的模拟,实时性优于
LPV,但其所需的存储空间巨大,且对体素
的遍历效率较差。Laine等人
[15]
提出了改进的稀疏体素八叉
树结构(
ESVO),一定程度上改善了存储开销,但仍有约 40%
的存储空间用于节点的编码。2013年,Hornung等人
[16]
提出
了基于 Morton码的八叉树节点编码(MSVO),该编码方法能够
减少部分指针,但其规定的存储方式会造成相同节点之间的冗
余存储。2017年,袁昱纬等人
[17]
提出的基于稀疏体素有向无
环图的光照计算加速结构(SVDAG)极大地减小了体素的存储
空间,同时加快了渲染过程,但由于该算法是利用合并节点来
达到存储目的,导致该方法在处理信息较多的情况时效果不理
想,所以对于需要多种信息的全局光照是不利的。2018年,袁
璐
[18]
通过图形渲染管线计算虚拟点光源并用裁剪后的光源进
第 37卷第 2期
2020年 2月
计 算 机 应 用 研 究
ApplicationResearchofComputers
Vol.37No.2
Feb.2020