关于光线投射算法的OpenGL高效实现
- 格式:pdf
- 大小:930.91 KB
- 文档页数:4
基于OpenGL的光照处理技术及实现
李治国;郭立
【期刊名称】《计算机仿真》
【年(卷),期】2008(025)003
【摘要】光照处理是增强图形真实感最重要的组成部分,包括光照模型的选择和明暗处理.通过研究影响物体表面反射光的相关因素,提出了真实感图形绘制中如何进行模拟光照计算和明暗插值计算的问题.在分析和研究OpenGL图形库下实现光照效果的改善,并系统地阐述了利用OpenGL函数在VC++环境下实现光照图形的基本过程和方法.最后在计算机设备上实例绘制了不同光照处理方法下的对比图形,显示出了真实感光照的效果,同时具有一定的使用指导意义.
【总页数】3页(P221-223)
【作者】李治国;郭立
【作者单位】中国科学技术大学电子科学与技术系,安徽,合肥,230026;中国科学技术大学电子科学与技术系,安徽,合肥,230026
【正文语种】中文
【中图分类】TP317.4
【相关文献】
1.基于OpenGL的三维服装CAD中光照技术的实现 [J], 吴志明;王鹏
2.利用OpenGL实现RGBA模式下的光照处理 [J], 冯渊
3.基于OpenGL的光照模型及其MFC实现 [J], 金永斌;刘苏
4.基于OpenGL的像素光照计算技术 [J], 陈栗;陈福生
5.基于OpenGL的光照处理技术绘制真实感图形 [J], 王玉华;杨克俭;王玲
因版权原因,仅展示原文概要,查看原文内容请购买。
计算机图形学课程报告光照学生:蒋志强学号:S062311老师:代术成目录目录 (1)计算机图形学及OPENGL简介 (2)光照简介 (3)光照中的光源 (4)光照中的材质 (5)光照中的纹理 (9)三维太阳系模拟程序(SOLAR SYSTEM)介绍 (11)SOLAR SYSTEM详细说明 (12)参考资料 (22)计算机图形学及OpenGL简介计算机图形学是计算机科学的重要组成部分,在模拟仿真、虚拟现实、飞行员驾驶员训练、医疗、教学、演示等各个方面都得到了广泛得应用。
其中最火热的应用是在3D游戏方面,并极大的推动了相关计算机硬件的高速发展。
我第一次接触3D游戏是在小学6年纪的时候,当时玩的就是每个游戏爱好者都如雷贯耳的DOOM。
从那个时候开始,由于游戏商业利润的吸引,相应的计算机硬件的发展速度惊人的迅速,竞争的激烈也可以用残酷来形容。
以至于3D加速卡曾经的业界老大3dfx都走了被nvida兼并的一天。
DOS版本下的DOOM正是因为硬件的飞速发展才为计算机图形学在各个领域的广泛应用铺平了道路,让相应的API软件开发包有了在现实舞台上一展身手的机会。
微软的3D API开发包从最早MS-DOS下的DirectX 1.0到如今Vista的.NET平台下的DirectX 10,OpenGL在工业界的事实上的标准的确立,移动平台上的JA V A 3D 的发展,这些3D开发API的发展为3D开发程序员提供了强大的工具。
在这些3D API中,OpenGL有着特殊的地位,在工业上被广泛的使用,是事实上的工业标准。
OpenGL是一个到图形应将爱你的软件接口(API),包括250个函数,程序员使用它们来创建和控制3D交互程序。
OpenGL是一个独立于硬件的高效接口,可在很多硬件平台上实现,在UNIX、Linux、Mactosh上都可以使用OpenGL开发。
当然在PC上也提供相应的支持,在PC游戏史上上有着划时代意义的电子游戏QUAKE的3D图像在底层就是使用的OpenGL。
1.实验七OpenGL光照效果(选做)1.实验七:OpenGL光照效果。
2.实验目的:通过上机编程,熟悉并掌握OpenGL中光照效果的制造方法。
3.实验要求:(1)先做实验项目:实验六“OpenGL组合图形”。
(2)每人一组,独立完成。
(3)利用OpenGL提供的颜色、光源、材质设置,对实验六“OpenGL组合图形”中自己设计的物体设置绘制颜色和材质参数,并在场景中添加光源,形成一定的光照明暗效果。
4.实验原理及内容:在现实世界中,光线和物体的材质共同决定了物体在人眼中的效果。
OpenGL 中则涉及到绘制颜色、物体的材质参数、场景中的光源颜色和位置,以此达到一定的真实感光照效果。
(1)颜色:OpenGL通过指定红、绿、蓝(RGB)三个成分的各自亮度来确定颜色,有时还有第四个成分alpha:glColor*(red, green, blue[, alpha]);glColor()函数设置当前的绘图颜色,red、green和blue分别为红、绿、蓝的亮度,alpha为透明度,取值均为0.0~1.0。
在该函数之后绘制的所有物体都将使用该颜色。
(2)光线:OpenGL的光照模型中将光源分成四种:发射光:一个物体本身就是一个发光源,如太阳、电灯等,这种光不受其它任何光源的影响。
环境光:从光源出发后光线被环境多次反射,以致没有明确的方向,或者说来自于所有的方向。
被环境光照射的物体,各个表面都均等受光。
散射光:来自于某个方向,被物体表面均匀地反射,例如荧光照明、窗口射入的阳光等。
镜面光:来自于一个方向,被物体强烈地反射到另一个特定的方向。
高亮度的镜面光往往能在被照射的物体表面产生亮斑,如金属球上的高光区。
对于散射光和镜面光,入射角度、距离和衰减因子还会影响到最终的光照效果。
除了物体本身的发射光以外,通常意义上的光并不会是单纯的环境光、散射光或镜面光,而是由这三种类型的光混合组成的。
在OpenGL中,光也是采用RGBA值来定义的,分别描述光线中红绿蓝各成分的相对亮度。
OpenGL(七)光照模型及设置OpenGL把现实世界中的光照系统近似归为三部分,分别是光源、材质和光照环境。
光源就是光的来源,是“光”这种物质的提供者;材质是指被光源照射的物体的表⾯的反射、漫反射(OpenGL不考虑折射)特性;材质反映的是光照射到物体上后物体表现出来的对光的吸收、漫反射、反射等性能;光照环境反应环境中所有光源发出的光经过⽆数次反射、漫反射之后整体环境所表现出来的光照效果。
指定合适的光照环境参数可以使得最后形成的画⾯更接近于真实场景。
⼀、光源光照模型OpenGL中的光照模型中的反射光分为三个分量,分别是环境反射光(Ambient Light)、漫反射光(Diffuse Light)和镜⾯反射光(Specular Light)。
环境光Ambient:是由光源发出经环境多次散射⽽⽆法确定其⼊射⽅向的光,即似乎来⾃所有⽅向。
其特征是⼊射⽅向和出射⽅向均为任意⽅向。
漫射光Diffuse:来⾃特定⽅向,它垂直于物体时⽐倾斜时更明亮。
⼀旦它照射到物体上,则在各个⽅向上均匀地发散出去,效果为⽆论视点在哪⾥它都⼀样亮,其特征是⼊射⽅向唯⼀、出射⽅向为任意⽅向。
镜⾯光Specular:来⾃特定⽅向并沿另⼀⽅向反射出去,⼀个平⾏激光束在⾼质量的镜⾯上产⽣100%的镜⾯反射,其特征是⼊射⽅向和出射⽅向均唯⼀。
创建光源OpenGL中⽤函数glLightfv来创建光源,函数原型是:void glLightfv (GLenum light, GLenum pname, const GLfloat *params)第⼀个参数light指定所创建的光源号,如GL_LIGHT0、GL_LIGHT1、...、GL_LIGHT7。
第⼆个参数pname指定光源特性,这个参数的具体信息见下表所⽰。
第三个参数设置相应的光源特性值。
例如下边定义了⼀个位置在(0,0,0),没有环境光,镜⾯反射光和漫反射光都为⽩光的光源:GLfloat light_position[] = { 0.0, 0.0, 0.0, 0.0 };GLfloat light_ambient [] = { 0.0, 0.0, 0.0, 1.0 };GLfloat light_diffuse [] = { 1.0, 1.0, 1.0, 1.0 };GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };glLightfv(GL_LIGHT0, GL_POSITION, light_position);glLightfv(GL_LIGHT0, GL_AMBIENT , light_ambient );glLightfv(GL_LIGHT0, GL_DIFFUSE , light_diffuse );glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);光源的位置坐标采⽤齐次坐标(x, y, z, w)设置。
使用 vtk体绘制中常用的光线投射算法使用vtk体绘制中常用的光线投射算法光线投射算法是计算机图形学中常用的算法之一,用于在三维空间中模拟光线的传播和交互。
在vtk(Visualization Toolkit)中,光线投射算法被广泛应用于体绘制(Volume Rendering)中。
本文将介绍vtk体绘制中常用的光线投射算法,并对其原理和应用进行详细说明。
一、光线投射算法概述光线投射算法是一种基于光线追踪的体绘制算法,通过模拟光线与物体之间的相互作用,实现对三维体数据进行可视化。
它基于光线与物体之间的交互,计算光线在物体内部的传播路径和颜色,从而生成逼真的体绘制效果。
在vtk中,光线投射算法主要包括两个步骤:光线传播和光线采样。
光线传播是指光线从视点出发,沿着视线方向向前传播,直到与物体相交或超出体数据范围为止。
光线采样是指在光线与物体相交的位置上进行采样,获取物体的颜色和透明度信息,并将其累积到最终的像素颜色中。
二、光线传播算法光线传播算法是光线投射算法的核心部分,它决定了光线的传播路径和采样点。
在vtk中,常用的光线传播算法有正向投影和反向投影两种方式。
1. 正向投影(Front-to-Back Compositing)正向投影是指光线从视点出发,沿着视线方向向前传播,直到与物体相交或超出体数据范围为止。
在传播过程中,每次都将光线经过的像素颜色叠加到最终的像素颜色中,从而得到物体的透明效果。
正向投影算法通常采用透明度混合的方式,根据物体的透明度信息对像素颜色进行加权叠加。
透明度越高的像素将对最终的像素颜色贡献越大,从而实现透明效果。
该算法适用于透明度变化较大的情况,但对于密度变化较大的物体可能会出现混合效果不佳的问题。
2. 反向投影(Back-to-Front Compositing)反向投影是指光线从视点出发,沿着视线方向向后传播,直到与物体相交或超出体数据范围为止。
在传播过程中,每次都将光线经过的像素颜色累积到最终的像素颜色中,从而得到物体的阴影效果。
基于PC的体绘制技术陈良琴;陈新;钟少君【摘要】研究一种基于PC的体绘制技术,采用改进的光线投射算法,并以VisualC++ 6.0为开发环境,实现基于OpenGL光照模型的直接体绘制系统,突破现有三维体绘制大都基于专用图像工作站的现状,在微机上成功地实现从建立灰度体素模型、灰度体数据显示,包括灰度梯度计算、光照效应计算、投影合成显示等整个体绘制过程.并在Widows 2000平台下形成界面友好的人机交互通用化系统,从而较好地解决了体绘制生成图像质量和显示速度之间的深刻矛盾,达到快速有效完成三维图像显示的目的,并应用于外科手术支援系统中.【期刊名称】《现代电子技术》【年(卷),期】2007(030)014【总页数】4页(P40-42,45)【关键词】体绘制;光线投射;OpenGL;灰度体系模型【作者】陈良琴;陈新;钟少君【作者单位】福州大学,物理与信息工程学院,福建,福州,350002;福州大学,物理与信息工程学院,福建,福州,350002;福州大学,物理与信息工程学院,福建,福州,350002【正文语种】中文【中图分类】TN919.82《三维图像融合技术研究与外科手术支援系统》综合研究图像融合技术、三维定位技术、三维图像识别技术和3D图像显示技术,并研制基于三维CT,MR或B超重建图像与人体体表图像相融合的外科手术支援系统。
1 引言直接体绘制(direct volume rendering),简称体绘制(volume rendering) 是随着可视化技术的发展而逐渐形成的较新的研究领域。
他与基于传统图形学的面绘制技术有着本质的不同。
体绘制的特点在于不构造物体表面几何描述而直接对体数据进行显示。
他是根据选定的体光照模型,研究光线穿过三维体数据场时的变化,将三维空间的体数据直接映射成为带有深度信息的二维图像。
同时最为重要的是,体绘制可以展现物体内部和表面的整体信息,在显示图像中,物体的细微结构和微小变化都可以不同层次地表现出来,给人更直观、更方便的视觉感受。
一种符合OpenGL的光照引擎软件设计与实现摘要:光照计算是绘制真实感三维图形的关键。
文中研究光照处理的原理和基本方法,提出一种符合OpenGL标准光照的软件设计与实现方法。
在OpenGL 算法仿真平台上的验证结果表明,实现的API符合OpenGL 1.3标准。
关键词:GPU;OpenGL;光照处理;Phong模型;1 引言光照处理可以模拟现实世界中光线照射到物体表面的效果。
OpenGL标准提出固定的ADS光照模型[1],具体的实现方式没有唯一标准。
本文分析OpenGL 的光照处理原理,提出一种软件实现,在仿真平台上实现,结果表明正确、完整地完成了光照计算。
2 光照功能的设计真实反映物体表面的光照效果,关键是选择合适的光照模型。
根据光照模型,可以计算出物体显示在屏幕上的每个点的颜色。
2.1 基本模型若根据光照的物理特性计算,过程非常复杂,因此采用简化光照计算经验模型。
OpenGL中采用ADS光照模型,这是最简单的一种光照模型,ADS分别指:a. 环境光:来自各个方向的光,向各个方向反射;b. 散射光:来自一个方向的光,向各个方向反射;c. 镜面光:来自一个方向的光,向一个方向反射;对于材料而言,还有一个描述表面自身发射的光线量:d. 发射光:没有来源,向各个方向反射;不能将它看做光源。
对上述各个光进行求和,即可得到物体表面一个点的光照。
除此之外,应添加基于距离的衰减项。
OpenGL中采用3个参数对光强衰减进行模拟,即常量衰减因子kc、线性衰减因子kl和二次衰减因子kq。
若光源与物体上点的距离为d,则整体衰减因子OpenGL中还规定了三种基本的光源类型:方向性光源、位置性光源和聚光灯。
如图2所示,方向性光源模拟位于无限远处的光源,光照射在物体表面时,入射光都是平行的,光强度与光源的方向无关,也不需要衰减;位置性光源模拟距离一般的光源,入射光的角度取决于光源与物体表面上点的位置关系,光强度取决于光源与物体的位置关系和观察点的位置;聚光灯是对位置性光源的形状加以限制,使它的发射角度限于一个椎体之内。
opengl光照模型实现课程设计一、课程目标知识目标:1. 让学生掌握OpenGL中光照模型的基本概念和原理,包括环境光、散射光、镜面光等;2. 使学生了解并掌握OpenGL中实现光照效果的常用函数和技巧;3. 让学生掌握如何使用光照模型为三维场景添加真实感。
技能目标:1. 培养学生运用OpenGL库进行三维场景光照编程的能力;2. 培养学生通过调整光照参数,优化场景光照效果的能力;3. 培养学生运用光照模型解决实际场景渲染问题的能力。
情感态度价值观目标:1. 培养学生对计算机图形学及三维渲染技术的兴趣和热情;2. 培养学生具备团队协作精神,学会在项目实践中互相交流、分享经验;3. 培养学生关注科技发展,了解计算机图形学在现实生活和产业中的应用。
课程性质分析:本课程为计算机图形学相关课程,旨在让学生掌握OpenGL光照模型的应用,提高三维场景渲染的真实感。
学生特点分析:学生具备一定的编程基础和图形学知识,对OpenGL有一定了解,但对光照模型的应用尚不熟悉。
教学要求:1. 理论与实践相结合,注重学生动手实践能力的培养;2. 结合实际案例,引导学生运用所学知识解决实际问题;3. 注重培养学生的团队协作和沟通能力。
二、教学内容1. 光照模型基本原理:包括环境光、散射光、镜面光的产生和计算方法,以及光照模型的组成要素。
- 教材章节:第三章“光照模型基础”2. OpenGL光照函数:介绍OpenGL中实现光照效果的相关函数,如glEnable(GL_LIGHTING)、glLightfv等。
- 教材章节:第四章“OpenGL光照函数”3. 光照参数设置:讲解如何设置光照参数,包括光源位置、颜色、强度等,以及材质属性。
- 教材章节:第五章“光照参数设置”4. 光照效果优化:分析如何通过调整光照参数,优化三维场景的光照效果,提高真实感。
- 教材章节:第六章“光照效果优化”5. 实践案例:结合实际项目,运用光照模型为三维场景添加光照效果,培养学生的实际操作能力。
基于GPU的实时光线投射算法
何晶;陈家新;黎蔚
【期刊名称】《计算机工程与应用》
【年(卷),期】2008(44)9
【摘要】介绍了一种基于GPU(可编程图形处理单元)的快速实时光线投射算法.为满足大规模体数据集的绘制要求,利用当前GPU的新特性,直接将体数据作为纹理栽入显存,采用预积分分类方法在GPU中对体数据进行重采样和分类,避免了计算机主内存与GPU纹理内存之间数据交换的瓶颈问题;利用硬件支持的三维纹理和片元着色器,实时计算每个体素的梯度,实现高质量的光照,保证高质量的图像绘制效果.实验结果表明该方法在医学三维数据场可视化中,能够实时、高效地生成高质量的交互式体可视化图像.
【总页数】3页(P40-42)
【作者】何晶;陈家新;黎蔚
【作者单位】河南科技大学,电子信息工程学院,河南,洛阳,471003;河南科技大学,电子信息工程学院,河南,洛阳,471003;河南科技大学,电子信息工程学院,河南,洛阳,471003
【正文语种】中文
【中图分类】TP317.4
【相关文献】
1.基于GPU光线投射算法的心脏体数据可视化 [J], 刘金明;刘桂阳
2.基于GPU加速的改进的光线投射算法研究 [J], 唐振禹;吕晓琪;任国印
3.一种基于GPU的改进光线投射算法 [J], 张阿关;蒋慧琴;马岭;杨晓鹏;刘玉敏
4.基于GPU光线投射算法的心脏体数据三维可视化 [J], 刘金明;王宽全
5.基于简化光线投射GPU大规模地形实时可视化 [J], 杨莹
因版权原因,仅展示原文概要,查看原文内容请购买。
基于光线投射的全GPU实现的地形渲染算法
刘小聪;杨新
【期刊名称】《计算机仿真》
【年(卷),期】2010(027)002
【摘要】地形渲染算法需要处理大量的地形及纹理数据,影响三维动画显示的流畅性和性能提高.随着GPU绘制能力提高,CPU与GPU的负载失衡逐渐成为制约性能提高的瓶颈.结合现代GPU体系结构,在GPU上实现了基于光线投射(RayCasting)的地形渲染算法.算法简化了Ray Casting算法,把LOD策略和预裁剪统一到GPU 中实现,保证了CPU和GPU之间的负载平衡,同时简化了应用程序的编制.为获得较好效果,还采用查找表(Lookup-Table)的实时纹理合成算法合成纹理,进一步降低了CPU处理纹理数据的开销.实验表明,本文算法不仅充分利用了GPU的处理能力,还降低了CPU负载,提高了动态三维重建的帧刷新率,并获得较逼真的渲染效果.【总页数】5页(P226-230)
【作者】刘小聪;杨新
【作者单位】上海交通大学图像处理与模式识别研究所,上海,200230;上海交通大学图像处理与模式识别研究所,上海,200230
【正文语种】中文
【中图分类】TP391.9
【相关文献】
1.基于GPU的地形渲染算法研究 [J], 李爱菊;陈景霞;李鑫
2.在GPU上实现地形渲染的自适应算法 [J], 王旭;杨新;王志铭
3.基于简化光线投射GPU大规模地形实时可视化 [J], 杨莹
4.GPU实现的快速分层地形渲染算法 [J], 刘博
5.可伸缩地形渲染中的GPU光线投射算法 [J], 王海鹏;吴昊
因版权原因,仅展示原文概要,查看原文内容请购买。
五步实现向OpenG1ES延迟光照系统添加光线追踪为了能够在交互式帧率情况下实现图像渲染,所使用的引擎必须近似真实世界的一些现象--例如阴影一一而不是简单的模拟。
随着实施渲染技术不断向前发展,实现这些功能的成本也在不断降低。
尽管从传统的角度来看像是一个复杂的离线处理过程,但是受益于可见的周围物体,光线追踪正成为一个越来越可行的选择。
谈到我们的PowerVR光线追踪硬件平台,基于分布的延迟渲染光栅化功能与负责光线追踪的模块单元练习紧密,这就给我们提供了一种选择,作为光栅化渲染的一种补充,而不是直接取代。
在这篇文章中,我将向大家介绍如何向OpenG1ES延迟光照系统添加光线追踪功能。
延迟光照+光线追踪G-buffer混合渲染是我们在大部分光线追踪实例中所采用的技术,因为事实证明它可以充分利用我们的PowerVR光线追踪硬件平台。
GPU的光栅轨迹用于在屏幕上渲染对象数据。
这些信息用于初始化第二次的光线,然后传输给硬件平台来实现。
通过每个像素使用更少的光线,应用程序就可以合理安排光线预算,以便在后期管道最需要的时候。
当然这种方法还有一个更大个好处一一它还可以多加利用已经生成G-buffers的延迟光照系统!下面是向一个基于OpenG1ES的延迟光照系统添加光线追踪功能的五大步骤:第一步:更新场景层次结构(光线追踪)与光栅化渲染不同的是,在光线追踪AP1中不提供绘制函数调用。
因此每一帧的图像渲染是将光线发射到场景层次加速结构中,其中包含了世界空间内所有对象物体数据信息。
如果层次结构内的对象数据不需要改变,那么每一帧的渲染我们可以重复使用场景层次,但是当有些组件需要修改时,那么在光线追踪渲染前相应的场景层次必须要重新搭建。
光线追踪流程一一场景层次结构生成除此之外一下条目描述了如何进行任务分工:条目描述构件一个3D对象以及相关的材料属性(例如缓存(buffers)和着色器)构件组场景加速结构用于高效的光线盒子和光线三角形测试,由众多构件或者构建组组合而成场景阵列构建组处理阵列,光线必须传递给阵列中一个元素当构建组搭建完成后,输入组件就会经过顶点着色程序处理,从而转换为世界空间。
全局光照2.5 光线跟踪算法2.5 光线跟踪算法2.5.1 基本光线跟踪算法zT1 R122.5.1 基本光线跟踪算法2.5.1 基本光线跟踪算法2.5.1 基本光线跟踪算法2.5.2 快速光线跟踪算法2.5.2 快速光线跟踪算法2.5.2 快速光线跟踪算法2.5.2 快速光线跟踪算法P in P out2.6 辐射度光照模型dYX2.6 辐射度光照模型2.6 辐射度光照模型d2.6 辐射度光照模型2.6 辐射度光照模型2.6 辐射度光照模型2.6 辐射度光照模型中的光照3.1 OpenGL中的光照设置设置光照模型属性3.2 定义法矢量3.2 定义法矢量P 2 P 3u 2*p3, double *n )12N u un[0]=a[1]*b[2]-a[2]*b[1]; n[1]=a[2]*b[0]-a[0]*b[2];3.3 创建光源3.3 创建光源3.3 创建光源3.3 创建光源3.3 创建光源3.3 创建光源3.3 创建光源3.3 创建光源3.3 创建光源GL_SPOT_CUTOFF3.4设置光照模型属性3.4设置光照模型属性3.4设置光照模型属性3.4设置光照模型属性3.5定义物体表面材质属性3.5定义物体表面材质属性3.5定义物体表面材质属性3.5定义物体表面材质属性3.5定义物体表面材质属性void init(void)glMaterialfv(GL_FRONT,GL_SHININESS,mat_shiness);glShadeModel(GL_SMOOTH); /*绘制茶壶*/void myReshape(GLsizei w,GLsizei h)。
OpenGL光源光照使用范例1. 光照模型环境光——经过多次反射而来的光称为环境光,无法确定其最初的方向,但当特定的光源关闭后,它们将消失.全局环境光——每个光源都能对场景提供环境光。
此外,还有一个环境光,它不来自任何特定的光源,称之为全局环境光。
这也就是为什么我们不加任何自定义光源,也能看见绘制的物体的原因。
散射光——来自同一方向,照射到物体表面后,将沿各个方向均匀反射,因此,无论从哪个方向观察,表面的亮度都相同. 主要通过设置GLfloat light_diffuse[] = { 0.0, 1.0, 0.0, 1.0 }来发射绿光镜面反射光——来自特定方向,也被反射到特定方向.镜面反射度与之相关.材质发射光——用于模拟发光物体.在OpenGL光照模型中,表面的发射光增加了物体的亮度,它不受光源的影响,另外,发射光不会给整个场景中增加光线.当光照射到一个物体表面上时,会出现三种情形。
首先,光可以通过物体表面向空间反射,产生反射光。
其次,对于透明体,光可以穿透该物体并从另一端射出,产生透射光。
最后,部分光将被物体表面吸收而转换成热。
在上述三部分光中,仅仅是透射光和反射光能够进入人眼产生视觉效果。
这里介绍的简单光照模型只考虑被照明物体表面的反射光影响,假定物体表面光滑不透明且由理想材料构成,环境假设为由白光照明。
一般来说,反射光可以分成三个分量,即环境反射、漫反射和镜面反射。
环境反射分量假定入射光均匀地从周围环境入射至景物表面并等量地向各个方向反射出去,通常物体表面还会受到从周围环境来的反射光(如来自地面、天空、墙壁等的反射光)的照射,这些光常统称为环境光(Ambient Light);漫反射分量表示特定光源在景物表面的反射光中那些向空间各方向均匀反射出去的光,这些光常称为漫射光(Diffuse Light);镜面反射光为朝一定方向的反射光,如一个点光源照射一个金属球时会在球面上形成一块特别亮的区域,呈现所谓“高光(Highlight)”,它是光源在金属球面上产生的镜面反射光(Specular Light)。