第十四章光照模型与面绘制算法.ppt

上传人:laozhun 文档编号:2817493 上传时间:2023-02-25 格式:PPT 页数:71 大小:11.89MB
返回 下载 相关 举报
第十四章光照模型与面绘制算法.ppt_第1页
第1页 / 共71页
第十四章光照模型与面绘制算法.ppt_第2页
第2页 / 共71页
第十四章光照模型与面绘制算法.ppt_第3页
第3页 / 共71页
第十四章光照模型与面绘制算法.ppt_第4页
第4页 / 共71页
第十四章光照模型与面绘制算法.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《第十四章光照模型与面绘制算法.ppt》由会员分享,可在线阅读,更多相关《第十四章光照模型与面绘制算法.ppt(71页珍藏版)》请在三一办公上搜索。

1、,课程内容进展,综述,几何变换,观察流水线 裁剪,基本图元,曲线曲面 实体造型,可见面判别 光照 面绘制,UI 动画,建模 观察 显示,其它,图形学和图形系统,坐标系统,第九讲 光照模型与面绘制算法,基本概念,光照模型 Illumination Model 计算表面上点的光强度的模型(方法)表面绘制算法 Surface Rendering对场景中所有表面的投影位置的象素点,根据光照模型计算光强度的过程真实感成像(前提首先是建立几何模型、透视投影、消除隐藏面)表面特性的精确表示场景中光照效果的物理描述:反射、透明度、纹理、阴影,光的度量,光源一般会向不同方向以不同强度发出光通量光通量:光能,单位

2、时间传递的辐射能总量单位:瓦特(焦耳/秒)或者 流明 lm要获得场景中表面上的光照效果辐射度B:单位面积上离开表面的光通量。单位:瓦特/米2光强度:特定方向上单位立体角放出的光辐射度单位:cd(坎德拉)或者 瓦特/(米2球面度),光源,发光光源,光的来源,反射光源,点光源,发光特性,无穷远光源,光的颜色,方向光源,扩展光源,白色光 等能量的各种波长可见光的组合彩色光单色光,光源(续),背景光(环境光),影响物体的方式,反射光,镜面反射,漫反射,漫反射,镜面反射,背景光+反射光,点光源发射光,本章主要内容,一、基本光照模型二、RGB颜色三、基本透明模型四、雾气五、阴影六、光强度显示,七、半色调处

3、理八、表面绘制(明暗)九、光线跟踪十、辐射度光照模型纹理映射OpenGL实现光照和表面绘制,一、基本光照模型,各表面为理想漫反射体:假设入射光在各个方向以相同强度发散而与观察位置无关环境光引起的全局漫反射点光源引起的漫反射点光源引起的镜面反射多个点光源引起的反射表面光发射辐射强度衰减角强度衰减,环境光,特点场景的一般亮度对所有表面的统一照明反射强度依赖于表面材质属性环境光全局漫反射计算Iambdiff=KdIa 0 Kd 1每个表面设定漫反射系数Kd环境光强度Ia,点光源漫反射,特点:光线照射到物体表面后,向各个方向均匀发出点光源漫反射计算 IL,diff=KdILcos=KdIL(N.L)I

4、L 光源强度Kd 表面的漫反射系数 入射光与表面法线夹角,L,N,(1)环境光点光源,KaIa+KdIL(N.L)N.L0 KaIa N.L0Ka 环境光漫反射系数(为每一表面指定,用来调节环境光的最终光照效果)Kd 表面漫反射系数Ia 环境光强度IL 点光源L的光强度,Idiff=,ka与kd值介于0到1.0之间的球面在暗灰色环境光与一个白色点光源照射下产生的漫反射,点光源镜面反射,光亮表面,大ns,Phong镜面反射模型ns:镜面反射参数Ks:恒定的镜面反射系数(本来应该和材质、透明度、入射光角度、颜色等有关),黯淡表面,小ns,特点镜面反射角=入射角在镜面反射角的一个会聚区域内入射光的全

5、部或大部分成为反射光,注意:L,N,R,V均为单位向量,对于不同的镜面参数值计算单个点光源场景中球面的镜面反射效果,ns,Ks,H:L和V间的半角向量给定的光源和视点,H是观察方向上产生最大镜面反射(最大亮度)的表面朝向,简化的Phong模型:用NH替代 VR,对于非平面,具有更高效率,注意:L,N,R,V均为单位向量,(2)phong照明模型(与漫反射合并),Ka 环境光漫反射系数Kd 表面漫反射系数Ia 环境光强度IL 光源L的强度Ks 镜面反射系数ns 镜面反射参数N 表面法线单位矢量L 指向光源方向单位矢量H 理想镜面反射方向单位矢量,环境光,单个点光源的漫反射镜面反射,环境光,多个点

6、光源的漫反射镜面反射,(a)(b)(c)(d),场景的线框图;,环境光,不同表面颜色,单个点光源,(ks=0)环境光和漫反射;,单点光源,环境光、漫反射和镜面反射,表面光发射,例子:吸顶灯,招牌点光源光锥用扩展光源逼近:点光源网格更强的真实感:辐射度模型简单的计算:加入发射项Isurfemission,(3)考虑表面发射项和强度衰减,O,无穷远光源,点光源与表面距离为dl,光源不是方向光源,对象位于投射圆锥外,其它,点光源辐射强度衰减,方向光源角强度衰减,al:衰减指数,Vobj,Vlight,对象后面的光源,其它,其它,对象后面的光源,光照模型(光强的计算),颜色透明度其它效果,强度等级的划

7、分强度的显示,二、RGB颜色,为Ka,Kd,Ks各自定义RGB分量,例如 以蓝色为例,点光源漫反射计算修改为:漫反射和镜面反射颜色向量(K为单值常数)漫反射颜色向量镜面反射颜色向量以蓝色为例,点光源漫反射计算修改为:,三、基本透明模型,折射 Snell定律,简化的透明模型计算方法 I=(1-Kt)Iref1+KtItrans Kt 透明系数,Iref1反射强度,Itrans 透射强度深度排序、深度缓存算法、A缓存算法,四、雾气,fatmo(d):雾气衰减函数Iobj:对象表面光强度Iatmo:模拟雾气光强度(也可同时考虑颜色)d:观察位置到对象的距离,:雾气的正密度越大,雾气越稠密,表面越柔和

8、,五、阴影,视点置于光源位置,不可见的表面即为阴影计算出来的阴影可以当作表面图案存储,六、光强度显示,(0.0-1.0)系统分配的有限强度等级人对声音、光强的感觉按对数等级变化均匀的强度等级:相邻强度之比相同Gamma校正显示设备亮度变化非线性,象素光强值线性变化视频查找表调整线性象素值,参数 和 取决于显示设备属性,V为电子枪电压,I为显示强度,规范化的电子枪电压,强度,强度,规范化的电子枪电压,现状:电压=0.5 时,强度=0.2电压=0.8 时,强度=0.5电压=1 时,强度=1,问题:。所需像素强度=0.5,应该使用多大电压?所需像素强度=1,应该使用多大电压?,连续色调图象至少32个

9、强度等级,2个强度等级,4个强度等级,8个强度等级,七、半色调处理(halftoning),基本思想:显示设备提供的光强等级数目较少时,将多个象素单元组合起来表示一种强度值。,2级系统2x2象素网格5种强度等级,2级系统3x3象素网格,10种强度等级,报纸、书刊上的半色调照片,用不同尺寸的黑点(白点)表示色调,光照模型(光强的计算),全局光照效果,应用在,表面绘制(每个点的光强计算),应用在,光线跟踪方法辐射度方法,八、多边形(表面)绘制算法,恒定强度表面绘制(平面绘制)一个多边形对应一个光强度适合于情况:多面体光源足够远 N.L 及衰减函数为常数视点也足够远 V.R 为常数Gouraud明暗

10、处理Phong明暗处理,Gouraud明暗处理:强度插值,缺点:高光处理不好,会有马赫带效应(多边形交界处,光强的一阶导数不连续,从而得到过亮或过暗条纹),由共享顶点的面的法向量平均值求顶点法向量计算顶点光强度多边形表面上将强度线性插值,Phong明暗处理:法向量插值,求顶点法向量法向量在表面上插值每点计算强度更精确但是计算量大,九、光线跟踪方法(ray tracing),正向效果:光源(环境光)发出无数光线,在可以直接到达的表面上产生反射、折射;反/折射光进一步到达其它表面直到部分光线最终到达投影平面上的像素位置。逆向模拟以像素为起点像空间,光线跟踪流程,跟踪象素光线:对每一象素,反向跟踪由

11、它到场景的光线(Pprp到像素中心连线),求出与第一个物体的交点。从交点出发再反向跟踪从属光线:反射和折射。满足以下条件之一时,停止跟踪:该光线不和任一表面相交该光线与一个光源相交且该 光源不是反射面该树达到最大深度(存储极限)跟踪结果:生成二叉光线跟踪树,二叉光线跟踪树,(1)求交计算(2)光照效果计算(2A)像素光强(2B)聚焦效果,(1)光线与物体表面的求交计算,由光线方程和表面方程联立解出交点光线方程:(s:P0和P的距离)光线和球面求交光线和多面体求交提高效率?,s,P,直接求交根的正负性判断用较小s代入 得到交点,求交例:光线和球面/多面体,包围球测试找到前向面各个前向面:求交,内

12、外测试找到最近交点,球面,多面体,反射光方向,折射光方向,求交效率的提高方法,物体包围球排除法单个对象包围球多个对象(或包围球)的包围球空间分割方法逐次将空间分割为若干子立方体直至每个子立方体包含的物体表面或面片数目小于预定值八叉树是一种均匀分割的选择,(2A)每个像素光强值计算,光线跟踪本质上是个递归算法,每个象素的光强度必须综合各级递归计算的结果才能获得。对每次计算一部分是光源直接照射表面点产生的光照效果(基本光照模型);另一部分是从属光(由周围物体反射折射得到)照射表面点产生。即:每次计算采用整体光照模型公式I=Il+Ig Il 根据基本光照模型计算Ig=KRIR+KTIT考虑了反射系数

13、KR,折射系数KT这些系数均为和表面材质有关的常数,递归过程,从叶结点开始由底向上遍历二叉树在树的每一个结点处,递归地调用整体光照模型公式(每上升一层,光强部分衰减)累计光强度贡献直到二叉树根结点。,(2B)模拟照相机聚焦效果,投影平面前假想安置薄透镜指定聚焦长度(f=透镜中心到聚焦点F之间的距离)等参数薄透镜公式 如果投影点不聚焦到投影平面,采用了光线跟踪计算,显示了由物体表面生成的全局反射和透射光效果。,一个茶壶的光线反射,其反射参数设置为模拟磨光的铝表面,采用Monte-Carlo光线跟踪法绘制而成,光线跟踪反走样,过采样 一个象素是一个正方形有多束光线穿过同一个象素每束光线穿过子象素角

14、点或中心适应性采样四角不同或遇小物体时将象素细分分布式光线跟踪按照参数随机分布每个子象素上的光线位置圆锥跟踪算法确定锥形光束下,对象覆盖象素区域的百分比,像素的最终光强=各束光线强度的平均值,十、辐射度光照模型,辐射度模型:利用辐射能在物体表面之间的转移和能量守恒定律的漫反射模型。物空间计算表面亮度,与视点等无关辐射度B【瓦特/米2】:单位时间内、单位面积上离开表面的光能量。强度I【瓦特/(米2球面度)】:特定方向上单位立体角内的辐射度,表面点发出的总辐射能表面点为中心的半球上所有方向辐射能的总和,辐射度Bk入射能量Hk,幅射度公式,Bk 第k个面的幅射度。Ek 单位时间、单位面积上从第k个面

15、直接发出的能量。k 第k个面的反射因子(与漫反射系数相关),表示入射光中被反射回环境的部分。Fjk 形状因子,定义为从第j个面出发的幅射能中可以到达第k个面的部分。当所有的面都是具有理想漫反射性质时,形状因子是纯几何量,仅与形状、大小、位置、以及朝向有关。,形状因子的计算,对所有k(能量守恒)对等光反射对所有j(假设仅含平面片和凸面片),投射到k表面的能量离开j表面的总能量,Fjk=,辐射度模型下的光照计算,将场景表面分割为许多小多边形,设定“表面闭包”计算形状因子(半立方体代替半球体)列出闭包内所有表面的辐射度方程联立求解(E,F,都已知,求B)(Fkk=0,k=1,2n),计算(续),(1

16、)计算形状因子Fij;(2)求解方程组,得出各面片的辐射度Bi;(3)计算面片各顶点的亮度;(4)观察投影变换;(5)用线性插值法计算各象素点的亮度;,结合光线跟踪和辐射度方法生成场景,其它:添加表面细节,多边形模拟:简单图案、字等叠加于场景表面上,光照参数选择优先级高纹理映射(图案映射):复杂精致的细节线性纹理、表面纹理、体纹理、过程式纹理凹凸映射:粗糙凹凸的表面在光照模型计算中,对表面法向量进行扰动帧映射:木纹、大理石等条纹法向量和相应本地坐标系统的其它方向上同时扰动,(1)纹理映射,概念:纹理模式映射到对象表面纹理模式离散法:定义为数组一维(线性)、二维(表面)、三维(体)图案纹理图案在

17、纹理空间中用纹理坐标来定义连续法:定义为修改表面光强值的过程(函数)过程式纹理,纹理图案定义,nxn个(RGB)颜色(s,t)(0,0),(1,1),nxnxn个(RGB)颜色(s,t,r)(0,0,0),(1,1,1),n个(RGB)颜色(s)0,1,线性纹理数组,表面纹理数组,体纹理数组,例子:表面纹理映射过程,纹理空间 对象空间 象素空间,纹理坐标,世界坐标,设备坐标,xp,yp,zp,x,y,z,表面参数u=f(x,y,z)v=g(x,y,z),s=S(u,v)t=T(u,v),观察投影逆变换,已知纹理图案与表面对应的方式、基准点等,(2)凹凸(扰动)映射,凹凸映射:在光照模型中引入扰

18、动函数来修改表面法向量在表面每一点沿其表面法向量方向附加一个新的向量该向量较小,不影响原表面的大致形状,但改变了该点处的原表面法向量。通过恰当选择扰动函数,可使生成图形具有不同的凹凸纹理效果。若P(u,v)表示一个参数曲面上的点该点处的表面法向量为:NPuPvPu与Pv为P(u,v)关于参数u和v的偏导数定义扰动函数F(u,v)将物体表面上点P(u,v)沿N方向位移F(u,v)个单位长,得 P(u,v)P(u,v)F(u,v)n(n=N/|N|是单位法向量),凹凸映射(续),新的表面法向量 NPuPvPuP/u=(P+F.n)/uPuFunFnu Pv P/v=(P+F.n)/vPvFvnFn

19、vF(u,v)的值很小,忽略不计:PuPuFunPvPvFvnNPuPvFu(nPv)Fv(Pun)FuFv(nn)nn0,故:NNFu(nPv)Fv(Pun)最终,N 用于光照模型中计算曲面上点的光强度。,原法向量,扰动向量,扰动函数的定义,连续法:可以求导的任一函数基本都可取作扰动函数。离散法:更常用简单的位图作为扰动函数。交互式图形系统作出的模拟纹理图案作为扰动函数。图案中较暗(亮)的颜色对应于较小(大)的F值图案中各象素的值用数组存储起来作为F值的查找表,表上没包括的中间值可以由双线性插值方法求得。,凹凸映射效果图(重复法比较适合橘子皮之类的表面随机法比较适合葡萄干之类的表面),Ope

20、nGL实现光照和纹理效果,GLfloat color1=0,0,0,color2=1,1,1,1;glLightfv(GL_LIGHT1,GL_POSITION,lightpos1);glLightfv(GL_LIGHT1,GL_AMBIENT,color1);glLightfv(GL_LIGHT1,GL_DIFFUSE,color2);glLightfv(GL_LIGHT1,GL_SPECULAR,color2);glEnable(GL_LIGHT1);glLightfv(GL_LIGHT2。glEnable(GL_LIGHT2);glEnable(GL_LIGHTING);glTexIma

21、ge2D(GL_TEXTURE_2D,0,GL_RGBA,4,4,0,GL_RGBA,GL_UNSIGNED_BYTE,tex);glEnable(GL_TEXTURE_2D);,glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);glColor3f(1.0,1.0,1.0);。glBegin(GL_POLYGON);glTexCoord2f(0,0);/指定纹理坐标glVertex3f(ctrlPts70,ctrlPts71,ctrlPts72);glTexCoord2f(1,0);glVertex3f(ctrlPts60,ctrlPts61,ctrlPts62

22、);glTexCoord2f(1,1);glVertex3f(ctrlPts50,ctrlPts51,ctrlPts52);glTexCoord2f(0,1);glVertex3f(ctrlPts40,ctrlPts41,ctrlPts42);glEnd();。,GLubyte tex444=255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,200,0,255,255,200,0,255,255,200,0,255,255,200,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0

23、,255,255,255,0,255,255,255,0,255,255,255,0,255,255,255;,glEnable(GL_TEXTURE_2D);,glEnable(GL_LIGHTING);,glEnable(GL_LIGHTING);glEnable(GL_TEXTURE_2D);,GLubyte tex444=255,0,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,200,0,255,255,200,0,255,255,200,0,255,255,200,0,255,0,255,0,255,0,255,0,255,0,255,

24、0,255,0,255,0,255,0,255,255,255,0,255,255,255,0,255,255,255,0,255,255,255;,GLubyte tex444=255,0,0,255,0,255,0,255,255,255,0,255,0,255,255,255,255,255,0,255,255,0,255,255,0,0,255,255,255,255,255,255,255,0,150,255,0,0,0,255,0,255,0,255,0,0,255,255,100,100,100,255,0,255,0,255,0,0,255,255,255,0,0,255,1,2,3,4,glBegin(GL_POLYGON);glTexCoord2f(0,0);glVertex3f(1);glTexCoord2f(1,0);glVertex3f(2);glTexCoord2f(1,1);glVertex3f(3);glTexCoord2f(0,1);glVertex3f(4);glEnd();,第9讲小结,基本光照模型光强度显示多边形绘制算法:明暗处理光线跟踪方法幅射度概念纹理映射概念,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号