CN101458823B - 一种虚拟舞台环境下实时光照绘制的方法 - Google Patents

一种虚拟舞台环境下实时光照绘制的方法 Download PDF

Info

Publication number
CN101458823B
CN101458823B CN2008102404061A CN200810240406A CN101458823B CN 101458823 B CN101458823 B CN 101458823B CN 2008102404061 A CN2008102404061 A CN 2008102404061A CN 200810240406 A CN200810240406 A CN 200810240406A CN 101458823 B CN101458823 B CN 101458823B
Authority
CN
China
Prior art keywords
light source
shadow
real
shade
light
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.)
Expired - Fee Related
Application number
CN2008102404061A
Other languages
English (en)
Other versions
CN101458823A (zh
Inventor
郝爱民
朱磊
阎峻
何冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN2008102404061A priority Critical patent/CN101458823B/zh
Publication of CN101458823A publication Critical patent/CN101458823A/zh
Application granted granted Critical
Publication of CN101458823B publication Critical patent/CN101458823B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种虚拟舞台环境下的实时光照绘制方法,主要包括以下两个部分:结合Deferred Shading技术和聚类的方法进行优化,通过采用3D纹理对介质属性信息进行组织,并将多光源聚类成虚拟光源,可以实时绘制出舞台多光源光照下的参与介质;结合shadowmap、shadow volume和ray marching等技术,提出了一种混合的适用于室内场景体阴影实时绘制的方法。实验结果证明,本发明可以较为真实地模拟虚拟舞台环境下的复杂光照效果,同时具有实时性的优点。

Description

一种虚拟舞台环境下实时光照绘制的方法
技术领域
本发明涉及一种虚拟舞台环境下实时光照绘制的方法。
背景技术
在虚拟环境系统中,真实性和实时性是构造虚拟环境面临的两大挑战。真实性强调系统是否能够构建一个逼真的自然环境,使用户忽略计算机系统,达到身处自然环境中的感受。实时性则强调系统是否能够与用户进行实时随机交互,从而更好为各种应用服务。
下面简单介绍一下近年来国内外专家对于虚拟舞台多光源光照下的参与介质和室内环境体阴影绘制的一些研究现状。
光照在参与介质中的传输主要受以下三个过程的影响:(1)吸收(Absorption):由于光能转化为热能等其它形式的能量导致光照在传播过程中能量减少。(2)发射(Emission):介质中的粒子由于发光等因素从而增加光照在传播过程中能量。(3)散射(Scattering):光线由于与介质中的粒子发生碰撞从而导致光线向不同的方向散射发出。散射包括内散射(in-scattering)和外散射(out-scattering),其中内散射增加光照在传播过程中的能量而外散射则减少光照在传播过程中的能量。
基于以上过程,Blinn[提出了可以应用于真实感图形绘制领域的模拟光照传输过程中光照量变化的基本公式【参考文献Blinn JF(1982)“Light reflection functions forsimulation of clouds and dusty surfaces”,In:Computer Graphics(ACM SIGGRAPH’82Proceedings)16(3):21-29】:
L ( x ) = τ ( p , x ) L ( p ) + ∫ p x τ ( u , x ) ( σ a ( x ) + σ s ( x ) ) J ( u ) du
J ( u ) = σ s ( x ) σ a ( x ) + σ s ( x ) ∫ S L ( x , ω i ) ρ ( ω o , ω i ) d σ ω i - - - ( 1 )
公式(1)中,σa(x)和σs(x)分别表示吸收系数和散射系数,ρ(ωo,ωi)表示相位函数,ds表示视点到模型表面像素点的距离。 τ ( p , x ) = exp [ - ∫ p x ( σ a ( u ) + σ s ( u ) ) du ] 称作光学厚度(Opticalthickness),表示光照值从p到x经过参与介质消散后的剩余光照比例。国内外专家学者对参与介质的绘制模拟大都基于求解此基本公式。
体阴影绘制的研究最开始是在离线渲染的情况下进行的,典型的绘制方法是采用蒙特卡洛光线跟踪方法或光子映射方法来进行散射光照值的累加计算,以此达到体阴影的模拟。这些绘制方法的计算量巨大,无法达到实时性。
随着图形硬件的发展,研究人员提出了许多可交互的体阴影绘制方法。这些方法大致可以分为两类:基于Shadow Volume的方法和基于Ray Marching的方法。基于Shadow Volume的方法【参考文献[1]V.Biri,D.Arques,and S.Michelin.“Real time rendering ofatmospheric scattering and volumetric shadows”,in:Journal of WSCG,14:65-72,2006.[2]R.Mech.“Hardware-accelerated real-time rendering of gaseousphenomena”,in:Journal of Graphics Tools,6(3):1-16,2001.[3]R.James.“Graphics Programming Methods,chapter True volumetric shadows”,in:pages353-366.Charles River Media,2003.】需要判定出光线处于阴影锥区域中的片段,而在判定这些片段的过程中需要在GPU中渲染出从后到前的所有阴影面片,因此引入了排序的计算量。基于Ray Marching的方法【参考文献[1]Y.Dobashi,T.Yamamoto,and T.Nishita.“Interactive rendering of atmospheric scattering effects using graphicshardware”,in:In Graphics Hardware,pages 99-107,2002.[2]T.Imagire,H.Johan,N.Tamura,and T.Nishita.“Anti-aliased and real-time rendering of scenes withlight scattering effects”,in:The Visual Computer,23(9):935-944,2007.】原理是对由视点到模型表面像素点的光线进行采样,判定每一采样点是否被光源照射并计算散射光照值,最后通过累加散射光照值得到体阴影的绘制效果。此类方法由于需要逐步计算光照值,因此计算量也较大,但如果减少采样点的数目,绘制得到的效果也就并不准确。
发明内容
本发明的技术解决问题是:克服了现有技术的不足,提供一种可以比较真实的模拟虚拟舞台环境下多光源光照效果的绘制方法,并且保证了其实时性。
本发明的技术解决方案为:虚拟舞台环境下实时光照的绘制方法,步骤如下:
(1)建立一棵光源层次树,并利用该光源层次树对虚拟舞台环境下的多光源进行聚类;实时绘制出多光源光照下的参与介质,所述的实时绘制方法采用了两遍绘制流程:第一遍绘制时,利用帧缓存对象FBO将参与介质的信息,包括密度、吸收系数或散射系数属性保存在一张3D纹理中;第二遍绘制从该3D纹理中读取保存的介质信息进行绘制;
(2)结合shadow map、shadow volume和ray marching,实时绘制出室内场景参与介质的体阴影,该部分绘制包括以下五个步骤:
a.从步骤(1)中的多个光源出发绘制整个场景深度的shadow map,即阴影图,将其保存至帧缓存对象FBO中;将场景中遮挡物的后表面深度信息的shadow map保存至另一帧缓存对象FBO中;
b.从视点出发计算并绘制shadow volume,即阴影锥,将其保存至帧缓存对象FBO中,帧缓存对象FBO保存视点到shadow volume的最前阴影面片和最后阴影面片的距离;
c.在不考虑参与介质散射作用的情况下,绘制整个场景并将颜色、法向、深度值信息保存至帧缓存对象FBO中;
d.考虑参与介质的散射作用,计算整个场景每一像素具有的散射光照值;
e.合并步骤c和d中生成的结果,采取基于Deferred Shading技术作为优化策略,生成最终的渲染效果。
所述的步骤(1)中本发明使用八叉树这一数据结构来建立一棵光源层次树,并利用该光源层次树对虚拟舞台环境下的多光源进行聚类,具体聚类方法为:首先通过对光源空间进行空间八叉剖分,即可得到该八叉树的八个孩子节点,然后判断各孩子节点的包围盒中是否有真实光源,若有,则继续对其进行剖分,否则停止剖分。
所述的步骤(1)中第一遍绘制时,利用帧缓存对象FBO将参与介质的信息,包括密度、吸收系数或散射系数属性保存在一张3D纹理中的方法为:
a.将介质空间分成宽width*高height*深depth个的小格,申请的相应3D纹理的大小要与介质空间的小格数相对应,每一小格介质信息,包括密度、吸收/散射系数属性可以分别保存至3D纹理每一片元的不同通道中;
b.将参与介质空间分成深depth个宽width*高height的二维面片,循环深depth个次,每次将不同面片的介质属性信息写入到帧缓存对象FBO的对应层次中,最后加以融合,即可得到保存介质属性的3D纹理。
所述步骤(2)b中在确定shadow volume的最前阴影面片和最后阴影面片之前,需要首先构造出该shadow volume的所有阴影面片,所述的构造出该shadow volume的所有阴影面片的方法为:首先确定遮挡体shadow caster的轮廓边Silhouette;然后从轮廓边Silhouette出发,利用Geometry Shader构建shadow volume的所有阴影面片。
所述步骤(2)d中在计算每一像素具有的散射光照值时,需要分情况进行计算:对于与视点的连线并未穿过shadow volume的像素,采用解析方法进行散射光照值的计算;对于与视点的连线穿过shadow volume的像素,从最后面阴影片到最前面阴影片进行raymarching,采用之前保存的shadow map确定shadow volume中的某段区域是否被光照,若是,则采用解析方法进行散射光照值的计算,若不是,则基于之前生成的shadow map,采用光照衰减函数来计算该区域的散射光照值。
本发明与现有技术相比的优点在于:
首先,本发明提出的参与介质实时绘制方法采用了两遍绘制的流程:第一遍绘制时,通过采用FBO技术将参与介质的属性保存在一张3D纹理中;第二遍绘制分为两部分,读取3D纹理中存储的信息,进行Air Light(实时光晕)和Surface Light(参与介质)的计算。在计算Air Light时,通过变换光照传输公式,查找二维特征函数数值表来简化求解过程,从而加快了绘制速度;在计算Surface Light时,采用基于物理的模拟方法,通过求解光照在参与介质中的基本传输公式来实现对参与介质的实时绘制。这种两遍绘制的优势在于利用基于FBO的延时着色技术,减少了不必要的渲染,提高了运算部件的利用率。此外,在多光源绘制的过程中,使用了利用光源层次树对多光源进行聚类的方法,减少了影响整个光照场景中光源数目(实际上是将多个真实光源合并成为虚拟光源),提高了绘制速度。
其次,本发明结合了Shadow Map、Shadow Volume和Ray Marching等传统技术,提出了一种混合的适用于室内场景体阴影实时绘制的方法,该方法用shadow map保存深度信息,用shadow volume保存阴影面片,并且考虑了参与介质的散射作用,进行光照值得计算,实现了对体阴影的仿真。同时对体阴影的绘制步骤中同样使用了基于FBO的延时着色技术,保证了绘制的实时性。
综上所述,本发明提出的虚拟舞台环境下实时光照的绘制方法不仅保证了绘制的逼真程度,而且解决了传统方法无法做到的实时性问题,可以应用于虚拟舞台环境下多光源光照效果的实时仿真。
附图说明
图1为本发明方法的流程图;
图2为基于3D纹理的参与介质实时绘制算法流程;
图3为采用FBO分层绘制技术将介质属性信息绘制到3D纹理;
图4为Air Light的计算;
图5为Surface Light的计算;
图6为shadow volume阴影面片的构建过程,其中(a)为示意图,(b)为流程图;
图7为本发明方法生成的shadow volume;
图8为本发明方法的绘制效果图。
具体实施方式
如图1所示,本发明的具体实施方法如下:
(1)建立一棵光源层次树,并利用该光源层次树对虚拟舞台环境下的多光源进行聚类。
为了实现虚拟舞台环境下多光源光照效果的实时绘制,本发明中使用了对多光源进行聚类的方法。其基本原理是建立一棵光源层次树,根据该光源层次树将各个光源聚类为几个大的虚拟光源,来对参与介质和场景进行渲染,从而减少了影响舞台场景的光源数目,提高了绘制速度。
本发明使用了八叉树的数据结构来定义所使用的光源层次树,所设计的光源层次树中的结点包含以下内容:包围盒、所在层次、包含光源数(含孩子节点的虚拟光源)、是否是虚拟光源等。
下面简单介绍一下构建并使用光源树的方法。首先,构造光源树的一个根节点,并用该结点初始化一棵八叉树结构的光源层次树。同时在对光源进行初始化时将光源的位置、法线、颜色等信息存入一张光源列表中,然后将该列表传入光源层次树,并依此对光源空间进行划分。即可通过设置不同的层次参数来对光源树进行聚合,从而达到聚合渲染效果,提高运算速度的目的。
(2)实时绘制出多光源光照下的参与介质,所述的实时绘制方法采用了两遍绘制流程:第一遍绘制时,利用帧缓存对象FBO将参与介质的信息,包括密度、吸收系数或散射系数属性保存在一张3D纹理中;第二遍绘制从该3D纹理中读取保存的介质信息。
在虚拟舞台场景中参与介质的绘制中,本发明采用了两遍绘制流程:如图2所示,在第一遍绘制时,通过采用FBO技术将参与介质的密度、吸收/散射系数等属性保存在一张3D纹理中;第二遍绘制从3D纹理中读取参与介质的属性信息,同时进行Air Light和SurfaceLight的计算。在计算Air Light时,通过变换光照传输公式,查找二维特征函数数值表来简化求解过程,从而加快了绘制速度;在计算Surface Light时,采用基于物理的模拟方法,通过求解光照在参与介质中的基本传输公式来实现对参与介质的实时绘制。
本发明用3D纹理保存参与介质的密度、吸收/散射系数等属性,通过计算模型表面各片元像素的颜色来模拟出场景的雾化效果,各片元像素的最终颜色受模型表面材质、场景空间中空气介质干扰等条件的影响。如图3所示,本发明将参与介质空间分成width*height*depth份的小格,申请的相应3D纹理的大小要与介质空间的小格数相对应,每一小格介质的密度、吸收/散射系数等属性可以分别保存至3D纹理每一片元的不同通道中。例如,一张256*256*256大小的RGBA16F格式大小的3D纹理,可以在其Red通道中保存密度信息,Blue通道中保存吸收系数属性,Green通道中保存散射系数属性,Alpha通道作为备用存储通道。本文方法基于GPU实现参与介质属性信息的保存,但是到目前为止,仅有微软的DirectX10 SDK支持在shader中对3D纹理进行写入,而目前仅有Windows Vista系统支持DirectX10,因此对于大多数工作在XP操作系统下的开发人员来说,无法直接在shader中对3D纹理进行编辑。本文结合FBO(Frame Buffer Object)技术,采取分片写入的方法实现3D纹理的写入操作。
FBO虽然在shader中仅支持2D纹理的写入,但是其可以绑定3D纹理。可以将参与介质空间分成depth个width*height的二维面片,循环depth次,每次将不同面片的介质属性信息写入到FBO的对应层次中,最后加以融合,即得到保存介质属性的3D纹理。对于不同层次的二维面片,可以采用Perlin噪声等函数随机存放不同的介质密度、吸收/散射系数等属性。
采用3D纹理技术会占用较大的显存空间,但是本发明主要研究范围定位于室内虚拟场景(虚拟舞台),场景空间较小,因此最多仅需要采用512*512*512大小的3D纹理即可满足需求,目前大多数的主流显卡均可满足这一显存要求。
本发明在实现光晕的实时绘制过程,主要是Air Light的求解过程。如图4所示,AirLight由两部分组成,一部分是光源通过参与介质的消散(吸收/外散射)作用直接进入到视点的光照值Ld,另一部分是光源通过参与介质的散射(内散射)作用进入到视点的光照值Ls
Ld可以通过以下公式直接求得:
L d = I 0 e - ( σ a + σ s ) D sv - - - ( 2 )
其中为σa吸收系数,σs为散射系数,Dsv为视点到光源的距离。
Ls的求解公式如下:
L s = ∫ 0 D vp ( σ a + σ s ) ρ ( α ) I 0 e - ( σ a + σ s ) d d 2 e - ( σ a + σ s ) x dx - - - ( 3 )
其中ρ(α)为相位函数,Dvp为视点到模型表面顶点的距离。
根据余弦公式 d = D sv 2 + x 2 - 2 x D sv cos θ , 再令T*=(σas)D*、t=(σas)x、z=t-Tsvcosθ,公式可以转化为
L s = ( σ a + σ s ) 2 I 0 4 π e - T sv cos θ ∫ - T sv cos θ T vp - T sv cos θ e - z - z 2 + T sv 2 sin 2 θ T sv 2 sin 2 θ + z 2 dz - - - ( 4 )
再令 A 0 = ( σ a + σ s ) 2 I 0 e - T sv cos θ 2 π T sv sin θ , A1=Tsvsinθ,Ls的最终求解公式可变为
L s = A 0 ∫ θ / 2 π 4 + 1 2 arctan T vp - T sv cos θ T sv sin θ exp [ - A 1 tan ζ ] dζ - - - ( 5 )
在这里,引入一个特征函数 F ( u , v ) = ∫ 0 v exp [ - u tan ζ ] dζ , 对于每一对(u,v),此函数具有唯一的函数值。式可以转换为
L s = A 0 [ F ( A 1 , π 4 + 1 2 arctan T vp - T sv cos θ T sv sin θ ) - F ( A 1 , θ 2 ) ] - - - ( 6 )
因此,可以预先将特征函数F(u,v)的函数值计算后加以保存,组织成1张2D纹理形式的查找表,在shader中计算Ls时,只需依据索引查找该2D纹理,即可获得任意位置的Ls值。
现在讨论Surface Light的计算过程。如图5所示,由光照在参与介质中传输的基本公式(公式7)可知,最终传输到视点的光照值由两部分组成:一部分是模型表面上顶点反射的光照值经消散作用后剩余的光照值,另一部分是在光线在传播过程中受到参与介质的内散射作用而增加的光照值(积分项)。
L ( x ) = τ ( p , x ) L ( p ) + ∫ p x τ ( u , x ) ( σ a ( x ) + σ s ( x ) ) J ( u ) du
J ( u ) = σ s ( x ) σ a ( x ) + σ s ( x ) ∫ S L ( x , ω i ) ρ ( ω o , ω i ) d σ ω i - - - ( 7 )
其中, τ ( p , x ) = exp [ - ∫ p x ( σ a ( u ) + σ s ( u ) ) du ] 称作光学厚度(Optical thickness),表示光照值从p到x经参与介质消散后的剩余光照比例。
本发明采用Phone光照模型计算模型表面上顶点反射的光照值L(p),为了提高速度,在计算经介质消散作用后剩余光照值的过程中,对于光学厚度τ(p,x)并未采取积分求解,而是将消散系数σa(u)+σs(u)看作是常量,其中u=(p+x)/2。
在求解光线因内散射作用而增加的光照值(公式6的积分项)时,充分利用shader 3.0的强大编程特性,实现光照计算中所涉及到的路径积分,在积分过程中可以通过访问生成好的3D纹理,来获取参与介质中任意一点的密度、消散系数等属性信息。由于3D纹理中保存的参与介质的属性信息可以是任意取值的,因此通过计算公式的积分项,就可以得到非均匀的参与介质的绘制效果。
(3)结合shadow map、shadow volume和ray marching,实时绘制出室内场景参与介质的体阴影,该部分绘制包括以下五个步骤:
a.从步骤(1)中的多个光源出发绘制整个场景深度的shadow map,即阴影图,将其保存至帧缓存对象FBO中;将场景中遮挡物的后表面深度信息的shadow map保存至另一帧缓存对象FBO中。
b.从视点出发计算并绘制shadow volume,即阴影锥,将其保存至帧缓存对象FBO中,帧缓存对象FBO保存视点到shadow volume的最前阴影面片和最后阴影面片的距离。
如上述体阴影绘制步骤所述,本发明需要获得视点到shadow volume的最前阴影面片和最后阴影面片的距离,为了方便后续绘制流程的使用,采用OpenGL的最新扩展GL_TEXTURE_2D_ARRAY_EXT(二维纹理数组)来保存视点到shadow volume的最前阴影面片和最后阴影面片的距离信息。
在确定shadow volume的最前阴影面片和最后阴影面片之前,首先需要构造出该shadowvolume的所有阴影面片,通过两大步骤完成这一过程:确定遮挡体(shadow caster)的轮廓边(Silhouette);从轮廓边出发,利用Geometry Shader构建shadow volume的所有阴影面片。
在单光源情况下,阴影面片的构建过程如图6所示。首先,根据预处理得到的遮挡体数据结构判定silhouette边,然后从光源处沿silhouette边向远离光源的方向投射四边形,形成最终的shadow volume阴影面片。
本发明采用二维纹理数组来保存视点到shadow volume前向、后向阴影面的距离。在Geometry Shader程序中,通过判断视点观察方向与新生成的阴影面的法向之间的夹角大小来确定该阴影面的朝向性;在Fragment Shader程序中,根据阴影面的朝向性,进行深度测试,以此确定shadow volume的最前、最后阴影面并保存视点到此两类阴影面的距离。
c.在不考虑参与介质散射作用的情况下,绘制整个场景并将颜色、法向、深度值信息保存至帧缓存对象FBO中。
d.考虑参与介质的散射作用,计算整个场景每一像素具有的散射光照值。
在计算每一像素具有的散射光照值时,需分情况计算,如图7所示:对于与视点的连线并未穿过shadow volume的像素(如图7中的q点),采用Sun提供的解析方法【参考文献Sun,B.,Ramamoorthi,R.,Narasimhan,S.G.,and Nayar,S.K.,“A practical analyticsingle scattering model for real time rendering”,In Proceedings of the SIGGRAPH’05,ACM Press,New York,NY,2005,pp.1040-1049.】进行散射光照值的计算;对于与视点的连线穿过shadow volume的像素(如图7中的p点),从最后面阴影片到最前面阴影片进行ray marching,采用之前保存的shadow map确定shadow volume中的某段区域是否被光照。若是则采用Sun提供的解析方法进行散射光照值的计算;若否则基于之前生成的shadow map,采用光照衰减函数计算该区域的散射光照值。
此外,在真实场景中,处于shadow volume中且被遮挡光照的介质空间点实际上也会受到光照的内散射作用,但是一般的体阴影绘制方法并未考虑这一作用,采用光照衰减函数G(d)来计算光照经物体遮挡衰减后,传输到介质空间中被遮挡点的剩余光照值。
La=L0*G(d)=L0*a*(1-e-k*d)       (8)
上式中L0表示光源光照值经过参与介质的消射作用后传输到被遮挡的介质空间点的光照值,d表示被遮挡的介质空间点沿照射光线方向到遮挡物后表面的距离。由于本发明已经在shadow map中保存了遮挡物后表面的深度信息,因此可以方便地计算出被遮挡点沿照射光线到遮挡物后表面的距离。
e.合并步骤c和d中生成的结果,采取基于Deferred Shading技术作为优化策略,生成最终的渲染效果。
上述步骤中使用了基于FBO的延时着色技术。传统的着色方法要为世界空间中的每个顶点(Gourand着色)或者光栅化后插值得到的每个片元(Phong着色)计算其光照的颜色。对于多光源的场景,要为每个光源做一个光照计算并把计算结果叠加到一起,得到场景的最终颜色值。实际上在一个场景中,存在许多“无效”片元,将会在着色之后的各个测试中被剔除,例如深度测试将会剔除“看不见”的片元。传统的着色方法,对“无效”片元也会进行着色计算。这些计算也是“无效”的,造成了计算资源的浪费。延时着色方法中,着色计算是在片元通过各种测试,最终形成了屏幕上的像素之后进行的,避免了“无效”计算。随着图形硬件对多重渲染目标(Multiple Render Targets)技术的支持,延时着色技术在工业界得到了广泛的应用。本发明利用NVIDIA公司的EXT_framebuffer_object扩展,使用多重渲染到纹理(Multiple Render To Texture)技术,从视点位置出发绘制整个场景,把场景中每个片元的颜色信息和位置信息分别存入两张4通道32位浮点数的纹理中。
最后将本发明的所绘制的参与介质与其阴影图进行融合,渲染效果如图8所示,其中(a)是对光晕及参与介质的渲染效果,(b)是对参与介质体阴影的渲染效果,(c)和(d)则分别是对多光源光照场景的远景和近景的渲染效果。
本发明未详细阐述的部分属本领域技术人员公知技术。

Claims (2)

1.虚拟舞台环境下实时光照绘制的方法,其特征在于步骤如下:
(1)建立一棵光源层次树,并利用该光源层次树对虚拟舞台环境下的多光源进行聚类;实时绘制出多光源光照下的参与介质,所述的实时绘制方法采用了两遍绘制流程:第一遍绘制时,利用帧缓存对象FBO将参与介质的信息,包括密度、吸收系数和散射系数属性保存在一张3D纹理中;第二遍绘制从该3D纹理中读取保存的介质信息进行绘制;
(2)结合shadow map、shadow volume和ray marching,实时绘制出室内场景参与介质的体阴影,该部分绘制包括以下五个步骤:
a.从步骤(1)中的多个光源出发绘制整个场景深度的shadow map,即阴影图,将其保存至帧缓存对象FBO中;将场景中遮挡物的后表面深度信息的shadow map保存至另一帧缓存对象FBO中;
b.从视点出发计算并绘制shadow volume,即阴影锥,将其保存至帧缓存对象FBO中,帧缓存对象FBO保存视点到shadow volume的最前阴影面片和最后阴影面片的距离;
c.在不考虑参与介质散射作用的情况下,绘制整个场景并将颜色、法向、深度值信息保存至帧缓存对象FBO中;
d.考虑参与介质的散射作用,计算整个场景每一像素具有的散射光照值;
e.合并步骤c和d中生成的结果,采取基于Deferred Shading技术作为优化策略,生成最终的渲染效果;
所述的步骤(1)中使用八叉树这一数据结构来建立一棵光源层次树,并利用该光源层次树对虚拟舞台环境下的多光源进行聚类,具体聚类方法为:首先通过对光源空间进行空间八叉剖分,即可得到该八叉树的八个孩子节点,然后判断各孩子节点的包围盒中是否有真实光源,若有,则继续对其进行剖分,否则停止剖分;
所述使用八叉树的数据结构来定义所使用的光源层次树的方法为:首先构造光源树的一个根节点,并用该结点初始化一棵八叉树结构的光源层次树,同时在对光源进行初始化时将光源的位置、法线、颜色信息存入一张光源列表中,然后将该列表传入光源层次树,并依此对光源空间进行划分,即可通过设置不同的层次参数来对光源树进行聚合,从而达到聚合渲染效果,提高运算速度的目的;
所述的步骤(1)中第一遍绘制时,利用帧缓存对象FBO将参与介质的信息,包括密度、吸收系数和散射系数属性保存在一张3D纹理中的方法为:
(1.1)将介质空间分成宽width*高height*深depth个的小格,申请的相应3D纹理的大小要与介质空间的小格数相对应,每一小格介质信息,包括密度、吸收/散射系数属性分别保存至3D纹理每一片元的不同通道中;
(1.2)将参与介质空间分成深depth个宽width*高height的二维面片,循环深depth个次,每次将不同面片的介质属性信息写入到帧缓存对象FBO的对应层次中,最后加以融合,即可得到保存介质属性的3D纹理。
所述步骤(2)d中,在计算整个场景每一像素具有的散射光照值时,需要分情况进行计算:对于与视点的连线并未穿过shadow volume的像素,采用解析方法进行散射光照值的计算;对于与视点的连线穿过shadow volume的像素,从最后面阴影片到最前面阴影片进行ray marching,采用之前保存的整个场景深度的shadow map确定shadow volume中的某段区域是否被光照,若是,则采用解析方法进行散射光照值的计算,若不是,则基于之前生成的后表面深度信息的shadow map,采用光照衰减函数来计算该区域的散射光照值,所述另一帧缓存对象中保存的后表面深度信息的shadow map用来计算被遮挡点沿照射光线到遮挡物后表面的距离。
2.根据权利要求1所述的虚拟舞台环境下实时光照绘制的方法,其特征在于:所述步骤(2)b中在确定shadow volume的最前阴影面片和最后阴影面片之前,需要首先构造出该shadow volume的所有阴影面片,所述的构造出该shadow volume的所有阴影面片的方法为:首先确定遮挡体shadow caster的轮廓边Silhouette;然后从轮廓边Silhouette出发,利用Geometry Shader构建shadow volume的所有阴影面片。
CN2008102404061A 2008-12-19 2008-12-19 一种虚拟舞台环境下实时光照绘制的方法 Expired - Fee Related CN101458823B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102404061A CN101458823B (zh) 2008-12-19 2008-12-19 一种虚拟舞台环境下实时光照绘制的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102404061A CN101458823B (zh) 2008-12-19 2008-12-19 一种虚拟舞台环境下实时光照绘制的方法

Publications (2)

Publication Number Publication Date
CN101458823A CN101458823A (zh) 2009-06-17
CN101458823B true CN101458823B (zh) 2011-08-31

Family

ID=40769667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102404061A Expired - Fee Related CN101458823B (zh) 2008-12-19 2008-12-19 一种虚拟舞台环境下实时光照绘制的方法

Country Status (1)

Country Link
CN (1) CN101458823B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335996A (zh) * 2014-06-30 2016-02-17 北京畅游天下网络技术有限公司 一种光线照射效果的计算方法和装置

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495797B2 (en) * 2010-03-10 2016-11-15 Intel Corporation Hardware accelerated simulation of atmospheric scattering
CN103155004B (zh) * 2010-09-01 2016-05-18 玛斯柯有限公司 通过图像渲染来演示照明方案的设备、系统和方法
CN102074041B (zh) * 2010-12-21 2012-10-10 长春理工大学 一种由镜面反射产生的3d虚拟场景面焦散效果的绘制方法
CN102542613A (zh) * 2010-12-31 2012-07-04 新奥特(北京)视频技术有限公司 一种三维图文编辑方法
CN103646427A (zh) * 2013-12-16 2014-03-19 北京经纬恒润科技有限公司 一种采集图像数据的方法及装置
CN103679818B (zh) * 2013-12-17 2016-08-17 南京大学 一种基于虚拟面光源的实时场景绘制方法
CN104102146B (zh) * 2014-07-08 2016-09-07 苏州乐聚一堂电子科技有限公司 虚拟伴舞通用控制系统
CN104658029B (zh) * 2015-01-29 2017-06-20 浙江传媒学院 基于mcmc的镜面光线的渲染方法
CN105825545B (zh) * 2016-03-29 2018-06-19 浙江大学 基于虚拟光源和自适应稀疏矩阵还原的全局光照绘制方法
CN105869205B (zh) * 2016-04-20 2020-05-19 曹屹 一种实时渲染方法和移动终端
CN106534835B (zh) * 2016-11-30 2018-08-07 珠海市魅族科技有限公司 一种图像处理方法以及装置
US10515466B2 (en) 2017-06-09 2019-12-24 Sony Interactive Entertainment Inc. Optimized deferred lighting in a foveated rendering system
JP6802393B2 (ja) * 2017-06-09 2020-12-16 株式会社ソニー・インタラクティブエンタテインメント 中心窩レンダリングシステムにおける、遅延ライティングの最適化、パーティクルの中心窩適応、及びシミュレーションモデル
CN112587915A (zh) * 2021-01-05 2021-04-02 网易(杭州)网络有限公司 光照效果呈现方法、装置、存储介质及计算机设备
CN114283245B (zh) * 2022-03-04 2022-06-14 中科计算技术创新研究院 基于三维模型层次化隐式场的渲染方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6930685B1 (en) * 1999-08-06 2005-08-16 Canon Kabushiki Kaisha Image processing method and apparatus
CN101271587A (zh) * 2008-02-25 2008-09-24 北京理工大学 一种基于过渡光贴图的光照和阴影绘制方法
EP1990776A2 (en) * 2007-05-08 2008-11-12 DreamWorks Animation LLC System and method for rendering computer graphics utilizing a shadow illuminator

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6930685B1 (en) * 1999-08-06 2005-08-16 Canon Kabushiki Kaisha Image processing method and apparatus
EP1990776A2 (en) * 2007-05-08 2008-11-12 DreamWorks Animation LLC System and method for rendering computer graphics utilizing a shadow illuminator
CN101271587A (zh) * 2008-02-25 2008-09-24 北京理工大学 一种基于过渡光贴图的光照和阴影绘制方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335996A (zh) * 2014-06-30 2016-02-17 北京畅游天下网络技术有限公司 一种光线照射效果的计算方法和装置
CN105335996B (zh) * 2014-06-30 2018-05-01 北京畅游天下网络技术有限公司 一种光线照射效果的计算方法和装置

Also Published As

Publication number Publication date
CN101458823A (zh) 2009-06-17

Similar Documents

Publication Publication Date Title
CN101458823B (zh) 一种虚拟舞台环境下实时光照绘制的方法
Cerezo et al. A survey on participating media rendering techniques
CN106570929B (zh) 一种动态体积云的构建与绘制方法
US11302056B2 (en) Techniques for traversing data employed in ray tracing
US20080143720A1 (en) Method for rendering global illumination on a graphics processing unit
JP2009525526A (ja) ビーム放出によって仮想画像を合成するための方法
CN103679802A (zh) 基于屏幕空间的sph流体表面实时绘制方法
CN107093207A (zh) 一种基于gpgpu的天然气泄漏扩散的动态可视化方法
CN101441774B (zh) 基于图像映射空间的动态场景实时双面折射绘制方法
CN102831634B (zh) 一种高效精确的通用软阴影生成方法
Eisemann et al. Efficient real-time shadows
CN113034657B (zh) 游戏场景中光照信息的渲染方法、装置及设备
Krüger et al. Interactive Screen-Space Accurate Photon Tracing on GPUs.
Biri et al. Real Time Animation of Realistic Fog
Ignatenko et al. A Real-Time 3D Rendering System with BRDF Materials and Natural Lighting
Szirmay‐Kalos et al. Specular effects on the gpu: State of the art
Ortegren et al. Clustered shading: assigning lights using conservative rasterization in directx 12
US20240009226A1 (en) Techniques for traversing data employed in ray tracing
Zhang et al. Thickness‐aware voxelization
Bittner The Current State of the Art in Real-Time Cloud Rendering With Raymarching
Guo et al. Efficient Simulation of Light Scattering Effects in the Atmosphere.
Li et al. Stage Lighting Simulation Based on Epipolar Sampling
Li et al. A new approach for construction and rendering of dynamic light shaft
Gaitatzes Interactive diffuse global illumination discretization methods for dynamic environments
Favorskaya et al. Large scene rendering

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110831

Termination date: 20131219