CN101882323A - 基于高度图的微结构表面全局光照实时绘制方法 - Google Patents

基于高度图的微结构表面全局光照实时绘制方法 Download PDF

Info

Publication number
CN101882323A
CN101882323A CN 201010182081 CN201010182081A CN101882323A CN 101882323 A CN101882323 A CN 101882323A CN 201010182081 CN201010182081 CN 201010182081 CN 201010182081 A CN201010182081 A CN 201010182081A CN 101882323 A CN101882323 A CN 101882323A
Authority
CN
China
Prior art keywords
microstructure
micro
illumination
local peak
structure surface
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
Application number
CN 201010182081
Other languages
English (en)
Other versions
CN101882323B (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 CN2010101820813A priority Critical patent/CN101882323B/zh
Publication of CN101882323A publication Critical patent/CN101882323A/zh
Application granted granted Critical
Publication of CN101882323B publication Critical patent/CN101882323B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

本发明提出一种基于高度梯度图分析的全局光照实时绘制方法。给出面向微结构表面对象实时绘制的全局光照计算模型,将光照计算近似分解为环境光入射、光源直接光照和一次交互漫反射等三个分量的计算。定义微结构高度梯度图,并据此构建可见点的局部最高点集合。在环境光计算中,本发明提出一种自适应环境光遮挡计算,借助局部最高点集合计算遮挡角。在直接光照中,给出一种微结构阴影的修正方法,搜索入射光方向的最近局部最高点剖面,通过比较剖面内光线投影与局部最高点的遮挡角,近似确定由微结构造成的阴影区域。最后根据可见点的局部最高点集合确定一次交互漫反射的采样范围,进行渗色处理。整个全局光照计算方法在图像空间完成。

Description

基于高度图的微结构表面全局光照实时绘制方法
技术领域
本发明涉及高度图的微结构表面全局光照实时绘制。
背景技术
现实场景中存在大量具有不平滑表面的对象,这些微结构表面将对光线传播产生影响,会表现出细粒度的自阴影、环境光遮挡、渗色等全局光照效果。因此,描述局部微结构细节与光线的交互,真实再现这类对象的光照效果,可以使得图像细节更为丰富、细腻,极大地提高绘制效果的逼真性。
微结构表面对象细节多、几何结构复杂,光线跟踪等传统的全局光照方法存在着计算量大,难以用于实时绘制等问题。Tong等提出将双向纹理函数(Bidirectional texturefunction,BTF)合成到任意表面上的方法,通过预计算微结构表面样本的BTF,并建立对象表面与BTF的映射关系,可根据光源和视点运动情况进行实时快速采样。在此基础之上,双尺度辐射度传递(Bi-Scale Radiance Transfer,BRT),壳纹理函数(Shell texture function,STF)和薄壳辐射度纹理函数(Shell Radiance texture function,SRTF)等方法也对微结构表面对象的光照计算方法进行了深入的研究。但由于大量预计算和纹理合成的存在,这类方法很难实时模拟动态可变形物体的光照效果。
1)微结构表面光照计算的方法有:
Tong等提出使用表面纹理元来合成低精度模型表面BTF的方法,能够较好地表现表面微结构随视点和光源变化的光照效果。但对于不能使用3D纹理元来表示的材质,不能使用这种单尺度的方法。
Sloan等提出了一种双尺度的辐射度传输方法,将辐射度分为全局和局部尺度。全局和局部尺度的传输分别采用预计算辐射度传输(Precomputed Radiance Transfer,PRT)和BTF,使绘制后的BTF材质表面呈现全局辐射传输光照效果。但网格上的顶点分布稠密、计算量较大,而且只能处理低频光照。
为了计算非均匀半透明微结构模型光照,Chen等建立一个包括薄壳层和均匀内核的模型,并引入STF计算薄壳层的表面辐射度,来呈现非均匀半透明物体表面微结构的自阴影、遮挡、镜面反射、轮廓及次表面的散射。但运行阶段计算量较大,无法达到实时。
为了能够实时渲染非均匀半透明物体,Song等提出的预计算基本量的SRTF,在运行阶段直接用于计算模型表面辐射度,实现实时渲染。但在渲染时忽略了由表面微结构形成的细节轮廓。
2)环境光遮挡的计算方法有:
Kontkanen等于2005年提出了环境光遮挡场,并基于此来预计算物体间的环境光遮挡,从而实现阴影的实时绘制。
2006年,Hegeman等提出了一种近似环境光遮挡方法,可满足复杂动态场景的交互渲染需要,但渲染质量不是很高。
为了提高绘制效率和渲染质量,Shanmugam等于2007年提出了一种硬件加速的环境光遮挡方法,将环境光遮挡分解为能够独立计算的高频和低频两部分,实现了复杂动态场景的高质量实时渲染。
为了进一步提高绘制效率,近年来越来越多的研究工作转向基于屏幕空间的环境光遮挡近似计算。Bavoil等于2008年首次提出了基于屏幕空间的环境光遮挡(Screen SpaceAmbient Occlusion,SSAO)方法,通过比较当前点与周围点深度,来确定环境光被遮挡的比率。但该方法需要人工设置采样数目,并且在改变物体的和视点的相对位置时会产生视觉上的跳跃现象。
同年,Bavoil等提出图像空间地平线环境光遮挡方法,基于视点坐标下的场景深度图,计算被遮挡点周围的地平角关系来得到该点的被遮挡程度。Dimitrov等提出了地平角分裂的环境光遮挡方法,该方法通过计算屏幕空间下点的地平角遮挡关系与实际法线遮挡关系的和,来得到最终的遮挡关系。
Ritschel等于2009年提出了屏幕空间方向光遮挡(Screen Space DirectionalOcclusion,SSDO)方法,在SSAO中加入方向光遮挡和一次交互漫反射,实现全局光照在复杂动态场景中的实时绘制。
3)图像空间光照计算的方法有:
Wyman于2005年提出基于图像空间的透明对象二次折射方法,在绘制一遍模型的基础上,采用迭代插值方法来逼近二次折射点的空间位置,实现对透明对象的实时渲染。但需要对模型进行预处理,不适用于可变形物体。
为了消除预处理,Davis等于2007年提出计算折射光线在模型内部全反射的方法,通过折半查找法来查找图像空间下光线在模型内部与模型多次反射的交点,在模型内部递归式追踪光线直到光线射出模型或递归跟踪的深度达到规定的阈值。
Manuel等也给出了适用于可变形透明对象的二次折射实时绘制方法,该方法不需要任何预处理,结合动态深度图和折半查找法来有效地处理图像空间下光线在模型内的全反射。
基于图像空间的焦散绘制也是光照绘制的一项主要研究内容。Wyman等于2006年最早提出图像空间的焦散绘制方法,采用光子映射的方法,实现焦散的实时绘制。但是通过建立大规模均匀栅格点来跟踪光子,会导致绘制效率低,并且在非焦散汇聚点区域会产生比较严重的噪声。
2007年,Musawir等提出焦散映射方法,该方法主要包括两个部分:生成焦散图纹理和使用焦散图将焦散渲染到焦散接受体上。由于需要对折射几何体进行计算,这两种方法都无法直接用于可变形物体的焦散渲染。Pankaj等采用焦散图和两表面折射相结合的方法,实现了对可变形物体的实时焦散渲染。为了提高实时渲染的质量,Wyman采用分层的焦散图方法,可以实时渲染高质量的焦散效果。
2009年,Wyman又提出了使用延迟着色的自适应焦散映射方法。采用延迟着色思想来自适应的发射光子,产生只包含相关光子的焦散图,而不需要渲染大量无关的密集光子,极大提高了绘制效率。
发明内容
本发明要解决的技术问题是:通过一种基于微结构高度梯度图的全局光照实时绘制方法,实现对可变形物体微结构表面的实时全局光照的计算。
本发明的技术解决方案为:
(1)全局光照计算模型,根据James Kajiya的渲染等式,几何对象上任意一个点P的在wo方向的出射光照度Lo可以根据该点在各个方向上入射辐射度的积分求得,具体形式见公式(1)。
L 0 ( P ) = ρ ( P ) ∫ Ω L i ( P , w i → ) ( w i → · n → ) d w - - - ( 1 )
其中Li是入射光强度,wi是入射方向,n是P点的法线方向,ρ是对象表面的材质属性BRDF,Ω是以计算点为中心,以该点所在平面为底面的单位半球。
微结构表面对象几何细节丰富,局部区域就可能存在上万个微面。如果直接根据该渲染公式计算几何关系和求取积分,计算量过大,方法难以实时。针对这个问题,本发明给出一种微结构表面光照计算模型,将微结构表面的入射光近似分解为三个分量:环境光La,高频光源光照度Ls和一次交互漫反射光照度Ld。对于微结构表面,环境光La是指周围环境对当前点的照亮程度,由于微结构表面细粒度的高度起伏较多,La需要根据当前点与周围点的遮挡关系计算得到。高频光源光照度Ls是指方向光源或点光源对微结构表面点的照明,需要考虑其对局部自阴影的影响。一次交互漫反射光照度Ld主要描述了周围微结构区域对当前点的漫反射效果的影响。本发明通过公式(2)将上述入射分量进行叠加,来近似计算微结构表面的入射光。
L i ( P , w i → ) = ( λ a L a ( P , w i → ) + λ s L s ( P , w i → ) ) · V ( P , w i → ) + λ d L d ( P , w i → ) · ( 1 - V ( P , w i → ) ) - - - ( 2 )
其中λa,λs和λd分为环境光La,直接光照Ls和一次渗色光照Ld的权重系数,具体跟物体表面的材质属性相关。V则表示P点在wi方向是否被遮挡,它可用一个二值函数来表示,取值为0时表示被遮挡,否则表示未被遮挡。
根据微结构高度梯度分布情况,我们在图像空间给出各个分量的求解方法。对于入射环境光,给出一种基于微结构高度梯度图的自适应环境光遮挡方法,与其他SSAO方法相比,它不需要预先定义采样的步长,能够自适应地快速搜索到局部区域内对当前点最有可能造成遮挡的点,从而可以减少采样数量。对于高频光源直接光照,结合经典Shadow Mapping方法,给出一种面向微结构表面的阴影区域修正方法,通过多方向梯度局部最高点来近似计算微结构的光线遮挡,可以较好地描述细微几何结构的精细阴影。对于交互漫反射入射分量,则通过对局部最高点和其内侧点进行采样,计算几何关系,实现一次交互漫反射效果。在各个入射分量的计算中,我们充分融入了延迟着色的思想,提高计算的有效性,使整个光照模型的解算能够达到实时性要求。
(2)屏幕空间微结构表面高度梯度图
1)微结构表面高度梯度图,当光线入射到物体表面时,表面微结构的分布和形状将影响光线传播的路径,产生阴影、遮挡、交互漫射等光照效果。求取微结构高度的梯度,可以较好地描述局部高低起伏变化,方便遮挡关系的计算,提高遮挡点的搜索速度,因此,针对微结构表面,我们提出一种屏幕空间的微结构高度梯度图(Meso-structure HeightGradient Map,MHGM),可以通过下述方法构造。
假定带有微结构表面的物体是由微结构高度场和内核模型构成,微结构高度场通过纹理合成和纹理映射方法与内核预先绑定。假设低精度模型M表面任一顶点C均有微结构高度场的纹理坐标为Tc=(Uc,Vc),当我们在视点V下绘制M时,可以得到该视点下的二维视图V′,在V′中微结构对象M的可见部分所占区域记为M′,根据微结构高度场的映射关系,M任一顶点C在M′中的投影点C′都能依据纹理坐标Tc取到微结构高度值Hc。V′中M′以外部分的高度值设置为零。我们将由这些高度值形成的二维图像称之为屏幕空间微结构表面高度图(Meso-structure Height Map,MHM)。对MHM求取梯度,我们把生成的矢量图像称为屏幕空间的MHGM。MHGM在图像空间近似给出了微结构表面起伏变化程度的描述。
2)局部最高点集合的构造,具有微结构表面的物体是由微结构高度场和内核模型构成,假定微结构变化剧烈程度远大于内核模型结构,那么对于局部范围内的微结构来说,其所对应的内核模型区域可近似为平面。由于标量场的梯度是一个向量场,梯度的方向指向标量场增长最快的方向,因此我们可以将梯度分析应用到上面构造的MHGM中,近似计算局部微结构的辐射度传递。
在MHGM中,存在着一些梯度为零的点,周围点的梯度都指向这些点。根据梯度的物理含义,这些点的高度值大于其周围点,在本发明中,我们将其称之为局部最高点(Local Apex)。另外,我们将在MHGM上,位于物体可见区域M′边界上的点称之为梯度图边界点(BoundaryPoint)。为了计算微结构上的光照传播,我们需要根据局部最高点和梯度图边界点的分布,为每个可见点构造局部最高点集合。
在视点V下的二维视图V′中,给定任意一个可见点C′(C′是C在V′中的投影),我们根据如下方法为其构造局部最高点集合f(C′)。在该视点下生成的MHGM中,以C′位置为起始点,沿着梯度方向,搜索到距离该点最近的局部最高点,我们把该点称为C′的直接局部最高点,记做HC′,并将它加入f(C′)中。由于HC′只是C′在某一个方向上的局部最高点,其他方向也同样存在着局部最高点,对C′点的光照计算有影响。为了得到这些局部最高点,我们在C′点周围采样,当某一方向的采样点为Ci时,可以以Ci为起始点沿梯度方向搜索到的局部最高点
Figure BSA00000134436500051
我们把这样的点称为C′的间接局部最高点,加入到f(C′)中。同理,我们可以搜索C′点其它方向的局部最高点,使得f(C′)包含C′的多方向局部最高点。另外,如果C′位于M′边界附近,沿梯度方向可能搜索到的点为边界点BC′,我们将这样的点也作为局部最高点,放入f(C′)中。f(C′)中所有局部最高点将对微结构表面光照度传播产生较大的作用,应用于随后的光照分量计算之中。
(3)局部微结构光照计算方法
1)环境光遮挡计算方法,本发明提出一种基于微结构高度梯度图的环境光遮挡计算方法,不同于其他屏幕空间方法沿着所有方向计算环境光遮挡值,我们的方法利用上节所述的局部最高点集合来自适应地计算微结构模型的环境光遮挡。
对于给定一点P,P点周围存在的点会对它产生遮挡。P的点环境光遮挡计算公式如下。
A ( P , n → ) = 1 2 π ∫ Ω V ( P , ω → ) W ( ω → ) dω - - - ( 3 )
其中n是P点的法线方向,Ω是以P点为中心,以n为正方向的单位半球,V是该半球上的光线的可见性函数,如果为1则表示该方向可见,0则表示该方向被遮挡。W为权重函数。
我们以P点所对应的内核的模型顶点法线方向作为极轴,以方位角θ和倾斜角α建立球面坐标系。则公式(3)可转化为:
A ( P , n → ) = 1 2 π ∫ θ = - π π ∫ α = 0 π / 2 V ( P , ω → ) W ( ω → ) dαdθ - - - ( 4 )
对于每一方向θ,若我们找到一个最大遮挡角h(θ),当α>h(θ)时,
Figure BSA00000134436500062
则可以得到公式(5):
A ( P , n → ) 1 2 π ∫ θ = - π π ∫ α = h ( θ ) π / 2 W ( ω → ) dαdθ - - - ( 5 )
权重函数
Figure BSA00000134436500064
有很多种给法,如令可分别得到公式(6)和公式(7)。在环境光遮挡的计算中,我们采用了公式(7)。
A ( P , n → ) = 1 2 π ∫ θ = - π π ( sin ( π / 2 ) - sin ( h ( θ ) ) ) dθ - - - ( 6 )
A ( P , n → ) = 1 2 π ∫ θ = - π π π / 2 - h ( θ ) π / 2 dθ - - - ( 7 )
本发明的方法通过两张输入纹理eyeDisTexture和heighestTexture来计算环境光遮挡值。eyeDisTexture纹理中存储了微结构模型顶点所对应的空间坐标值,即对于其上任意一个像素点,其对应的空间坐标值有公式(8)计算得出。
P 0 + n 0 → · dis · k - - - ( 8 )
其中P0分别为模型主内核上点的空间坐标值和法向量,dis为其对应的微结构高度场的高度值,k为放缩量。heighestTexture纹理中存储了顶点由梯度图搜索得到的局部最高点所对应的纹理坐标。
在微结构模型中,对于模型表面的顶点P,若其某方向范围内存在一局部最高点
Figure BSA000001344365000611
则我们可以近似的认为,点即是该方向范围内对P点遮挡角度最大的点,我们利用
Figure BSA000001344365000613
点对P点的遮挡角度
Figure BSA000001344365000614
(Δh为两点的高度差)来表示该方向范围上的遮挡角度,用公式(7)计算环境光遮挡值。同时,如果点P某一方向范围内不存在局部最高点,则我们可以认为点P在该方向上基本不受遮挡。这样,微结构模型上顶点P的环境光遮挡计算就转化为了计算其局部最高点集合对它的遮挡。本发明方法借助微结构高度场梯度分布搜索遮挡点,遮挡计算是在微结构高度场所在的对象空间完成的,因此不会随视点的变化而变化,方法是自适应的,不需要设定采样范围和间隔参数,并且搜索到的点均为对遮挡有影响的有效点。
2)高频光源光照效果计算方法,我们采用Phong模型来计算微结构表面接受到的高频直接光照。在计算光照强度之前,需要判断模型上点是否被照亮,即是否会因为遮挡关系而产生自阴影效果。要精确描绘微结构表面的阴影,需要使用位移贴图方法(DisplacementMapping)将微结构高度场中的高度值作用于对象的顶点,产生实际顶点的位移,生成新的高细节模型,然后借助阴影绘制方法对该模型进行阴影计算。这样做存在几个问题。第一,当内核模型网格精度不够时,首先需要网格镶嵌提高模型顶点数目,然后才能进行顶点位移。第二,直接在新生成的高精度模型上采用光线跟踪类方法,由于模型局部几何细节过多,计算量大。即使采用效率较高的阴影映射方法,也需要绘制两遍带有微结构表面的几何模型,影响方法时间性能。
在本发明中,为了提高绘制效率,我们使用的带有微结构表面的几何模型是在内核模型上绑定微结构高度场映射信息,没有实际的顶点位移,因而模型表面没有微结构的形变,无法用Shadow Mapping方法直接计算阴影位置。为了解决上述问题,本发明给出一种基于梯度空间局部最高点的微结构表面阴影图修正方法,在采用经典Shadow Mapping方法对内核结构模型计算大尺度阴影的基础上,对由微结构高度场产生的局部表面细节进行遮挡计算,对原阴影区域进行修正。
3)一次交互漫反射计算方法,与方向光效果的计算类似,对于微结构表面对象,如采用顶点位移后的高精度模型,通过辐射度方法计算对象各个部分间的一次交互漫反射效果,计算开销过大,方法很难达到实时。Ritschel等在SSDO中,给出在屏幕空间计算一次交互漫反射的方法。本发明方法仍基于在图像空间采样的思路,但与SSDO主要有两点区别。第一,SSDO是在一个预定义半径的半球内进行采样,本发明方法的采样以当前点的局部最高点集合为边界,是自适应的,不需要手工设定。第二,SSDO采样每个点后,需要首先判断是否遮挡,之后才能进行计算。我们则是在已知会被遮挡的的范围内取点进行计算,减少了遮挡计算次数,提高测试点的有效性比率。
对于P点周围的所有局部最高点,P点会被这些局部最高点所遮挡。我们首先沿着P的梯度爬升方向进行采样,直至P的直接局部最高点HP,在此路径上进行一次交互漫反射入射光照度采样。之后,我们在P点附近寻找中介点P′,沿着P′的梯度爬升方向至其直接局部最高点HP′,同样也在此路径上进行交互漫反射入射光照度采样。如图8所示,我们可以沿着P点和中介点P′的梯度方向,逐点采样,通过采样点的颜色,计算P点的一次交互漫反射。同时为了避免采样点S无法渗色到P点的情况,还需要考虑到
Figure BSA00000134436500072
的夹角和
Figure BSA00000134436500074
的夹角是否小于90度。如图8中的中介点P′点,它显然无法渗色到P点。最后得到一次交互漫反射的计算公式如下:
L ( P ) = Σ i = 1 n ρ L color ( S i ) max ( 0 , dot ( PS i → , N P → ) ) max ( 0 , dot ( S i P → , N S i → ) pow ( length ( PS i → ) , 2 ) - - - ( 9 )
其中ρ为材质的BSDF参数,Si为采样点。
附图说明
图1本发明方法绘制的微结构表面全局光照效果图;
图2微结构表面对象的构成图;
图3MHGM生成过程示意图;
图4a和图4b局部最高点提取方法示意图(→
Figure BSA00000134436500082
表示梯度、→
Figure BSA00000134436500083
表示搜索路径);
图5环境光遮挡计算示意图;
图6微结构阴影修正示意图;
图7光线方向近似剖面示意图;
图8一次交互漫反射采样示意图;
图9Pass2的输入纹理shadowMap和输出纹理eyeColorTexture、eyeDisTexture图(ashadowMap纹理,b eyeColorTexture纹理,c eyeDisTexture纹理);
图10Pass3的输出纹理eyeDisNormalTexture、gradientTexture和Pass4的输出纹理heighestTexture图(a eyeDisNormalTexture纹理,b eyeColorTexture纹理,cgradientTexture纹理);
图11Pass5输出纹理lightingTexture的r、g、b、a分量图(a环境光遮挡值,b点光源漫反射强度值,c高光强度值,d阴影值);
图12微结构表面环境光遮挡绘制效果及对比图(a我们的基于高度梯度图的方法,b我们的方法+SSAO方法,c Bavoil的方法);
图13微结构表面点光源阴影绘制效果及对比图(a经典Shadow Mapping方法效果,bShadow Mapping+微结构表面阴影修正);
图14一次交互漫反射绘制效果及对比图(a无交互漫反射效果,b有交互漫反射效果);
图15使用本发明方法静态模型绘制效果图(a Teapot的全局光照效果,b Torus的全局光照效果,c Elephant的全局光照效果,d Dinosaur的全局光照效果);
图16本发明方法对动态模型的绘制效果图;
图17不同面片数模型在不同纹理分辨率下的绘制帧率折线图。
具体实施方式
本发明的方法具体实现过程如下:
本发明方法使用了Shadow Mapping方法,所以对整个场景进行了两遍绘制。其他计算所在的渲染过程,都采用了延迟着色思想,通过画满屏的四边形来实现的,因此方法引入的计算开销与场景中对象几何模型的复杂度关系较小。
方法在计算过程中用到的纹理较多,纹理组织如下:
(1)disTexture:对象表面的微结构高度纹理。初始化时输入,Pass2使用。
(2)modelTexture:对象表面的颜色纹理。初始化时输入,Pass2使用。
(3)shadowMap:以光源为视点下场景的深度图。Passl生成,Pass2使用。
(4)eyeDisTexture:r、g、b分量存储视点下对象表面根据disTexture沿法向量偏移后的坐标值,a分量存储对象表面上点对应的disTexture中的偏移量。Pass2生成,Pass3、Pass5、Pass6使用。
(5)eyeColorTexture:r、g、b分量存储视点下对象表面的颜色值,a分量存储其是否在阴影中(0或1)。Pass2生成,Pass5、Pass6使用。
(6)eyeDisNormalTexture:存储由偏移后的带有微结构表面的对象顶点坐标计算得到的新法向量。Pass3生成,Pass5、Pass6使用。
(7)gradientTexture:存储计算得到的对象微结构表面的高度梯度图。Pass3生成,Pass4使用。
(8)heighestTexture:存储对象表面顶点由梯度图搜索得到的局部最高点所对应的纹理坐标。Pass4生成,Pass5、Pass6使用。
(9)lightingTexture:四个分量分别用于存储环境光遮挡值、点光源漫反射值、高光值、阴影值。Pass5生成,Pass6使用。
方法具体绘制步骤:
Passl采用传统Shadow Mapping方法,从光源位置绘制场景,将光源视空间下三维模型表面顶点的深度值绘制到shadowMap中。
Pass2从视点位置绘制模型,以shadowMap、modelTexture和disTexture三张纹理作为输入,将视空间下三维模型表面顶点的坐标值沿法线偏移(偏移量由高度纹理disTexture获得),将偏移后的坐标值及偏移量绘制到eyeDisTexture纹理中;将三维模型表面顶点的颜色值绘制到eyeColorTexture纹理的r、g、b分量中;判断顶点是否处于阴影中,将阴影值(0或1)绘制到eyeColorTexture纹理的a分量中,见图9。采用多目标渲染(Multiple Render Target,MRT)方式一遍绘制完成。
Pass3基于延迟着色的思想,绘制满屏的四边形,以eyeDisTexture纹理作为输入,利用偏移后的顶点坐标值,计算顶点的法向量,将结果绘制到eyeDisNormalTexture纹理中;将偏移量作为高度值,计算每一顶点的梯度方向(即对应的纹理坐标),将结果绘制到gradientTexture纹理中,见图10(a)(b)。采用MRT的方式一遍绘制完成。
Pass4绘制一个满屏的四边形,以gradientTexture纹理作为输入,对于每一个顶点,沿梯度方向搜索,可找到一局部最高点,并记录下其对应的纹理坐标,将结果绘制到heighestTexture纹理中,见图10(c)
Pass5绘制一个满屏的四边形,以heighestTexture、eyeDisTexture、eyeColorTexture和eyeDisNormalTexture四张纹理作为输入,由每一顶点周围的局部最高点集,计算环境光遮挡值、点光源漫反射强度值、高光强度值和阴影值,绘制到lightingTexture纹理的四个通道中,见图11。
Pass6绘制一个满屏的四边形,以立方图作为环境光源,以lightingTexture、heighestTexture、eyeDisTexture、eyeColorTexture和eyeDisNormalTexture四张纹理作为输入,由每一顶点周围的局部最高点集,计算一次交互漫反射,与之前的计算结果结合,将最终颜色值输出到屏幕上。
本发明方法的实验环境为Inter Core(TM)23.0GHz CPU、2G内存、NVIDIA GeForce GTX2601G显示卡、运行Windows XP操作系统的PC机。实验程序基于OpenGL 3.0API,Shader程序使用Shader Model 3.0方式编译。为了验证微结构表面光照模型的有效性,我们首先使用了Teapot、Elephant、Torus、Dinosaur等多个模型对各个分量计算的绘制效果进行了对比分析,然后给出本发明法绘制的带有微结构表面对象的全局光照效果,最后进行了性能测试实验。实验模型仅包含微结构高度场映射的二维坐标(类似纹理映射),模型顶点本身不包含微结构几何信息。
本发明方法属于图像空间方法,在进行直接光照分量的计算中,由于采用了传统的Shadow Mapping,对整个场景绘制两遍,其余计算与绘制只是针对满屏矩形的填充,因此几何模型的复杂度和计算中间过程所选用的纹理缓存的分辨率都对整个方法的效率有所影响。为了对不同复杂度的几何模型进行测试,我们对更多的模型进行了测试。实验模型均来自于从斯坦福大学三维模型库。表1给出了对于不同复杂度的实验模型在256*256,512*512、1024*1024三个不同分辨率纹理缓存下的计算速度。窗口大小设为1024*1024。
表1绘制速度测试数据表
Figure BSA00000134436500111
根据表1数据,可以画出如图17所示的折线图,从该图可以看出本发明方法绘制效率较高,对于100万面片数的复杂模型,在256*256和512*512分辨率下,绘制帧率可达到60帧/秒以上。即使是在1024*1024分辨率下,其绘制帧率仍能达到50帧/秒,可保证实时绘制的需要。其次,对比图中三条折线,可以发现渲染纹理分辨率对本发明方法影响较大。尤其是在模型面片数较少时,绘制帧率随着纹理分辨率的不同成倍下降,随着模型面片数的增多,下降幅度逐渐减小。此外,图中黄色折线比较平稳,粉色和蓝色折线虽然平稳性要差一些,但绘制效率与模型面片数之间也远远构不成反比关系。这说明随着纹理分辨率的增大,本发明方法受模型复杂度的影响也越来越小。本发明方法充分发挥了延迟着色的优点:只绘制两遍模型,绘制多遍纹理。因此方法的绘制效率受模型复杂度影响较小,受纹理分辨率影响较大。当然,在较大的纹理分辨率下,最终的图像绘制质量也会较好。

Claims (2)

1.一种基于高度图的微结构表面全局光照实时绘制方法,其步骤依次为:
(1)针对物体表面几何细节特点给出一种全局光照分解计算方法,以分别近似计算环境光、反射和一次交互漫反射等光照分量;
(2)基于屏幕空间创建物体微结构表面的高度梯度图,然后根据微结构表面梯度的方向及其大小的分布来搜索对局部细节光照影响最大的方向和遮挡点,并建立局部最高点集合以指导各个光照分量的自适应地采样计算;
(3)采用微结构表面阴影修正方法,通过纹理坐标将微结构高度场绑定在低精度模型表面,将带有微结构表面的对象的阴影计算分为两步:首先利用Shadow Mapping计算低精度网格的阴影,接着采用梯度空间局部最高点集合遮挡计算来生成细节阴影。
2.根据权利要求1的方法,具体包括:
(1)使用对象的低精度几何模型和微结构细节高度图,表现带有微结构表面的高精度几何模型的全局光照效果;
(2)消除预计算,方法达到实时性能,适用于动态场景和可变形对象,所述可变形对象包括微结构和低精度模型;
(3)所述微结构表面的全局光照近似方法进一步包括:使用环境光、高频光源入射光和一次交互漫反射来模拟局部细节的光照度传递的方法来计算全局光照;
(4)所述微结构表面阴影修正方法进一步包括:提出屏幕空间微结构高度梯度图,并构建可见点的局部最高点集合,自适应确定采样范围,消除人工设定参数,高效准确。
CN2010101820813A 2010-05-19 2010-05-19 基于高度图的微结构表面全局光照实时绘制方法 Expired - Fee Related CN101882323B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101820813A CN101882323B (zh) 2010-05-19 2010-05-19 基于高度图的微结构表面全局光照实时绘制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101820813A CN101882323B (zh) 2010-05-19 2010-05-19 基于高度图的微结构表面全局光照实时绘制方法

Publications (2)

Publication Number Publication Date
CN101882323A true CN101882323A (zh) 2010-11-10
CN101882323B CN101882323B (zh) 2012-06-13

Family

ID=43054333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101820813A Expired - Fee Related CN101882323B (zh) 2010-05-19 2010-05-19 基于高度图的微结构表面全局光照实时绘制方法

Country Status (1)

Country Link
CN (1) CN101882323B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102074038A (zh) * 2010-12-28 2011-05-25 长春理工大学 一种由光滑表面折射产生的3d虚拟场景面焦散效果的绘制方法
CN102592305A (zh) * 2011-09-06 2012-07-18 浙江大学 自适应的屏幕空间环境光遮蔽方法
CN104063891A (zh) * 2014-07-05 2014-09-24 长春理工大学 在光线跟踪中利用三维场景空间梯度信息实现屏幕像素自适应采样的方法
CN104737198A (zh) * 2012-11-21 2015-06-24 英特尔公司 在输入几何对象粒度上记录可见度测试的结果
CN106447761A (zh) * 2016-08-31 2017-02-22 北京像素软件科技股份有限公司 一种阴影渲染方法
CN107452048A (zh) * 2016-05-30 2017-12-08 网易(杭州)网络有限公司 全局光照的计算方法及装置
CN107633544A (zh) * 2016-07-14 2018-01-26 网易(杭州)网络有限公司 环境光遮蔽的处理方法及装置
CN107730578A (zh) * 2017-10-18 2018-02-23 广州爱九游信息技术有限公司 光环境遮蔽图的渲染方法、生成效果图的方法和设备
CN107808410A (zh) * 2017-10-27 2018-03-16 网易(杭州)网络有限公司 阴影深度偏移的处理方法及装置
CN108074275A (zh) * 2016-11-10 2018-05-25 北京仿真中心 基于光线跟踪算法的高帧频可见光图像模拟方法及系统
WO2018209710A1 (zh) * 2017-05-19 2018-11-22 华为技术有限公司 一种图像处理方法及装置
CN109829970A (zh) * 2019-01-30 2019-05-31 中国科学院大学 一种基于不等尺寸分块的海量数据并行体绘制方法
CN116452459A (zh) * 2023-04-25 2023-07-18 北京优酷科技有限公司 阴影遮罩生成方法、阴影去除方法及装置
CN116664752A (zh) * 2023-08-01 2023-08-29 南京维赛客网络科技有限公司 基于图案化光照实现全景显示的方法、系统及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020080136A1 (en) * 2000-10-26 2002-06-27 Cyriaque Kouadio Surface shading using stored texture map based on bidirectional reflectance distribution function
US6614431B1 (en) * 2001-01-18 2003-09-02 David J. Collodi Method and system for improved per-pixel shading in a computer graphics system
CN1763784A (zh) * 2005-11-23 2006-04-26 北京航空航天大学 一种三维场景实时绘制框架和绘制方法
CN101071511A (zh) * 2007-06-26 2007-11-14 腾讯科技(深圳)有限公司 阴影绘制方法及装置
CN101271587A (zh) * 2008-02-25 2008-09-24 北京理工大学 一种基于过渡光贴图的光照和阴影绘制方法
CN101615300A (zh) * 2009-07-02 2009-12-30 北京航空航天大学 一种屏幕空间微结构表面对象环境光遮挡方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020080136A1 (en) * 2000-10-26 2002-06-27 Cyriaque Kouadio Surface shading using stored texture map based on bidirectional reflectance distribution function
US6614431B1 (en) * 2001-01-18 2003-09-02 David J. Collodi Method and system for improved per-pixel shading in a computer graphics system
CN1763784A (zh) * 2005-11-23 2006-04-26 北京航空航天大学 一种三维场景实时绘制框架和绘制方法
CN101071511A (zh) * 2007-06-26 2007-11-14 腾讯科技(深圳)有限公司 阴影绘制方法及装置
CN101271587A (zh) * 2008-02-25 2008-09-24 北京理工大学 一种基于过渡光贴图的光照和阴影绘制方法
CN101615300A (zh) * 2009-07-02 2009-12-30 北京航空航天大学 一种屏幕空间微结构表面对象环境光遮挡方法

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102074038B (zh) * 2010-12-28 2013-01-30 长春理工大学 一种由光滑表面折射产生的3d虚拟场景面焦散效果的绘制方法
CN102074038A (zh) * 2010-12-28 2011-05-25 长春理工大学 一种由光滑表面折射产生的3d虚拟场景面焦散效果的绘制方法
CN102592305A (zh) * 2011-09-06 2012-07-18 浙江大学 自适应的屏幕空间环境光遮蔽方法
CN104737198B (zh) * 2012-11-21 2018-03-27 英特尔公司 在输入几何对象粒度上记录可见度测试的结果
CN104737198A (zh) * 2012-11-21 2015-06-24 英特尔公司 在输入几何对象粒度上记录可见度测试的结果
CN104063891B (zh) * 2014-07-05 2017-04-19 长春理工大学 用三维场景空间梯度信息实现屏幕像素自适应采样的方法
CN104063891A (zh) * 2014-07-05 2014-09-24 长春理工大学 在光线跟踪中利用三维场景空间梯度信息实现屏幕像素自适应采样的方法
CN107452048A (zh) * 2016-05-30 2017-12-08 网易(杭州)网络有限公司 全局光照的计算方法及装置
US11024077B2 (en) 2016-05-30 2021-06-01 Netease (Hangzhou) Network Co., Ltd. Global illumination calculation method and apparatus
CN107452048B (zh) * 2016-05-30 2019-03-12 网易(杭州)网络有限公司 全局光照的计算方法及装置
CN107633544A (zh) * 2016-07-14 2018-01-26 网易(杭州)网络有限公司 环境光遮蔽的处理方法及装置
CN106447761B (zh) * 2016-08-31 2019-03-08 北京像素软件科技股份有限公司 一种阴影渲染方法
CN106447761A (zh) * 2016-08-31 2017-02-22 北京像素软件科技股份有限公司 一种阴影渲染方法
CN108074275A (zh) * 2016-11-10 2018-05-25 北京仿真中心 基于光线跟踪算法的高帧频可见光图像模拟方法及系统
CN108074275B (zh) * 2016-11-10 2021-06-04 北京仿真中心 基于光线跟踪算法的高帧频可见光图像模拟方法及系统
US10970918B2 (en) 2017-05-19 2021-04-06 Huawei Technologies Co., Ltd. Image processing method and apparatus using a pixelated mask image and terminal orientation for a reflection effect
WO2018209710A1 (zh) * 2017-05-19 2018-11-22 华为技术有限公司 一种图像处理方法及装置
CN107730578A (zh) * 2017-10-18 2018-02-23 广州爱九游信息技术有限公司 光环境遮蔽图的渲染方法、生成效果图的方法和设备
CN107730578B (zh) * 2017-10-18 2021-07-23 阿里巴巴(中国)有限公司 光环境遮蔽图的渲染方法、生成效果图的方法和设备
CN107808410B (zh) * 2017-10-27 2021-04-27 网易(杭州)网络有限公司 阴影深度偏移的处理方法及装置
CN107808410A (zh) * 2017-10-27 2018-03-16 网易(杭州)网络有限公司 阴影深度偏移的处理方法及装置
CN109829970A (zh) * 2019-01-30 2019-05-31 中国科学院大学 一种基于不等尺寸分块的海量数据并行体绘制方法
CN109829970B (zh) * 2019-01-30 2022-05-06 中国科学院大学 一种基于不等尺寸分块的海量数据并行体绘制方法
CN116452459A (zh) * 2023-04-25 2023-07-18 北京优酷科技有限公司 阴影遮罩生成方法、阴影去除方法及装置
CN116452459B (zh) * 2023-04-25 2024-05-24 北京优酷科技有限公司 阴影遮罩生成方法、阴影去除方法及装置
CN116664752A (zh) * 2023-08-01 2023-08-29 南京维赛客网络科技有限公司 基于图案化光照实现全景显示的方法、系统及存储介质
CN116664752B (zh) * 2023-08-01 2023-10-17 南京维赛客网络科技有限公司 基于图案化光照实现全景显示的方法、系统及存储介质

Also Published As

Publication number Publication date
CN101882323B (zh) 2012-06-13

Similar Documents

Publication Publication Date Title
CN101882323B (zh) 基于高度图的微结构表面全局光照实时绘制方法
CN106570929B (zh) 一种动态体积云的构建与绘制方法
Ayoub A review on light transport algorithms and simulation tools to model daylighting inside buildings
CN104167011B (zh) 一种基于方向光辐射度的微结构表面全局光照绘制方法
CN103559733B (zh) 支持三维体数据内部视点漫游的球面体绘制方法
CN103198514B (zh) 一种三维地震体数据的实时光线投射体绘制方法
CN103903296B (zh) 虚拟家装室内场景设计中的阴影渲染方法
CN102915559A (zh) 一种基于三维点云的实时透明物体gpu并行生成方法
CN104700448A (zh) 一种基于梯度的自适应光子映射优化算法
CN103530907A (zh) 基于图像的复杂三维模型绘制方法
CN110706325B (zh) 一种三维海底环境实时动态渲染方法和渲染系统
CN101763649A (zh) 一种增强模型轮廓的表面点绘制方法
CN104700447B (zh) 基于Intel众核架构的光线追踪并行优化方法
CN101615300B (zh) 一种屏幕空间微结构表面对象环境光遮挡方法
CN106056670A (zh) 塔式太阳能热发电系统中剔除遮挡的辐射能密度模拟方法
CN108874932B (zh) 一种基于改进的光线投射算法的海洋水声场三维可视化方法
CN104112034A (zh) 用于实施路径空间滤波的系统、方法和计算机程序产品
CN101441774A (zh) 基于图像映射空间的动态场景实时双面折射绘制方法
Chattopadhyay et al. Bi-directional ray tracing
CN107993281B (zh) 一种空间目标可见光光学特性仿真方法
CN112446943A (zh) 图像渲染的方法、装置及计算机可读存储介质
CN102314704B (zh) 一种基于brdf的次表面散射的实时绘制方法
CN102880773A (zh) 一种非均匀媒质可视求迹散射分析方法
CN103617593B (zh) 三维流体物理动画引擎的实现方法及装置
CN103247070A (zh) 一种基于预计算转移张量的交互重光照真实感渲染方法

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: 20120613

Termination date: 20160519

CF01 Termination of patent right due to non-payment of annual fee