`
kennyluo
  • 浏览: 78216 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

基于直接光照的全局光照模拟

阅读更多

1、概述
  近年来,随着计算机图形图像技术在游戏、影视动西、虚拟现实、建筑漫游等领域应用的深入和普及,人们对计算机生成图形的逼真性要求越来越高。光照效果的计算是生成逼真图形的基础,要得到高度真实感的图形,不仅要计算直接光照,还需计算间接光照,获得全局光照效果。间接光照是由光线在物体之间的多次反射、折射引起的,其产生原理非常复杂,与光源特性、场景中物体的物理特性及物体问的相对空问位置等有关。因此,基于间接光照产生的物理原理的算法(如能量辐射、光影跟踪算法)计算量大、算法复杂,但目前绝大部分提供全局光照的软件都是采用这类算法,很难满足游戏、动画等实时性要求高或渲染最非常大的应用。如何实现一种既能达到一定的视觉效果,又能快速计算的方法成为研究的热点。通过光照环境贴图表示光在空间中的分布是一种较早被引入计算机图形学中用来模拟全局光照的方法。它假定物体离光源足够远,物体相对于光源可看作一个点,这样物体上每个点周围的光线分布可近似为相同的,每个点的光照效果通过对光照环境贴图积分获得。为了提高计算效率,文献[l-3]提出了用法向作为参数的球面协波函数和非线性小波表示光在空间的分布。但这种情况只适用于间接光来自很远处的情况,而且针对每幅光照环境贴图需要进行费时的预计算。文献f4J采用低阶函数拟合场景中的环境光照和间接光照分量,避免了全局光照计算,但其拟合产生的低阶重光照函数只反映了特定视点下的间接光照和环境光照。
  文献[5]提出了一种实时重建光照的方法。该方法是在演播室中建立一个大笼子,笼子上安装许多灯,通过拍摄的场景来控制每个灯的亮度和颜色,使笼内演员获得与实拍场景相似的光照效果,再通过红外技术将笼内演员合成到拍摄的场景之中,实现实时的视频合成。本文对上述方法加以改进,提出了一种从渲染的视觉效果出发、不需要借助硬件设备的模拟全局光照的方法。
  2、本文算法的原理
  直接光是从光源出发,直接照射到物体表面,由于物体问的遮挡和光源照射范围等因素,直接光照变化非常剧烈,分布很不均匀。而间接光照是由直接光照射到物体表面后,经过多次反射、折射产生的,因此。每个方向都有来自环境的间接光照,而且在空间的分布比较均匀,没有剧烈的变化,属于光照中的低频成分。由直接光照和间接光照产生的物体表面的光照效果可以统一表示为

 

  其中,x是顶点的位置;ω0是视方向;ω是入射光线方向;L是在x点的ω方向上的入射光线强度;S是可见性函数,确定沿ω方向入射到x的光线是否被遮挡;f是在x点的反射函数,对于漫反射表面,它与视角无关,而对于镜面反射表面,一旦确定了视点位置,视方向ω0将由x点的位置决定,即可表示为ω0(x)n(x)x点的法向;(ω.n(x))是入射角的余弦值。将可见性函数、反射函数和余弦函数合写为

 

  对x点周围的环境空间光线做离散采样,将积分转换为求和:

 

  通过这种离散化处理,物体上每个点J都存在一个反映其周围空间光线分布的采样图,计算每个点在每个采样方向上的L(x,ωj),运算量非常大。由于全局光照由直接光照和间接光照2个部分组成,两者在空间分布的规律不一样,一般情况下产生直接光照的光源用点光源模拟,数量非常有限,只分布在空间的几个点上,因此可以将直接光照和间接光照分别处理。直接光照可以按照下式计算:

 

  其中,BD表示直接光照效果;i表示光源的索引值;Yi表示第i个光源的位置;Li(ω(x,yi))表示第i个光源在x点在ω方向的光照强度。间接光照分布在空间各个方向,可以用一个包围物体的球(或者一个其他形状的包围盒)模拟其分布,球面上布满了光源。当间接光照主要由远处的环境产生时,L可看作只与ω有关,而与顶点位置无关,光源可简化为用一张光照环境图表示。

 

  其中,T(xω)由于只由该点所处位置的物体属性决定,与光源无关,因此可以进行预计算。按照ω进行离散化,将T(xω)的预计算结果存储后,在渲染时通过硬件支持的矩阵运算,计算TL乘积的累加和,达到非常快的渲染速度。当物体间存在较近距离的互反射,即物体相对于包围球的大小关系无法将它看作一个点时,L不仅与ω有关,还受顶点位置的影响,这时将球面进行离散采样后的每个采样点当作一个独立的光源处理,这些光源组成一个将物体包围在内的灯光阵列。利用式(4)计算这些光源的直接光照效果,如下式所示:

 

  合并直接光照和间接光照计算公式得到统一的全局光照计算公式:

 

  因此,在这种情况下,将间接光照转化为直接光照方式计算,简化了计算过程,达到了通过直接光照模拟全局光照的目的。而且在计算直接光照时,可通过GPU支持的矩阵运算来实现硬件加速,提高渲染速度。

  3、本文算法的实现
  3.1光源的位置
  球形分布光源的位置通过多面体对球形的逼近方法确定。多面体的顶点位置为光源的位置。如表1所示,多面体的基本型可以是四面体、八面体、十二面体,通过调整基本型的细分层级来控制顶点数,从而达到调节光源数量的目的,以此决定模拟的效果。球心的位置和球的半径可根据具体场景确定。光源数可根据具体应用需求,通过对渲染效果与渲染时间的折中来选取。

 

  光源的分布也可根据具体场景设定,如将光源分布在方形包围盒上,在确定形状后,类似干球面细分的过程,确定光源的位置和数量。用这种方法可模拟各种开窗的光照效果。
  3.2光源的颤色
  间接光照光源的亮度值比较小,且各光源问变化不大。光源颜色可通过多种方式确定,本文设计了如下3种光源颜色计算方法:
  (1)由用户设定2种颜色,分别对应顶部和底部的光源颜色,其余光源颜色由这两者插值产生,如顶部偏蓝、底部偏绿,其他光源颜色则为由蓝到绿的渐变色。光源按照位置的z轴坐标建立索引,每个光源的颜色计算公式为

 

  其中,L0,Ln-1分别对应顶部和底部的光源颜色;N为光源的数量。
  (2)由贴图确定光源的颜色。首先,对球面指定贴图映射方式,计算球面每个顶点的贴图坐标,再采用邻域平均法或加权邻域平均法,实现低通滤波,计算光源的颜色。邻域的大小根据邻近顶点的贴图坐标所形成的区域决定。
  (3)采用HDR(High—Dynamic—Range images)确定光源的颜色,类似于文献[5]中控制灯光的方法。由于HDR图用浮点数存储图像的RGB信息,因此更接近真实环境照明。但贴图方式无法采用常规的映射方式,其贴图坐标计算公式为

 

  其中,Nx,Ny为光源所在顶点的法向的xy分量;μv为贴图坐标。
  3.3光源的类星
  光源的类型采用了点光源、聚光源,聚光源的汇聚点设置在球心,灯光阵列中的所有光源具有共同的光照范围和衰减区域,其值町根据实际情况做调整。

  4、实验结果与讨论
  应用基于本算法开发的软件对多个场景进行了全局光照模拟渲染,通过实验发现,当模拟问接光照的光源数增加到42时,可取得比较理想的渲染效果,能满足一般的应用需要,再增加光源数后,对整体渲染效果的改善不是很明显。图I是用42个光源模拟间接光照效果的渲染图。

 

  由于一般情况下基于光影跟踪的算法比基于能量辐射的算法速度快,因此本实验只与MAX提供的光影跟踪算法做了对比测试,在渲染效果无明显差异的情况下。本算法渲染速度明显快于光影跟踪算法。所有测试在CPUP4 20 GHz、显卡为RADEON 8500l 024MB内存的计算机上完成,渲染图像的分辨率为800X600。表2中的主要光源指模拟场景中直接光照效果的光源。光影跟踪算法的光线弹跳次数设为一次,其余参数采用MAX6.0中的缺省设置。具体渲染时间
  如表2所示。图2采用了本算法渲染,设置了42个方向光模拟环境光效果,光源的颜色直接指定,同时设置了一个主光源和一个背景光;图3设置了同样的一个主光源和一个背景光,应用MAX的光影跟踪算法进行渲染。
  2种光照算法渲染效果的差异不是很明显,但图2中恐龙嘴的内部偏亮,显得不够自然,因为在实际场景中当光源位于恐龙上部时,没有直接光射进口腔内部,而且反射光也不容易进入,亮度应该偏暗。这是本算法的一个不足之处,容易在一些孔、洞或凹坑部位造成渲染效果不自然,主要原因就在于入射到这些部分的光过强,可通过增加光源数量、降低光源亮度的方法来消除。
  5、结束语
  本文针对目前全局光照算法存在的不足,讨论了用直接光照模拟全局光照的原理及其实现方法。本方法具有可利用GPU硬件加速、光源控制灵活、渲染速度快等特点。下一阶段将对通过视频序列控制光源颜色做进一步研究。

分享到:
评论

相关推荐

    实现一个带有光照和纹理的地球模型动画

    实现一个带有光照和纹理的地球模型动画: 1、 使用二次曲面对象创建一个球体 提示:课本 P88 介绍了二次曲面对象创建方法 用 gluQuadricTexture(quadric, GLU_TRUE); // 创建纹理坐标 2、 创建平行光源模拟太阳光,...

    论文研究-经典光照模型实现人脸图像光照方向准确估计.pdf

    在求解过程中,用模拟退火算法对部分服务弧进行局部调整,使服务弧在一定的范围内在不同的车场之间进行调换,从而避免局部收敛,达到全局优化的效果。以洒水车路线安排为实例,实验结果表明,该算法能有效求解一定...

    基于采蒙特卡罗路径追踪算法的光线追踪.zip

    且由于只追踪从相机发出的光线(即单向路径追踪,区分于双向路径追踪),导致当光源⾯积 很⼩时很难收敛,也难以模拟焦散等特征。 实现路径追踪的基础算法时主要参考了smallpt,同时借助SmallPT —— 99 ⾏代码光线...

    视觉机制引导的非均匀光照图像二次曝光

    首先, 融合退化过程模拟模型(Degradation process simulation model, DPSM)和Retinex模型得到了非均匀光照图像的成像模型, 利用修正的变分Retinex求解方法,获取乘性光照图像; 在人眼视觉阈值性的引导下去除加性光照...

    论文研究-快速Retinex彩色图像增强.pdf

    提出了一种快速Retinex彩色图像增强方法,模拟了人类视觉系统全局和局部自适应性。首先对图像的亮度范围做全局调整;然后在光照估计步骤中对亮度进行Mean Shift滤波,用于其后光照影响的消除;最后对增强结果进行...

    GPU PRO 6 PDF

    5. 使用薄片的实时全局光照(Real-Time Global Illumination Using Slices)     第四部分 阴影(Shadows) 1. 实用屏幕空间软阴影(Practical Screen-Space Soft Shadows) 2. 基于分块的全方位阴影(Tile-...

    数字孪生 智慧城市电力管理中心部署Vue源码.zip

    数字孪生 智慧城市电力管理中心部署全局光照、云、雨、雪、雾、大气、海水,超写实还原数字李生场景。应用领域涉及智慧城市、数字乡村、智慧园区、工业生产、交通、水利、电力、军事、应急、场馆等全行业场景。支持...

    计算机图形学基础-pdf.zip

    第1章绪论 1.1计算机图形学及其相关概念 1.2计算机图形学的发展 ...10.7.2 OpenGL全局光照 10.7.3 OpenGL表面材质 10.7.4 OpenGL透明处理 10.7.5 OpenGL表面绘制 10.7.6 实例 10.8 OpenGL中的纹理映射

    OpenGL 基础教程

     8.1.1 相机模拟  8.1.2 三维图形显示流程  8.1.3 基本变换简单分析  8.2 几何变换  8.2.1 两个矩阵函数解释  8.2.2 平移  8.2.3 旋转  8.2.4 缩放和反射  8.2.5 几何变换举例  8.3 投影变换  8.3.1 正射...

    OpenGL基础图形编程

     8.1.1 相机模拟  8.1.2 三维图形显示流程  8.1.3 基本变换简单分析  8.2 几何变换  8.2.1 两个矩阵函数解释  8.2.2 平移  8.2.3 旋转  8.2.4 缩放和反射  8.2.5 几何变换举例  8.3 投影变换  8.3.1 正射...

    OpenGL图形开发指南(0fen)

    13.4.2 定义均匀间隔的曲面坐标值 13.4.3 纹理曲面 13.4.4 NURBS曲面 第十四章 OpenGL特殊光处理 14.1 光照模型 14.1.1 全局环境光 14.1.2 近视点与无穷远视点 14.1.3 双面光照 14.2 光源位置与衰减 14.3 ...

    影视特效设计制作方案.docx

    目前研究方向仍然基于几个方向: 光照模型的建立和优化 主流分支技术难题集中在全局光线模型建立(global illumination model),光线跟踪技术的算法优化(ray tracing)和光能传递的算法实现(radiosity)。...

    KLCK_Pro_v3.44b4919.apk

    使用Kustom,您可以创建几乎所有内容,从数字和模拟时钟(带秒针)到动画模式,实时地图背景,天气小部件,材质锁屏,复杂的CPU /内存表,随机更改的图像,滚动的图像,陀螺仪效果,天文数据等等。想象力是极限。 ...

    KWGT_Pro_v3.44b4919.apk

    使用Kustom小部件,您可以创建自定义的手表,例如数字和模拟时钟,实时地图小部件,天气小部件,文本小部件,复杂的电池或内存表,随机更改的图像,音乐播放器,世界时钟,天文学小部件等等。想象力是极限。 请...

    Azure[Sky] Dynamic Skybox v7.0.3

    天空系统基于物理学方法,提供一个完整真实的日夜交替循环,可以根据需要自由更改所有天空设置,甚至可以复制其他星球如火星的大气层。此天空可以作为天空盒材料,而且该系统让你可以完全控制场景的一天中的任何时候...

    [3ds.Max-VRay印象超写实建筑效果图表现技法].part1

    技术专题——全局光照(GI)详解 63 2.5.2 设置最终渲染参数 69 2.6 Photoshop后期处理 71 2.6.1 天空及构图处理 71 2.6.2 远景的处理 72 2.6.3 前景的处理 73 2.6.4 中景的处理 76 2.6.5 建筑的处理 79 2.6.6 整体...

    [3ds.Max-VRay印象超写实建筑效果图表现技法].part3

    技术专题——全局光照(GI)详解 63 2.5.2 设置最终渲染参数 69 2.6 Photoshop后期处理 71 2.6.1 天空及构图处理 71 2.6.2 远景的处理 72 2.6.3 前景的处理 73 2.6.4 中景的处理 76 2.6.5 建筑的处理 79 2.6.6 整体...

Global site tag (gtag.js) - Google Analytics