登录 注册
当前位置:主页 > 资源下载 > 50 > 在C/C++嵌入式系统编程中构建光照模型

在C/C++嵌入式系统编程中构建光照模型

  • 更新:2024-06-23 23:29:14
  • 大小:859KB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:嵌入式 - 硬件开发
  • 格式:PDF

资源介绍

一、 建立光照模型 在现实生活中,某些物体本身就会发光,例如太阳、电灯等,而其它物体虽然不会发光, 但可以反射来自其它物体的光。这些光通过各种方式传播,最后进入我们的眼睛——于 是一幅画面就在我们的眼中形成了。 就目前的计算机而言,要准确模拟各种光线的传播,这是无法做到的事情。比如一个四 面都是粗糙墙壁的房间,一盏电灯所发出的光线在很短的时间内就会经过非常多次的反 射,最终几乎布满了房间的每一个角落,这一过程即使使用目前运算速度最快的计算机, 也无法精确模拟。不过,我们并不需要精确的模拟各种光线,只需要找到一种近似的计 算方式,使它的最终结果让我们的眼睛认为它是真实的,这就可以了。 OpenGL 在处理光照时采用这样一种近似:把光照系统分为三部分,分别是光源、材质 和光照环境。光源就是光的来源,可以是前面所说的太阳或者电灯等。材质是指接受光 照的各种物体的表面,由于物体如何反射光线只由物体表面决定(OpenGL 中没有考虑 光的折射),材质特点就决定了物体反射光线的特点。光照环境是指一些额外的参数,它 们将影响最终的光照画面,比如一些光线经过多次反射后,已经无法分清它究竟是由哪 个光源发出,这时,指定一个“环境亮度”参数,可以使最后形成的画面更接近于真实情 况。 在物理学中,光线如果射入理想的光滑平面,则反射后的光线是很规则的(这样的反射 称为镜面反射)。光线如果射入粗糙的、不光滑的平面,则反射后的光线是杂乱的(这样