CN101615300A - 一种屏幕空间微结构表面对象环境光遮挡方法 - Google Patents
一种屏幕空间微结构表面对象环境光遮挡方法 Download PDFInfo
- Publication number
- CN101615300A CN101615300A CN200910088483A CN200910088483A CN101615300A CN 101615300 A CN101615300 A CN 101615300A CN 200910088483 A CN200910088483 A CN 200910088483A CN 200910088483 A CN200910088483 A CN 200910088483A CN 101615300 A CN101615300 A CN 101615300A
- Authority
- CN
- China
- Prior art keywords
- ambient light
- scene
- light occlusion
- hiding relation
- point
- 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.)
- Granted
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
屏幕空间微结构表面对象环境光遮挡方法,包括以下两个步骤:绘制视点下的场景,将视空间下的场景顶点的深度信息绘制到一张浮点纹理中;绘制一个满屏的四边形,根据得到的深度纹理,在图像空间利用物体的遮挡角度快速计算环境光遮挡值,并输出到屏幕。本发明可以快速计算微结构表面对象环境光遮挡,具有高效逼真的优点。
Description
技术领域
本发明涉及一种屏幕空间微结构表面对象环境光遮挡方法。
背景技术
目前的实时图形应用程序对真实感的要求越来越高,使用了诸如软阴影、高动态范围光照、延迟光照等技术来提高场景的逼真度,但实时的全局光照算法在大规模复杂场景上的应用仍然存在着很多问题,目前只能通过近似的方法来取得理想的绘制效率。环境光遮挡是其中的一种全局光照近似技术,由于其方法简单、绘制效率高而被广泛的应用于各种场景。
环境光遮挡是一种快速的全局光照近似方法,它通过计算物体上某点周围的遮挡物对其的可见性关系来得到该点的光照强度,从而用来模拟场景中由环境光所产生的软阴影,使得场景逼真度大大提高。该方法首先由Zhukov等人于1998年在“An ambient lightillumination model”中提出,它通过计算物体周围的几何遮挡关系来计算出环境光影响,基本思想是根据对着色点周围的被遮挡程度来估计环境光衰减度。
目前,针对环境光遮挡算法的研究有很多,按照遮挡关系的计算方式可以分为如下两类:
1)预计算每个遮挡物造成的遮挡关系:
Kontkanen等于2005年在“Ambient occlusion fields”中提出了一种实时计算对象间环境光遮挡的算法。针对每个遮挡物,采用一种预计算的方法得到表示该物体遮挡关系的近似值。由于环境光遮挡关系非常的平滑,该方法将遮挡关系近似成为球冠,即用球冠的大小和方向来近似表示该遮挡物的遮挡面积与方向。利用该近似值,就可以在实时绘制的时候快速的判断被遮挡物体上的阴影关系。该方法可以有效的用于当前图形硬件之上的游戏等应用。
Evans于2006年在“Fast approximations for global illumination on dynamic scenes”中提出了一种动态场景的全局光照快速近似方法,该方法首先将整个场景用体数据纹理表示,针对每张纹理,采用到该纹理中物体边缘点的欧几里德距离来近似模拟纹理中该点的阴影程度的方法得到整个场景的光照关系,从而快速的模拟出全局光照效果,能够实时的展示整个场景。
Hegeman等于2006年在“Approximate ambient occlusion for trees”中提出了一种针对树木场景的近似环境光遮挡方法。该方法首先将树木近似成一个球体,根据树木上每个点的位置与法线以及其与球体中心点的关系来近似得到该点的可见性函数,接着利用树木所在球体到地面上点的距离以及其的立体角度来近似计算出地面上点的可见性,这样就得到了整个场景中点的可见性。
该类方法需要对整个场景的遮挡关系进行预计算,因此不能针对动态场景,同时如果场景规模较为复杂,则花费在预计算阶段的时间将大大增加。
2)实时计算整个场景的遮挡关系:
Shanmugam等于2007年在“Hardware accelerated ambient occlusion techniques onGPUs”中提出了一种硬件加速的环境光遮挡方法。该方法是一种多遍绘制的方法,将环境光遮挡分解为高频精细的环境光遮挡与低频远距离的环境光遮挡两部分,这两部分能够同时独立的计算。针对高频精细的部分,该方法采用了基于图像空间的方法,首先得到视空间下整个场景的法线和深度值,并保存到纹理中,再将纹理中某像素周围的像素近似成为单位球状遮挡物来近似得到近距离高细节模型导致的遮挡关系;针对低频部分,该方法利用现代GPU的特性将遮挡物的几何结构进行简化,从而大大减少了遮挡区域的搜索。该方法能够广泛应用于分子结构展示、动态变形物体等场景,但由于需要大量的近似遮挡物来计算遮挡关系,绘制效率不够高,百万级面片的绘制帧率为17fps左右。
Bavoil等于2008年在“Image-space horizon-based ambient occlusion”中提出了一种图像空间下的基于地平线的环境光遮挡算法。该方法基于视点坐标下的场景深度图,计算出被遮挡点周围的地平角关系,从而得到该点的被遮挡程度。Dimitrov等于2008年在“Horizon-split ambient occlusion”中提出了一种地平角分裂的环境光遮挡方法。该方法通过计算屏幕空间下点的地平角遮挡关系与实际法线遮挡关系的和来得到最终的遮挡关系。这两种方法在Shanmugam的基础上改进了遮挡关系的判断方法,绘制效率得到了提高,但是其对遮挡关系的判断方法的计算量仍然较大,在处理复杂微结构场景时绘制效率仍然较低,百万级面片的绘制帧率为30fps左右。
在前面所述的现有技术中,基本上都采用将遮挡物进行近似模拟的方法,对微小的遮挡物不能很好的近似模拟,因此判断其产生的遮挡关系比较困难,绘制效率低。
发明内容
本发明要解决的技术问题是:克服了现有技术的不足,提供一种针对微结构表面对象的、快速高效的得到环境光遮挡值的环境光遮挡方法。
本发明采用的技术方案为:屏幕空间微结构表面对象环境光遮挡方法,其特点在于包括了以下两个步骤:
(1)从视点位置绘制整个场景,并将视空间下的三维模型的顶点的位置坐标的Z分量保存在深度纹理的数据中;
(2)基于(1)中获得的保存在深度纹理的数据,在图像空间将物体的遮挡关系近似为角度的比值,计算出物体的环境光遮挡值,并输出到屏幕。
环境光遮挡能够快速的模拟全局光照效果,它通过计算物体周围的几何遮挡关系来计算出环境光影响,基本思想是根据着色点周围的被遮挡程度来估计环境光衰减度。其中场景上某点P的环境光遮挡计算如公式1所示:
其中Ω是以场景中点P的法向方向为中心的单位半球,其中法线方向为垂直于该点切平面的向量的方向,V是该半球上的光线的可见性函数,其值与该方向的可见程度有关,当该方向完全可见时其值为1,完全被遮挡时其值为0。
在本文中,我们假设环境光遮挡接收点P的遮挡来源于周围连续的遮挡物,其遮挡关系A(ψ,Ω)可以由该点附近方向半球不被遮挡部分ψ的面积占周围整个半球Ω面积的比值得到,如公式2所示:
其中Sψ(P)表示点P附近方向半球不被遮挡部分的面积,SΩ表示整个半球的面积,ΔP=constant,用来修正得到的遮挡关系值。
环境光遮挡计算中最重要的是确定场景的环境光遮挡关系,在复杂微结构场景中,我们注意到,由于物体周围的场景都是连续的,遮挡物对其产生的影响与遮挡物到该点的距离有着一定的关系。由于遮挡物距离物体越近,其对物体的遮挡权重越大,而较远的物体则由于距离的关系导致其遮挡能力不如近处的遮挡物,在计算遮挡关系的时候占的比例很小,因此随着计算环境光遮挡采样的点的最大距离的缩短,计算得到的环境光遮挡质量只有稍许的降低。于是我们认为在具有高层次细节的物体的场景中,环境光遮挡绝大部分是由靠近物体的遮挡物造成的,场景的环境光遮挡关系可以由近距离的遮挡物近似得到。
在实际绘制过程中,我们关心的是场景中可见的点的遮挡关系,而场景中可见点的遮挡关系很大程度上来源于近距离的遮挡物,也就是同样视点所能看见的物体,于是可以将整个场景的环境光遮挡关系近似成为视点所见的遮挡物所造成的影响。
在视空间下,我们可以很快地得到场景中的深度值纹理,而该纹理与世界坐标系下的点相对应,通过该纹理,即可以很快地得到某点周围点的深度信息,从而进一步计算出周围各点对该点的遮挡关系,如图2所示,其中A、B两点为深度值纹理上的两点。
场景的深度值纹理是由场景中的三维点投影到二维空间得到,在世界坐标下的距离近的点在深度值纹理中对应的点的距离也较近,因此可以利用深度值纹理中该点周围的点作为较近的遮挡物,这样可以减少纹理存储空间,提高绘制效率。同时由于将遮挡关系近似为由近距离遮挡物所产生,这些遮挡物的距离基本上一致,由这些遮挡物产生的遮挡关系与遮挡物的距离的关系也可以忽略不计,即只需要考虑该点的被遮挡方向即可。
场景中的点只能被相对高于它的物体所遮挡,因此可以将该点的遮挡关系近似成为视线所指方向上的逆半球上的遮挡关系,即该半球上不被遮挡的面积比值。对此,我们可以计算出在半球每个切面上的不遮挡角度,得到其与整个切面角度的比值,将所有切面的角度比值进行累加,这样就得到了所需的面积比值。
总之,与原有方法相比,本发明能够快速高效的绘制环境光遮挡效果,特别是针对屏幕空间微结构物体,本发明不需要预计算,能够快速的得到场景的环境光遮挡效果,绘制效率高。同时,由于充分利用了GPU高度并行计算能力,本发明可以在PC机上实时运行,具有良好的实用性。
附图说明
图1为原理示意图;
图2为视空间示意图;
图3为遮挡关系计算示意图;
图4为算法整体流程及算法任务分配示意图;
图5为遮挡算法流程图;
图6为Buddha模型的环境光遮挡绘制图,
其中,图6a为本发明的算法,图6b为Bavoil的算法,图6c为Dimitrov的算法。
具体实施方式
本发明的实现方法具体如下:
Step1.绘制视点下的场景,得到深度值并存储到深度纹理中。
Step2.针对深度纹理中的每个像素P,取其周围N个方向,对每个方向我们需要沿着该方向进行迭代取值,按照步长dstep索引nstep个点,计算出每次迭代得到的点A相对于点P的遮挡角度从而得到该方向上最大的遮挡角度θpo,如图3所示。利用同样的方法得到该方向的逆方向上的最大的遮挡角度θne,这样,我们认为P点在这个半圆面上所受的遮挡程度为
Step3.在N个方向上得到的遮挡程度进行一个均值计算,便可以近似得到点P的遮挡程度,从而得到该点的环境光遮挡值,我们可由公式2得到如下公式:
其中,L表示的是点P接收到的光照度信息,在此我们假设L可以从点光源或者环境贴图中有效的得到;B表示的是点P的BRDF信息,在此我们假设整个场景为均匀材质,B可以取值为恒定常数; 表示的为在ω方向上点P的可见性。
由公式3我们可以看出,环境光遮挡的计算与采样方向个数N和可见性函数V(ω)有关,这两项参数的选取直接影响着绘制效果和绘制效率。
首先考虑采样的方向个数N。由于我们将遮挡半球的面积计算近似为球面切面的角度计算,因此采样方向的多少直接影响结果的精确程度。但同时随着采样方向的增加,所需要计算的采样点的数目也会相应增加,导致绘制帧率下降。选择合适的采样方向数目对最终效果的绘制有着重要的影响。
V(ω)与采样方向上的最大角度有关,而角度的计算则与采样步长dstep和采样点数nstep有关。采样步长dstep影响采样精度,dstep越小,则意味着方向上点的选取越紧凑,那么得到的角度的精确度越高。同样,采样点数nstep也影响采样精度,nstep越大,则意味着采样距离dstep×nstep越大,那么该方向上的实际的最大角度越可能在采样点中计算出现。但每方向上采样数目的增加会使得实际的计算量增加,从而导致绘制帧率下降。因此,要想取得理想的绘制效果,就必须选取合适的采样步长与采样距离。
在实际的实验过程中,我们法线取采样方向为8、采样点数为50,采样步长为纹理的单位长度的时候绘制效果最为理想。
本文算法的实现平台为Microsoft visual studio 2005与OpenGL,顶点与片元着色器程序由Cg语言编写。离屏渲染通过Framebuffer object来实现。图4给出了本文算法的整体流程及算法任务分配示意图。算法主要通过基于GPU的多遍绘制来实现,其中CPU负责一些初始化工作,如各类纹理缓冲区的创建、Shader程序的初始化、OpenGL状态切换、Shader切换、CPU到GPU的数据加载以及每帧的模型形变等,而绘制循环中的大部分工作基本都由GPU来完成,如各类浮点纹理的动态生成、深度纹理的动态生成、环境光遮挡的动态计算以及最终场景的合成绘制等。
在计算环境光遮挡的时候,我们采用的计算算法流程如图5所示,该算法流程根据公式3来计算得到场景的环境光遮挡值。
本文算法与同类方法,如Bavoil和Dimitrov等的方法进行比较,主要比较绘制帧率。在相同采样方向、采样步长与采样点数的情况下,绘制结果如图6所示,绘制效率如表1所示。图6a给出了我们的算法的效果图,图6b给出了Bavoil的算法的效果图,图6c给出了Dimitrov的算法的效果图。从中我们可以看到这三种方法得到的效果非常近似,但在具体的细节纹理绘制方面,我们的方法更为占优,具体如图6中框图部分看出,我们的方法能够将衣服上的纹理绘制的十分清晰,相比之下其余两种方法则有着不同程度的模糊。同时,本文算法的绘制效率更为优秀。
表1不同算法的比较 帧/秒
Claims (2)
1、屏幕空间微结构表面对象环境光遮挡方法,其特征在于包括以下两个步骤:
(1)从视点位置绘制整个场景,并将视空间下的三维模型的顶点的位置坐标的Z分量保存在深度纹理的数据中;
(2)基于(1)中获得的保存在深度纹理的数据,在图像空间将物体的遮挡关系近似为角度的比值,计算出物体的环境光遮挡值,并输出到屏幕。
2、根据权利要求1所述的屏幕空间微结构表面对象环境光遮挡方法,其特征在于:所述的环境光遮挡值的判断方法为:
(1)只判断视点所见的遮挡物对该点所造成的影响;在微结构场景中,我们关心的是场景中可见的点的遮挡关系,而场景中可见点的遮挡关系很大程度上来源于近距离的遮挡物,也就是同样视点所能看见的物体,于是可以将整个场景的环境光遮挡关系近似成为视点所见的遮挡物所造成的影响;
(2)将该点的遮挡关系近似成为视线所指方向上的逆半球上的遮挡关系,其遮挡关系A(Ψ,Ω)可以由该点视线所指方向上的逆半球不被遮挡部分Ψ的面积占周围整个半球Ω面积的比值得到,即 其中SΨ(P)表示点P附近方向半球不被遮挡部分的面积,SΩ表示整个半球的面积,ΔP=constant,用来修正得到的遮挡关系值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100884834A CN101615300B (zh) | 2009-07-02 | 2009-07-02 | 一种屏幕空间微结构表面对象环境光遮挡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100884834A CN101615300B (zh) | 2009-07-02 | 2009-07-02 | 一种屏幕空间微结构表面对象环境光遮挡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101615300A true CN101615300A (zh) | 2009-12-30 |
CN101615300B CN101615300B (zh) | 2011-12-07 |
Family
ID=41494921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100884834A Expired - Fee Related CN101615300B (zh) | 2009-07-02 | 2009-07-02 | 一种屏幕空间微结构表面对象环境光遮挡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101615300B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882323A (zh) * | 2010-05-19 | 2010-11-10 | 北京航空航天大学 | 基于高度图的微结构表面全局光照实时绘制方法 |
CN102194246A (zh) * | 2010-03-10 | 2011-09-21 | 英特尔公司 | 大气散射的硬件加速仿真 |
CN102592306A (zh) * | 2010-10-21 | 2012-07-18 | 汤姆森许可贸易公司 | 虚拟环境中遮挡的估计方法 |
CN102592305A (zh) * | 2011-09-06 | 2012-07-18 | 浙江大学 | 自适应的屏幕空间环境光遮蔽方法 |
CN106780709A (zh) * | 2016-12-02 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种确定全局光照信息的方法及装置 |
CN107633544A (zh) * | 2016-07-14 | 2018-01-26 | 网易(杭州)网络有限公司 | 环境光遮蔽的处理方法及装置 |
CN107730578A (zh) * | 2017-10-18 | 2018-02-23 | 广州爱九游信息技术有限公司 | 光环境遮蔽图的渲染方法、生成效果图的方法和设备 |
CN108257204A (zh) * | 2016-12-28 | 2018-07-06 | 福建省天奕网络科技有限公司 | 运用于Unity引擎的顶点色绘制烘焙方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU6255698A (en) * | 1998-01-29 | 1999-08-16 | Thomson Licensing S.A. | Projection television with holographic screen and partly occluded projection lens |
JP3599268B2 (ja) * | 1999-03-08 | 2004-12-08 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理方法、画像処理装置及び記録媒体 |
-
2009
- 2009-07-02 CN CN2009100884834A patent/CN101615300B/zh not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102194246A (zh) * | 2010-03-10 | 2011-09-21 | 英特尔公司 | 大气散射的硬件加速仿真 |
CN102194246B (zh) * | 2010-03-10 | 2014-08-13 | 英特尔公司 | 大气散射的硬件加速仿真 |
US9495797B2 (en) | 2010-03-10 | 2016-11-15 | Intel Corporation | Hardware accelerated simulation of atmospheric scattering |
US9836877B2 (en) | 2010-03-10 | 2017-12-05 | Intel Corporation | Hardware accelerated simulation of atmospheric scattering |
CN101882323A (zh) * | 2010-05-19 | 2010-11-10 | 北京航空航天大学 | 基于高度图的微结构表面全局光照实时绘制方法 |
CN102592306A (zh) * | 2010-10-21 | 2012-07-18 | 汤姆森许可贸易公司 | 虚拟环境中遮挡的估计方法 |
CN102592305A (zh) * | 2011-09-06 | 2012-07-18 | 浙江大学 | 自适应的屏幕空间环境光遮蔽方法 |
CN107633544A (zh) * | 2016-07-14 | 2018-01-26 | 网易(杭州)网络有限公司 | 环境光遮蔽的处理方法及装置 |
CN106780709A (zh) * | 2016-12-02 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 一种确定全局光照信息的方法及装置 |
CN108257204A (zh) * | 2016-12-28 | 2018-07-06 | 福建省天奕网络科技有限公司 | 运用于Unity引擎的顶点色绘制烘焙方法及系统 |
CN108257204B (zh) * | 2016-12-28 | 2021-06-08 | 福建省天奕网络科技有限公司 | 运用于Unity引擎的顶点色绘制烘焙方法及系统 |
CN107730578A (zh) * | 2017-10-18 | 2018-02-23 | 广州爱九游信息技术有限公司 | 光环境遮蔽图的渲染方法、生成效果图的方法和设备 |
CN107730578B (zh) * | 2017-10-18 | 2021-07-23 | 阿里巴巴(中国)有限公司 | 光环境遮蔽图的渲染方法、生成效果图的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101615300B (zh) | 2011-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101615300B (zh) | 一种屏幕空间微结构表面对象环境光遮挡方法 | |
CN103700143B (zh) | 一种基于gpu多遍绘制的三维动态海洋模拟方法 | |
US20100020080A1 (en) | Image generation system, image generation method, and information storage medium | |
CN102768765A (zh) | 实时点光源软阴影渲染方法 | |
CN101527051B (zh) | 基于大气散射原理对天空进行渲染的方法和装置 | |
CN101241603A (zh) | 一种电磁场强度实时可视化方法 | |
CN102915559A (zh) | 一种基于三维点云的实时透明物体gpu并行生成方法 | |
CN103679802A (zh) | 基于屏幕空间的sph流体表面实时绘制方法 | |
CN104407521A (zh) | 一种实现水下机器人实时仿真的方法 | |
CN105205861A (zh) | 基于Sphere-Board的树木三维可视化模型实现方法 | |
CN103700134A (zh) | 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法 | |
CN101441774B (zh) | 基于图像映射空间的动态场景实时双面折射绘制方法 | |
CN110400366A (zh) | 一种基于OpenGL的实时洪水灾害可视化仿真方法 | |
CN112365572B (zh) | 一种基于曲面细分的渲染方法及其相关产品 | |
CN103247070A (zh) | 一种基于预计算转移张量的交互重光照真实感渲染方法 | |
CN102867336B (zh) | 一种基于热力学模型的固体燃烧过程模拟方法 | |
CN104751509A (zh) | 一种实时体积雾化效果算法 | |
CN103440684B (zh) | 一种将球谐光照技术应用于面绘制的方法 | |
US7710419B2 (en) | Program, information storage medium, and image generation system | |
KR101208826B1 (ko) | 깊이 텍스처의 등고선을 기반으로 한 실시간 다각형 앰비언트 오클루전 방법 | |
US7724255B2 (en) | Program, information storage medium, and image generation system | |
CN117333598B (zh) | 一种基于数字场景的3d模型渲染系统及方法 | |
Ding et al. | Real-time rain and snow rendering | |
Hongdi et al. | Design and Implementation of A High-Performance Rendering Algorithm for Large Terrain Systems based on GPU Parallel Computing | |
Xiao et al. | Real-time simulation of fireworks based on GPU and particle system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111207 Termination date: 20160702 |
|
CF01 | Termination of patent right due to non-payment of annual fee |