《光照计算机图形学.pptx》由会员分享,可在线阅读,更多相关《光照计算机图形学.pptx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基本光照模型基本光照模型l 光源l 表面光照效果l 环境光 l 漫反射l 镜面反射和Phong模型l 漫反射和镜面反射的合并l 多光源的漫反射和镜面光照模型光照模型的定义光照模型的定义:意义:意义:用于物体表面某点处的光强度的计算用于物体表面某点处的光强度的计算模拟物体表面的光照物理现象的数学模型就叫做的光照模型模拟物体表面的光照物理现象的数学模型就叫做的光照模型简单光照模型简单光照模型亦称局部光照模型,其假定物体是不透明的,只考虑光亦称局部光照模型,其假定物体是不透明的,只考虑光源的直接照射,而将光在物体之间的传播效果笼统地模拟为环境光源的直接照射,而将光在物体之间的传播效果笼统地模拟为环境
2、光。可以处理物体之间光照的相互作用的模型称为整体光照模型可以处理物体之间光照的相互作用的模型称为整体光照模型光源 任意发出辐射能量的对象统称为光源,任意发出辐射能量的对象统称为光源,它对场景中其他对象的光照效果有贡献。它对场景中其他对象的光照效果有贡献。另外我们可以通过指定其位置、另外我们可以通过指定其位置、发射光的颜色、发射方向以及光发射光的颜色、发射方向以及光源的形状来定义光源的特性。源的形状来定义光源的特性。太阳、月亮、星星、路灯都能称为光源太阳、月亮、星星、路灯都能称为光源光源分类光源分类:点光源、无穷远光源点光源、无穷远光源点光源:一个点光源可通过给出其位置和发射的颜色来定义点光源模
3、型是对场景中比对象小得多的光源的合理逼近,离场景不是太近的大光源也可以利用点光源模型来模拟。光照模型中点光源的位置用来确定场景中哪些对象由该光源照明,并计算到选定对象表面位置的光线方向。无穷远光源离场景非常远的大型光源也可以用一个发光体逼近,但在方向效果上有所不同,其不同点就在于从远距离光源到场景中任一未知的光线路径接近不变。无穷远光源与点光源的区别在于:在光照计算中,仅需要一个发射方向的向量及光源颜色而不需要光源的位置。辐射强度衰减衰减情况:辐射光线从一点光源发出并在空间中传播,距离光源距离为d1时它的振幅将按1|d2进行衰减。表明接近光源的表面得到较高的入射光强,而较远的表面强度较小。如果
4、在光照模型中不考虑衰减则达不到真实效果。可以通过调整a0a1a2的值,以得到场景中不同的光照效果。光源在无穷远远处光源是局部光源(1.0)(1.1)方向光源和投射效果局部光源经过修改可以形成方向光束或投影光束,而位于光束外的对象就得不到该光源的光照。建立方向光源的必备条件:颜色、位置、向量方向、方向向量开始的角度范围ul。记Vlight为光源方向的单位向量且记Vobj为从光源位置到一个对象位置的方向的单位向量。记Vlight为光源方向的单位向量且记Vobj为从光源位置到一个对象位置的方向的单位向量。则有:则有:V obiV light =cos (1.2)为光方向向量到对象的角距离,00 l
5、900cosl cos 时对象位于投影光内V obiV light cos 对象位于光锥体之外角强度衰减对于一个方向光源,可以按照从点光源位置出发的光强度角度计算衰减。即模拟一个光锥,沿着圆锥轴光强最大,离开椎轴式强度逐渐减弱。f angtten()=cos l oo (1.3)衰减指数 l 赋予正值,角从圆锥轴开始度量;在锥轴上=00 而 f angtten()=1.0 衰减指数 l 的值越大,在角值00时角强度衰减函数的值越小。如果光焰不是一个投影光源V obiV light =cos cosl 位于投影圆锥之外 其他扩散光源和Warn模型当需要在接近场景对象的位置引入一个霓虹灯大光源时,
6、可以用一个发光表面来逼近。Warn模型是一种模拟立体灯光效果的方法使用一组多参数的点发光器来模拟挡光板、快门、照相用聚光灯控制Warn模型效果表面光照效果光照效果影响因素:表面透明度颜色反射系数表面纹理表面光照效果由光源光和其他表面反射光混合生成 入射光照在不透明表面时,一部分被反射一部分被吸收,而反射总量取决于表面材料类型。粗糙或颗粒表面会将反射光向各个方向散出去而形成漫反射。除了发散的漫反射光之外,有些反射会集中成醒目的或明亮的一个点,这称为镜面反射。另外环境光或背景光也对光照效果有很大影响在光照模型中必须考虑。漫反射 漫反射中的镜面反射光的反射情况 基本光照模型中的发光体一般限于点光源,
7、同时涉及环境光和漫反射基本光照模型强度参数记为 I a环境光 在多数实际环境中,存在由于许多物体表面多次反射而产生的均匀的 照明光线,这就是环境光线。由环境光照明生成的反射是漫反射的一种简单情况,它依赖于观察方向和表面空间朝向的关系。但反射出的入射环境光总量依赖于决定入射光能量中的少数被反射出去及多少被吸收的表面光学特性。漫反射漫反射 在建立表面漫反射模型时可假设入射光在各个方向以相同强度发散而与观察位置无关,这样的的表面称为理想漫反射体。因为从表面上任一点反射出的辐射光能量用朗伯余弦定律计算,因此也称为朗伯反射体。朗伯余弦定律:在与对象表面法向量夹角为 N 的方向上,每个面积为 dA 的平面
8、单位所发散的光线与cos N 成正比。该方向的光强度可用单位时间辐射能量总量除以表面积在辐射方向的投影来计算:从表面面元dA向相对于表面法向量成 N 的方向的辐射能与cos N 成正比 当每一表面都视为理想漫反射体时,则可为确定将要按漫反射发散的入射光部分的每一个表面设定一个参数Kd,该参数称为漫反射系数。漫反射系数。任何方向的漫反射是一个常数,他等于入射光强度乘以漫反射系数。对于单色光来说Kd 赋以0.0到1.0之间的一个常数。如果希望一个强反射表面,则将参数Kd值设成1.0,这会生成接近于入射光的反射光的反射光强从而表面很亮。如果模拟一个吸收大部分入射光的表面,则将反射性设成接近0.0。对
9、于背景光效果,可假定每一个表面都使用对场景设定的环境光Ia来照明,因此环境光对一表面上各点的漫反射贡献可以表示为:环境光是独立的,它会对表面产生不期望的平面阴影,因此场景很少仅用环境光绘制。场景中至少有一个点光源,该点光源通常位于观察位置。与入射光方向垂直的表面(a)比同面积但与入射光方向有斜角的表面(b)得到较多的光照。当强度为Ii的光源照明一个表面时,入射光总量取决于被照射表面的实际面积大小。因此如果把入射光与表面法线方向之间的入射角记作,则垂直于光线方向的面片投影面积与cos成正比。则入射光强为Il 的光源的入射光总量为:Il,incident =Ilcos。则强度为 Il 的光源漫反射
10、为:I l,diff =Kd Il,incident =Kd Ilcos当=900 时 I l,diff =Kd Il ;仅当入射角在00900之间 时(cos 在0.01.0之间),点光源才照亮面片;Cos 0.0,则该点光源位于面片后;按入射光线路径正交投影的光照区A,该正交投影得到的面积为Acos 。在表面任一点处,记单位法向量为N及指向点光源的单位方向向量为L,cos =NL 而一个点光源在表面照明的漫反射公式可表示为:指向附近点光源的单位方向向量L使用表面的位置和光源位置来计算:在单位光源方向向量L和表面位置单位法向量N之间的入射光夹角为 。无穷远的点光源没有位置,仅有一个传播方向。
11、此时,使用所赋予的光源发射方向的逆向作为向量L的方向。在球面应用时,漫反射系数Kd 在0到1的范围内选定。Kd=0时,没有反射光且对象表面表现为黑色。增大漫反射强度随之增强,效果由深变浅。环境光反射系数Ka=0 组合环境光和点光源的强度计算,可以得到在一个表面位置的全部漫反射表达。在许多软件中一般认为指定环境光反射系数Ka来修改环境光强度Ia。使用参数Ka,可以将单个点光源的全部反射公式表示为:Ka和Kd都依赖于表面材质,对于单色光其值介于0和1.0之间。镜面反射和镜面反射和Phong模型模型 在光滑表面上看到高光或镜面反射是由于接近镜面反射角的一个汇集区域内入射光的全部或绝大部分成为反射光所
12、导致。镜面反射角等于入射角,它们位于表面的的单位法向量N的两侧。对于一个理想的反射体(镜子),入射光仅在镜面反射方向有反射现象,此时仅当V与R重合才能观察到反射光(即=0)R表示一个理想镜面反射方向的单位向量L表示指向点光源的单位向量V为指向视点的单位向量角度是观察方向与镜面反射方向R之间的夹角镜面反射角等于入射角 非理想反射体系统的镜面反射方向分布在向量R周围的有限范围内。光亮表面(大的ns)暗淡表面(小的ns)比较光滑表面镜面反射范围较小而粗糙的对象则有较大的镜面反射范围。Phong Bui Tuong曾提出一个计算镜面范围的经验公式,称为Phong镜面反射模型镜面反射模型。u反射光强度与
13、cosns成正比,(00 900)u镜面反射参数ns的值由要显示的表面材质决定u光滑表面ns值较大,粗糙表面ns较小。理想反射器ns是无限的。镜面反射角等于入射角 镜面反射的光强度主要由对象表面材质属性、光线入射角以及其他因素(如极性、入射光颜色等)所决定。镜面反射系数镜面反射系数 W(),为每一个表面近似表示单色镜面反射光强度的变化。当入射角增大时,W()往往增大;当=900时,所有入射光均被反射(W()=0)Phong镜面反射模型表示:镜面反射模型表示:L和R向量表示法向量N方向的投影都等于NL 由于V与R是观察方向和镜面反射方向的单位向量,可以用VR来计算cos的值。如果V和L位于N的同
14、一侧或光源的后面,表示显示中不会有镜面反射效果。假定镜面反射系数对任何材质都是一个常数,则对象表面上某处由点光源生成的镜面反射为:VR 0 或或NL 0VR 0 或或NL 0 反射向量可以通过向量L与N计算,通过点积得到向量L在法向量方向的投影,这也等于单位向量R向N方向的投影:R+L=(2N L)NR =(2N L)N L 使用获得单位向量L的方法及表面位置和观察方向来计算V,如果对场景中所有位置都使用一个固定的观察方向,则可 设V=(0.0,0.0,1.0),即正Z轴上的单位向量,使用常数V来计算镜面反射所花时间少但真实感不够好。使用向量L与V之间的半角向量H计算镜面反射范围可以得到简化的
15、Phong模型,只许以NH代替Phong模型中的点VR,并利用cos 计算来代替经验cos计算。半角向量的公式:对于非平面,NH比VR所需计算量少,因为每个表面点的R计算包含变化的N向量,如果观察者与光源离对象表面足够远,且V与L均为常量,H和N之间的夹角大于900,则NH为负,而我们设定镜面反射角的贡献为0.半角向量H与向量L、V的角平分线方向一致半角向量H与向量L、V的角平分线方向一致 对于给定的光源和视点,向量H是在观察 方向上产生最大镜面反射的表面朝向,因此H有时称为最大亮度的表面朝向。若向量V与L和R(及N)共面,则的值为/2,当V、L与N不共面时,/2,这取决于三者的空间关系。对于单个点光源,可以将光照表面上某处的漫反射和镜面反射表示为:I=Idiff+Ispec =KaId+kdId(NL)+ksIs(NH)ns 如果光源位于表面之后,则表面仅仅有环境光的光照,而如果V和L 位于法向量N的同一侧则没有镜面反射效果。只考虑环境光的效果 我们可以在场景中放置多个点光源,对于多个点光源的情况,可以在任意一个表面点上叠加各个光源所产生的光照效果:Thank you!
限制150内