最新OpenGL编程技术光照课件PPT.ppt

最新OpenGL编程技术光照课件PPT.ppt

ID:62072953

大小:1.03 MB

页数:69页

时间:2021-04-14

最新OpenGL编程技术光照课件PPT.ppt_第1页
最新OpenGL编程技术光照课件PPT.ppt_第2页
最新OpenGL编程技术光照课件PPT.ppt_第3页
最新OpenGL编程技术光照课件PPT.ppt_第4页
最新OpenGL编程技术光照课件PPT.ppt_第5页
资源描述:

《最新OpenGL编程技术光照课件PPT.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、OpenGL编程技术光照(d)理想镜面反射方向与视线方向的夹角(a)漫反射(b)理想镜面反射(c)一般光滑表面的镜面反射图6-6光学反射模型光学反射模型通常物体表面的反射光可以认为包含三个分量:对环境光的反射、对特定光源的漫反射和镜面反射。环境光的反射:环境光(ambientlight)来自周围环境(如墙面)散射的光,在空间近似均匀分布,入射至物体表面后向空间各个方向均匀反射出去。物体对环境光的反射分量表示:其中Ia是入射的环境光亮度,Ka是环境光漫反射系数,它与物体表面性质有关。如果简单光照模型中仅考虑环境光的反射分量,则物体表面的亮度是一个恒定值,

2、没有明暗的自然过渡。散射(diffusereflection):散射分量表示特定光源在物体表面的反射光中那些向空间各个方向均匀反射出去的光。兰伯特(Lambert)余弦定律指出:当点光源照射到一个散射体时,其表面反射光亮度和光源入射角(入射光线和表面法矢量的夹角)的余弦成正比,即其中Il是来自点光源的入射光亮度。Kd是漫反射系数,与物体表面性质有关。是入射光线和表面法矢量的夹角(如果>90?)。明暗处理图6-7(a)多边形表示的物体(b)Gouraud明暗处理光照计算时需要用到多边形上点的法矢量,如果多边形上点的法矢量总是取多边形的面法矢,则由于不

3、同平面片之间法矢量不连续,最终绘制出来的图像看起来呈多面体状。解决方法:首先多边形的顶点法矢量不再简单的取为其所在多边形的面法矢,而是取为共该顶点的所有多边形的面法矢的平均值;其次多边形内部点的法矢量也不再简单地取为多边形的面法矢,而是利用多边形顶点的法矢量通过双线性插值计算出。图6-8对P点进行双线性插值Phong明暗处理(插值法矢)如图6-8,P1、P2、P3是多边形顶点,其法矢量视为共该点的所有多边形法矢量的平均值。由P1、P2的法矢量可以线性插值计算出A点的法矢量,由P1、P3的法矢量可以线性插值计算出B点的法矢量,于是P点的法矢量可以由A、B

4、点处的法矢量线性插值计算出,计算出P的法矢量后应用简单光照模型可以计算出P点的光亮度。Gouraud明暗处理(插值颜色)由于每个像素点都需要法向量插值和光照计算,Phong明暗处理计算量较大,一种简化的处理方法是先利用光照模型计算出多边形顶点处亮度,然后对亮度进行双线性插值,直接获得像素的颜色,如图6-8,P1、P2、P3是多边形顶点,其亮度已经计算出。A点的亮度可以由P1、P2点的亮度线性插值计算出,B点的亮度可以由P1、P3点的亮度线性插值计算出,于是P点的亮度可以由A、B点的亮度线性插值计算出。Phong明暗处理计算量远大于Gouraud明暗处理

5、,但效果好。5.2OpenGL中的光照OpenGL提供的函数可以方便地实现隐藏面消除、光照计算、纹理映射。OpenGL中隐藏面的消除采用的是Z缓冲器算法。glEnable(GL_DEPTH_TEST)和glDisable(GL_DEPTH_TEST)打开和禁止深度测试。OpenGL进行光照计算时采用的是简单光照模型,只考虑光源直接照射下物体表面的反射,不考虑光在物体间的反射和光的透射。glEnable(GL_LIGHTING)和glDisable(GL_LIGHTING)打开和禁止光照计算。OpenGL认为物体表面的反射光包含三个分量:物体本身发出的光

6、、对环境光的反射,对特定光源的反射。①物体本身发出的光。OpenGL认为物体本身是可以发光的,但是这种光只会对物体本身的亮度产生影响,不能影响其它物体的光亮度。物体本身发出的光记为。②对环境光的反射。这里的环境光指的是全局环境光,它不依赖于任何特定光源。全局环境光概念的提出使得即使场景中没有任何光源,观察者也可以看到物体。假设全局环境光亮度Iglobal,物体表面的环境光反射系数为Ka,则物体对全局环境光的反射为。③对特定光源的反射。在OpenGL中,光源被定义为聚光灯。定义一个聚光灯需要指定光源的位置(即锥顶),聚光灯的方向(即圆锥轴的方向),聚光灯

7、的散射角(即圆锥中轴和边的夹角)。聚光灯将光的发射形状调整为圆锥形,此时空间光强度分布可以用聚光灯光强分布系数乘以锥顶处聚光灯光强给出。图6-15视线和反射光线夹角图6-16聚光灯综合三个分量,在OpenGL中物体表面的反射光亮度为:参照P170做解释。为减小计算量,OpenGL采用Gouraud明暗处理方法。glShadeModel(GL_SMOOTH)和glShadeModel(GL_FLAT)形式的函数调用来设置。图6-15视线和反射光线夹角图6-16聚光灯6.6.1、光照模型◇介绍例程:ep_7_1_光照球6.6.1、光照模型◇OpenGL光组

8、成在OpenGL简单光照模型中的几种光分为:辐射光(EmittedLight)、环境光(Amb

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。