九游(中国)体育第一门户 - 官方网站

第五章 光学模型及其算法实现_九游 - 体育中国官方网站
新闻资讯

第五章 光学模型及其算法实现

  九游 - 9游 体育官网第五章光学模型及其算法实现一、复习要求 1.简单光反射模型2.增量式光反射模型3.局部光反射模型4.光源模型5.简单光透 射模型6.光线跟踪显示技术 二、内容提要 1.简单光反射模型 (1)基本光学原理 照度定律普通物理学中的照度定律(Lambert 余弦定律): 式中,反射常数0与物体表面性质有关,也描述物体的颜色。 注意:按一般规定,入射光L是从表面上一点指向光源的矢量。 材质分配事实上,一个物体的颜色就是它所反射出的光的颜色,取决于光源的颜色和该物体对 光的反射性。例如,将一个阳光下的红球放到只有黄灯照明的室内,它就变成黑的了,因 为那里没有任何红色光可被反射,而所有黄色光都被吸收了。 在使用光照时,原有的“绘图颜色”概念已不能适用,而采用“材质”一词。 定义:材质(material)被定义为一个物体对环境光、漫反射光、镜面反射光的反射性。它 们分别以一个对应的RGB 值表示,称为材质的Ambient, Diffuse, Specular 分量(即光学定 ads材质还可以包括另一种辐射性,用于描述自身发光的物体,例如汽车尾灯或夜光表。通 4U 电脑书库() maito: 常,灯具的表面也被看成是一个自发光体。 折射和透射Snell 正弦定律(或称折射定律)属于几何光学原理,用于确定两个物体间的入射角与 折射角的关系: sin 21式中,0]表示在物体1 表面处的入射角,而0 表示在物体2内部的折射角;耳]和耳2 分别是这两个物体的折射率。 如图5-1 所示,除了从同侧光源射过来的反射光外,观察者还将会看到从另一侧光源穿 过物体后射出的透射光: (2)简单光反射模型(Phong 模型)的导出 简单光反射模型只模拟物体表面对光的反射作用,并不考虑物体表面的透射和散射作 用。在简单光反射模型中一个点光源照射到物体表面一点,再反射出来的光,可分为三部 分:环境光(泛光)、漫反射光镜面反射光。 在Phong 模型中,物体表面的光照效果是环境反射光、光源的漫反射光和镜面反射光的 物体2 物体1TI1 物体1 反射方向 另一侧光源月侯入射光 透射方向视线 光的折射和透射 .合成效果。 •环境反射光(Ambient Light):从背景物体散射出来的光。可用下式计算: •光源的漫反射光(DiffuseLight):从一个粗糙的、无光泽的表面反射出,它与入射角有关 (即符合Lamber 定律) dL其中K •镜面反射光(SpecularReflection):从一个光滑的、明亮的表面反射出(或称单反射光): 其中,K为单向反射率;n控制反射光束的锥度,其值越大,光束越窄,表示该表面越 (即视线位于反射方向上)时,将呈现一个高光点hotspot)(如白光下的铜球上的亮白点) 根据Phong 模型的定义,在多边形所有的点处按下式计算光强:I=I 也可按RGB分解成三个分量:(K dr srsg sb ar ag ab 2.增量式光反射模型 (1)双线性光强插值法(Gourand Shading) 在图像空间中,Gouraud 光照模型(双线性光强插值法)计算各像素的光强如下: cos0(只考虑环境光和 aa dL 漫反射光) 而顶点的法矢等于各邻面法矢的平均值: 对于多边形边上和内部的各点(像素)用顶点明暗度的线 求法矢的平均值 .另一种计算多边形边上和内部的各点光强的改进方法是增量法,它利用扫描线的相关性 来简化计算如下: 对于边上的点: AIAD 对于内部的点: AIST, Gouraud 算法优缺点:算法简单,计算量小。但不能再现高光。适用粗糙表面 (2)双线性法向插值法(Phong Shading) 在图像空间中,Phong 光照模型(双线性法向插值法)计算各像素的度如下 顶点的法矢等于各邻面法矢的平均值,即丄N ni 对于多边形上和内部的各点(像素),用顶点法矢的线性插值。计算公式如下:的切平面法矢的近似值 Phong 算法优缺点:真实感强,但计算量较大,适用光滑表面 目前大多数渲染软件采用Gouraud 和Phong 光照模型作为Quick(快速)和Full(完全 Rendering,能满足一般真实感显示要求。Gouraud 和Phong 光照模型两者比较如下: Gouraud Shading Phong Shading 双线性光强插值法 适用于漫反射光(粗糙表面) 马赫带效应较重 双线性法向插值法 适用于镜面反射光(特别是有高光的金属表面) 马赫带效应较轻 生成多面体真实感图象效果差 高光域准确 速度较快(算法简单、计算量小) 速度较慢(计算量较大) 然而,这类简单光照模型共同存在下列的问题: .由于光强函数的一阶导数不连续,线性插值法均有马赫带效应(光照效果在数值上不连 透明效果需要另作处理才行,而且不能产生阴影。注:实用 Phong 光照模型的计算公式要考虑随距离的线)加速算法 在简单的光线跟踪算法中,每条射线都要和所有物体求交,然后再对所得的全部交点 进行排序,才能确定可见点。因此对于每条射线,计算复杂度都是O(n)以上。当物体个 数较少时,计算量还可以接受。但是当环境较复杂,物体个数较多时(例如成干个原子组 成的分子模型或成万个多边形构成的建筑物模型),简单的光线跟踪算法的处理速度就无 法接受了。然而,对于每—条射线,它实际上只与少数几个物体有交,与绝大多数物体根 本不相交。也就是说,对于复杂环境,大多数求交计算都是无效运算。我们可以通过一些 途经来减少这种无效运算。这就是加速算法所要考虑的主要问题。一般说来,加速算法是 通过预先把物体按空间位置适当地组织起来,以便在绘制时缩小搜索范围,减少排序时间 来提高效率的。常用的组织方法有包围体树、自适应八叉树和三维立方体阵列。 3.局部光反射模型 局部光反射是由光源直接照射到射入点,经漫反射和镜面反射到视点而形成。 4.光源模型 在计算机图形学中,光源模型的三个基本因素是几何形状、光强分布和光谱分布。 有向光源(directedlights):方向保持不变,即为平行光(发射出半圆柱面光); 光源强度不作衰减。如太阳光、远光源。 点光源(pointlights):方向是从光源位置到面片中心,发射出圆球面光;光强分 布是各向同性的,要考虑随距离的线性或平方反比衰减(falloff);可以产生阴影。 聚光灯(sp。tlights):发射出圆锥形光束;要考虑随距离的线性或平方反比衰减; 可以产生软阴影区域。 从几何形状上讲,一般电灯(钨丝白炽灯)理想化成点光源,而且光强分布是各向同 性的;一般日光灯(长管灯)可理想化成线光源;经过特殊设计的吸顶灯可理想化成面光 .5.简单光透射模型 1)透明效果的模拟方法 透射计算公式最简单的透明算法不考虑折射的影响,即假定光线穿过透明体表面时不改变方向,,此 (如图12.11C所示) 称为物体的透明度(Transparency),可取值范围从0(不透明)至1.0 (全透明)。光线照 射到透明体表面的两个交点A和B处的光强分别是反射光强I reflecttransmit 这也称为规则透射。 注意:1.在颜色四元组RGBA中,ALPHA ,称作不透明度。2.对不透明物体,将会在地面上投射出阴影(Shadow)。 漫透射、理想透明和半透明一个点光源照射在透明体表面上,将可能产生如下三种光透射作用: 对于表面粗糙的透明物体上,将形成漫透射。透射出来的光将朝着各方向均匀地散 射,此时透射光强I 及入射角的余弦cose成正比,即: 进入一般较透明(或半透明)物体的透射光也往其他方向传播一部分透射光,并且某方向透射光的强度随着偏离透射方向(即下述卩角的增大)而明显地衰减。 LCOSnt 用于控制透射光束的锥度,其范围1〜2000;其值越大,光束越窄。卩为视线V与透射方向T之间的 夹角。 显然,在全透明场合下 TR 图5-6光的透射只有光 的透射效果: .2)Wittded 光透射模型 Whitted 光透射模型是1980 年Whitted 提出的,并运用在光线跟踪算法的实现中。它考 虑了环境光、漫反射光和镜面反射光(即Phong 模型)以及从环境反射或透视到视线的光。 具体计算如下: cosns ii式中,第一部分包含了Phong 模型中的所有参数;第二部分模拟了场景光投射在光滑表面 上产生的理想镜面反射作用(即a 分别tst表示场景中其他物体反射和透射过来的光在该物体表面上的镜面映像和透射映像,如图所 3)Hall光透射模型 Hall 整体光照模型要比Whitted 模型更为完善,还考虑沿着反射方向和折射(透射)方 向的散射现象,以模拟“透射高光”。 在Hall 整体光照模型中,假定光源和视点都在无穷远处,使光线和视线方向简化为常 向量。计算公式如下: cosns cosnt LiXI Liii 镜面反射光和透射光。 图5-7 透明体表面上的镜面映像和透射映像 .即由其局也物K体反射或透射在透明体表面上产生的沿着视线.光线)基本光线跟踪算法 Ray-Tracing 算法的基本思想如下: 在物体空间中,假定视点取在Z 轴上,XOY平面取作为投影屏幕(其与显示器屏幕的像 素布局一一对应),通过跟踪多个光源对各像素的贡献而计算出它们的色彩明暗度。 在光线遇到某一物体(不是背景)时,应继续跟踪光线,而不管光线的强度或深度如何。 光线跟踪算法包括下列的三个步骤: