一种基于场景多方向体素化的多光源场景加速绘制方法技术

技术编号:15063209 阅读:71 留言:0更新日期:2017-04-06 12:08
本发明专利技术公开了一种基于场景多方向体素化的多光源场景加速绘制方法,主要针对含有大量动态点光源的静态场景及动态场景的实时渲染的研究和实现,该方法包括以下步骤:对场景进行多方向的体素化,并将体素化的结果保存的一个二维的体素化数组中,由相机的位置确定输出图像,记录输出图像每一个像素的方向、颜色和世界坐标,用GPU并行每一个像素,在GPU的每个线程中,计算每个光源与该像素的可见性,由光源位置和像素的位置确定光线,由光线在二维体素化数组中找到穿过的一列格子,由该列格子确定光线是否被遮挡。本方法借助GPU强大的计算能力,大大提高了渲染速度和效率。

【技术实现步骤摘要】

本专利技术属于实时渲染
,具体涉及一种基于场景多方向体素化的多光源场景加速绘制方法
技术介绍
在计算机图形应用的很多场景中都会使用大量的动态光源,绘制含有多光源的复杂场景,对于增强图形的真实感沉浸感是一个非常重要的途径。在现有的图形硬件条件下,虽然已经可以实现对一些包含复杂几何模型的场景进行交互式的操作,但是对含有大量动态光源的场景进行绘制,速度还是比较慢,有待于提高。光照计算是一个耗时的工作,因为它涉及到了光线和场景的可见性计算。尽管图形处理器可以快速地绘制复杂的场景,但是如果对于上千个光源,使用暴力方法上千遍地绘制复杂的几何场景还是极其耗时的。阴影图方法是进行包含少量光源场景实时绘制的常用方法。阴影图是以光源位置为视点对几何场景进行绘制,从而得到场景的几何近似。它可以被GPU进行并行处理。然而,如果场景中的光源数较多,要为每个光源绘制一遍场景,生成对应的阴影图,时间开销过大。Ritscheletal.的论文中介绍了连贯阴影图,它由一些被压缩的深度图构成,这些深度图是预先从n个方向对场景进行绘制生成的,这里的n比光源的数量要小很多。在计算每条光线的可见度时,首先需要根据光线方向选取从最相近方向绘制的阴影图,然后进行深度比较来确定光线是否遮挡。在此方法的基础上,连贯表面阴影图方法(CSSM)被提出。该方法支持场景间接光照计算。虚拟面光源是由一组虚拟点光源组成,虚拟面光源的可见性可以利用扩展抛物线投影的CSSMs来计算,这避免了对每个虚拟点光源的单独计算。不完美的阴影图(ISM)是为针对多点光源场景绘制的阴影图的技术。为了提高绘制效率,不完美的阴影图的分辨率较低,并且对几何场景的采样点进行分批绘制。ISM是多光源实时绘制中常用的方法,所以本文在结论部分给出了本文的方法和ISM方法的比较。层次化场景几何近似方法一直被用于加速阴影图的绘制中。例如,隐式可见性方法使用了一种基于片状结构的四叉树表面近似方法,ManyLoDs使用了场景几何层次划分方法。虚拟阴影图方法将阴影投射场景几何划分成簇,为其绘制适当分辨率的立方体贴图,从而提高多光源复杂场景的绘制效率。矩阵行列抽样(MRCS)通过输出样本/光源对,来为输出样本和光源组计算典型阴影图。个别样本/光源对的可见性会被相关的典型阴影图代替。随后光源聚合方法会减少需要生成的典型阴影图的数量。MRCS算法可以在GPU中实现,它减少了需要进行实际确定的可见性数量,因此提高了计算效率。另外,通过减少光源簇和输出图像的可见性估计可进一步提高该算法的效率。对于存在大量光源的场景,从这些光源绘制的阴影图之间存在冗余,随着场景复杂性和光源数量的增加,阴影贴图之间的冗余也会增加。本文方法对场景进行多方向的体素化,从而形成场景的三维几何近似数据,实现固定时间下光线-场景的求交。在本文方法中,虽然多方向的体素化数据也存在着冗余,但冗余与光线方向的离散化密切相关,在多光源或者复杂的场景中的冗余不会增加。本文所用的方法没有聚合光源,本文计算了场景中每条光线的可见性,提供了高质量的阴影效果。目前,许多基于光线跟踪的算法对几何场景进行近似来加速可见性的计算。微面绘制方法使用点的层次结构进行场景的近似计算,这可以加速动态场景中光线的遍历和几何场景的更新。光线跟踪方法还可以通过对几何场景的体素化来进行加速。本文所用的方法也借鉴了几何场景的体素化的思想,使用多方向体素化数据进一步减少了光线-场景求交的开销。还有一些基于光线跟踪的方法采用对光源的简化来加速可见性判定。八叉树的层次结构用于实现基于位置和影响范围的光源聚合。光源被分在许多松散的集合中,各个顶点的光源向量通过PCA进行压缩,在低频光照环境下实现了高质量和高帧频的绘制效果。光源切割是基于二叉树中多光源阴影绘制的常用方法。对于输出的每个像素样本,在二叉树找到一个合适的切割,利用切割中的光源进行该像素的多光源光照计算,该方法假设所有光线均为可见。预计算光源切割方法对此方法进行了扩展,预计算了光源的可见性,因此它适合于光源不发生变化的静态场景。随后提出的双向光源分割方法可以处理动态场景。另外一些光线跟踪方法对光源和几何场景都进行了近似。例如可见度聚合利用稀疏矩阵将场景几何与光源进行分组,非零子矩阵相当于场景几何与光源簇的可见度交集。这类方法提高了近似计算的效率。
技术实现思路
本专利技术要解决的技术问题是:提供一种多光源场景绘制的加速方法,并利用GPU硬件的计算能力,提高了计算与绘制效率,该方法主要利用了二维体素化的方法和提出的一种快速的可见性判断的方法。本专利技术解决上述技术问题的技术方案为:一种基于场景多方向体素化的多光源场景加速绘制方法,该方法包括如下步骤:步骤(1)、求出场景的包围盒,设定体素化的角度增量k,从多个方向对场景进行体素化,将其保存在二维体素化数组V中;步骤(2)、确定相机的位置,由相机的位置渲染场景,得到输出图像,同时记录每个像素的位置、法向和颜色信息线;步骤(3)、确定每个灯的位置,GPU并行每个像素,计算其亮度值,GPU的每个线程处理一个像素;步骤(4)、在每个线程中,枚举每个灯,判断该灯对于该像素的可见性,由灯和像素的坐标确定一条光线,由光线的方向和中点确定其穿过的体素化的一列格子,根据这列格子中有无三角形面片确定该光线是否被遮挡,统计所有未遮挡的灯的个数,从而确定该点的亮度。进一步的,步骤(1)具体包括:设定方向的角度增量k及包围盒的分辨率n,k确定出所有的方向,在显存中申请对应大小的缓存,从每个方向对场景进行一次体素化;体素化的时候从X,Y,Z每个方向利用opengl渲染管线渲染一次场景,在shader中利用得到的片元确定被占位的格子。进一步的,步骤(2)具体包括:确定相机位置,渲染场景,得到输出图像,同时记录输出图像的每一个像素的位置、法向和颜色信息。进一步的,步骤(3)具体包括:确定灯的位置,对于输出图像的每个像素,使用GPU并行计算每个像素的亮度,每个线程处理其中的一个像素。进一步的,步骤(4)具体包括:在每个线程中,枚举每个灯,判断该灯对于该像素的可见性,由灯和像素的坐标确定一条光线,由光线的方向和中点确定其穿过的体素化的一列格子,根据这列格子中有无三角形面片确定该光线是否被遮挡,统计所有未遮挡的灯的个数,从而确定该点的亮度。总之,与之前的方法相比,本专利技术能够快速地绘制具有大量光源的场景并且能得到较好的效果。本专利技术主要有两点贡献:第一,给出了多方向体素化的方法。第二,提出了一种快速的可见性判断的方法。附图说明图1为一种基于场景多方向体素化的多光源场景加速绘制方法整体流程图;图2为计算θ,Φ示意图;图3为光线和对应方向体素化结果相交列示意图;图4为静态场景实验结果;图5为动态场景实验结果;图6为我们的方法和ISM方法的误差图;图7为我们的方法和ISM方法所有场景对比。具体实施方式下面结合附图以及本专利技术的具体实施方式进一步说明本专利技术。本专利技术一种基于场景多方向体素化的多光源场景加速绘制方法,包括如下步骤:1)多方向的场景体素化首先将方向进行离散化,设定方向上角度的增量k,然后计算每一个方向下场景的包围盒和坐标轴的方向。具体到体素化的具体过程是这样进行的:对物体走一遍opengl的渲染管线。最后,在pix本文档来自技高网
...
一种基于场景多方向体素化的多光源场景加速绘制方法

【技术保护点】
一种基于场景多方向体素化的多光源场景加速绘制方法,其特征在于,该方法包括如下步骤:步骤(1)、求出场景的包围盒,设定体素化的角度增量k,从多个方向对场景进行体素化,将其保存在二维体素化数组V中;步骤(2)、确定相机的位置,由相机的位置渲染场景,得到输出图像,同时记录每个像素的位置、法向和颜色信息线;步骤(3)、确定每个灯的位置,GPU并行每个像素,计算其亮度值,GPU的每个线程处理一个像素;步骤(4)、在每个线程中,枚举每个灯,判断该灯对于该像素的可见性,由灯和像素的坐标确定一条光线,由光线的方向和中点确定其穿过的体素化的一列格子,根据这列格子中有无三角形面片确定该光线是否被遮挡,统计所有未遮挡的灯的个数,从而确定该点的亮度。

【技术特征摘要】
1.一种基于场景多方向体素化的多光源场景加速绘制方法,其特征在于,该方法包括如下步骤:步骤(1)、求出场景的包围盒,设定体素化的角度增量k,从多个方向对场景进行体素化,将其保存在二维体素化数组V中;步骤(2)、确定相机的位置,由相机的位置渲染场景,得到输出图像,同时记录每个像素的位置、法向和颜色信息线;步骤(3)、确定每个灯的位置,GPU并行每个像素,计算其亮度值,GPU的每个线程处理一个像素;步骤(4)、在每个线程中,枚举每个灯,判断该灯对于该像素的可见性,由灯和像素的坐标确定一条光线,由光线的方向和中点确定其穿过的体素化的一列格子,根据这列格子中有无三角形面片确定该光线是否被遮挡,统计所有未遮挡的灯的个数,从而确定该点的亮度。2.根据权利要求1所述的基于场景多方向体素化的多光源场景加速绘制方法,其特征在于,步骤(1)具体包括:设定方向的角度增量k及包围盒的分辨率n,k确定出所有的方向,在显存中申请对应大小的缓存,从每个方向对场景进行一...

【专利技术属性】
技术研发人员:王莉莉孟春雷李晓东赵琦
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

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

1