第十章真实感图形.ppt

上传人:sccc 文档编号:4993007 上传时间:2023-05-28 格式:PPT 页数:66 大小:4.97MB
返回 下载 相关 举报
第十章真实感图形.ppt_第1页
第1页 / 共66页
第十章真实感图形.ppt_第2页
第2页 / 共66页
第十章真实感图形.ppt_第3页
第3页 / 共66页
第十章真实感图形.ppt_第4页
第4页 / 共66页
第十章真实感图形.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《第十章真实感图形.ppt》由会员分享,可在线阅读,更多相关《第十章真实感图形.ppt(66页珍藏版)》请在三一办公上搜索。

1、孔令德,第十章主讲:孔令德,真实感图形,颜色模型材质模型光照模型纹理映射,本章学习目标,本章内容,10.1 颜色模型 10.2 材质模型和光照模型 10.3 纹理映射10.5 本章小结10.6 习题,三维立体进行消隐后,已经生成了具有较强立体感的图形。要模拟真实世界,还必须借助颜色模型、光照模型和纹理映射等技术为其润色,才能产生真实感图形。计算机图形学显示真实感图形学的方法和传统的照相技术很相似。照相的步骤为:架设相机、选择场景、拍摄照片、冲洗成像。事实上,在计算机图形学内,架设相机相当于选择视点、选择场景相当于确定图形显示的范围。拍摄照片相当于根据光照模型、物体材质,纹理方式等模型完成一系列

2、图形变换,并进行透视投影。,冲洗照片则是将三维场景消隐后显示在计算机二维屏幕上。这里需要特别说明的是目前真实感图形的开发一般使用OpenGL和DirectX等工具直接进行,这些工具是集成了计算机图形学基本原理和算法的开发环境。只要使用相关的命令,即可高质量地制作出真实感图形,并不需要如本书一样对计算机图形学的基本原理进行编程实现。,10.1颜色模型,10.1.1 基本概念10.1.2 RGB颜色模型 10.1.3 Gouraud明暗处理,10.1.1 基本概念,颜色是外来的光线刺激人的视觉器官而产生的主观感觉。物体的颜色不仅取决于物体本身,还与光源、环境以及观察者的视觉系统有关系。从视觉角度,

3、颜色包含三个要素:色调(Hue)、饱和度(Saturation)和亮度(Lightness)。,10.1.1 基本概念,色调是一种颜色区别于其它颜色的基本要素,如红、绿、蓝、紫等,当人们谈论颜色时,实际上是指它的色调;饱和度是指颜色的纯度,纯色是没有与任何颜色相混合的颜色,纯度为全饱和。在某种颜色中加入白色相当于降低了该颜色的饱和度,鲜红色饱和度高,粉红色饱和度低。亮度是光照的强度。,10.1.1 基本概念,从光学角度出发,颜色的三个特性分别为:主波长、纯度和明度。主波长是产生颜色的光的波长,对应于视觉感知的色调;光的纯度对应于饱和度;明度就是光的亮度。,RGB颜色模型可以用一个三维立方体来表

4、示,如图10-2所示。顶点(0,0,0)代表黑色,顶点(1,1,1)代表白色。坐标轴上的三个立方体顶点(1,0,0)、(0,1,0)、(0,0,1)分别表示RGB三原色,余下的三个顶点(1,0,1)、(1,1,0)、(0,1,1)则表示每一个原色的补色,它们分别由同一平面上的两个相邻的顶点颜色混合而成。在立方体的主对角线上,颜色从黑色原点过渡到白色顶点,各原色的变化数量相等,产生了由暗到明的颜色变化,这称为灰度颜色。在具体实现时,可以使RGB函数的三个分量保持相等,就生成灰度色。例如RGB(0,0,0)代表黑色,RGB(255,255,255)代表白色,而RGB(128,128,128)代表其

5、中一个灰度,但当R、G、B三种颜色的数值变化不同步时,就会显示出彩色。,10.1.2 RGB颜色模型,在计算机图形学中,为了对颜色进行融合以产生透明效果,往往还给RGB模型添加一个Alpha分量,形成RGBA模型。当两种颜色进行融合时,Alpha因子决定了两种颜色为融合操作各贡献了多少颜色成分。在计算机上进行颜色设计时,可以选择RGB颜色模型。每个原色分量用一个字节表示,最大强度为255,最小强度为0。本节将颜色强度规范化为浮点数闭区间0.0,1.0范围内,使用时将颜色分量直接乘以常数255,再转换为字节类型就可以使用RGB函数来显示颜色。,10.1.3 Gouraud明暗处理,在第四章实面积

6、图形填充算法中,多边形内部使用恒定颜色填充,容易造成在面的交界处产生颜色突变,特别是处理曲面时,对曲面进行了有限元网格划分,如果每个小面使用单一颜色填充,就会造成曲面颜色过渡不光滑,呈块状效应。,恒定颜色模型基本不能表达光照效果,需要使用渐变颜色模型,产生改进方法有两种:一种是对多边形顶点的颜色进行插值以产生中间各点的颜色,即Gouraud明暗处理;另一种是对多边形顶点的法矢量进行插值以产生中间各点的法矢量,即Phong明暗处理。,本章主要介绍Gouraud明暗处理,使用颜色插值计算方法处理直线和多边形的颜色过渡问题。,1.直线颜色渐变 直线颜色渐变是光照模型的基础。给定直线两个顶点和颜色,使

7、用拉格朗日线性插值方法可以完成从起点到终点的颜色过渡。式中:(x0,y0)和C0为直线的起点坐标和颜色;(x1,y1)和C1为直线的终点坐标和颜色;C为直线上任意点的颜色值。,直线生成算法可以使用本书第三章的Bresenham算法,为了和VC+的LineTo语句风格保持一致,要求绘制直线时采用“起点闭区间,终点开区间”,即直线终点的最后一个像素不绘制。从红色起点过渡到黑色终点为的直线如图10-5所示。,2.三角形颜色渐变 一个物体无论表面多么复杂,都可以采用三角形面片来逼近。在图10-6所示球的网格划分中,南极和北极必须采用三角形面片逼近,如图10-7所示,其余部分则可以使用四边形面片,而四边

8、形面片又可以看作是两个三角形面片的组合,如图10-8所示。所以,三角形面片的明暗处理是光照模型的面填充基础,三角形面片的颜色渐变可以采用拉格朗日双线性插值来完成。,图10-6 球的网格划分,图10-7 球的两极采用三角形面片,图10-8 三角形面片和四边形面片,在图10-9中,三角形的顶点为A(xA,yA),颜色为CA;B(xB,yB),颜色为CB;C(xC,yC),颜色为CC。任一扫描线与三角形边AC的交点为D(xD,yD),颜色为CD;与边BC的交点为E(xE,yE),颜色为CE,F(xF,yF)为DE内的任一点,颜色为CF。颜色渐变模型要求根据顶点A、B、C的颜色插值计算三角形内点F的渐

9、变颜色。,边AC上的D点的渐变颜色为:(10-3)边BC上的E点的渐变颜色为:(10-4)DE上的F点的渐变颜色为:(10-5),这里需要指出的是:使用Gouraud明暗处理的基础是第四章的有效边表算法,因为内点颜色的插值需要访问三角形内的每一个像素点。所以说,有效边表算法是真实感图形显示的最基础算法。笔者使用三角形恒定颜色算法填充的六边形和使用三角形Gouraud明暗处理算法填充的六边形效果如图所示。,10.2 材质模型和光照模型,正如自然界不可缺少阳光一样,绘制真实感的三维物体必须进行光照处理。光线照射到物体表面时,可能被物体吸收、反射或透射。光的反射和透射部分进入视觉系统,使我们能够看见

10、物体。光的颜色由波长决定。一束白光含有所有可见波长的光。白光照射物体时,只有所有可见光被物体等量吸收时才会呈现灰色。如果不被等量吸收,物体会呈现出不同的颜色。光的亮度由光强决定,从物体表面反射出来的光强取决于光源的位置和光强、物体材质,物体表面位置、物体表面法线和视点的位置等因素。,计算机图形学的光照模型分为局部光照模型和全局光照模型。局部光照模型仅考虑光源直接照射到物体表面所产生的效果,物体表面通常被假设为不透明且具有均匀的反射率。局部光照模型能表现出光源直接照射在漫反射物体表面上所形成的连续明暗色调、镜面的高光以及由于物体相互遮挡而形成的阴影。整体光照模型除了考虑上述因素外,还考虑周围环境

11、对物体表面的影响,能模拟镜面的映象、光的折射以及相邻表面之间的色彩辉映等精确的光照效果。,10.2.1材质模型10.2.2 环境光模型 10.2.3 漫反射光模型 10.2.4 镜面反射光模型10.2.5 光强的衰减,10.2 材质模型和光照模型,10.2.1材质模型,材质(material)是指物体表面对光的反射特性,使用光的反射率来表示。就材质而言,其RGB值的大小对应于材质对该色光的反射百分比。同光源一样,材质也由环境色、漫反射色和镜面反射色等分量组成,分别说明了物体对环境光、漫反射光和镜面反射光的反射率反射程度。,材质影响物体的颜色,在进行光照计算时,材质对环境光的反射率与光源的环境光

12、相结合,对漫反射光的反射率与光源的漫反射光相结合,对镜面光的反射率与光源的镜面反射光相结合。对环境光与漫反射光的反射程度基本决定了材质的颜色,而且二者十分接近。对镜面反射光的反射率通常是白色或灰色(即对镜面反射光中红、绿、蓝三原色的反射率相同)。镜面反射高光最亮的地方将变成具有光源镜面光强度的颜色。,常用物体的材质属性,10.2.2 环境光模型,物体没有受到光源的直射,但其表面仍有一定的亮度,这是环境光(ambient Light)在起作用。环境光是环境中其它物体散射到该物体表面后再反射出来的光。由周围各物体多次反射所产生的环境光来自周围各个方向,又均匀地向各个方向反射,如图10-11所示。例

13、如从墙壁、地板及天花板等反射回来的光是环境光。如果用Ia表示环境光入射强度的大小,则表面上一点对环境光的反射强度Ie可表示为:,环境光,10.2.3 漫反射光模型,漫反射光(diffuse light)可以认为是在位置光源(点光源)的照射下,光被物体表面吸收后,然后重新反射出来的光。漫反射光是从一点照射,向多个方向反射,均匀地散布在各个方向,因此同观察者的位置无关,如图10-12所示。正是由于漫反射光才使我们清清楚楚地看清到物体。,朗伯(lambert)余弦定理总结了位置光源所发出的光线照射在一个完全漫反射物体上光的反射法则。根据朗伯定律,物体漫反射出来的光强同入射光与物体表面法线之间夹角的余

14、弦成正比。即,漫反射光,10.2.4 镜面反射光模型,镜面反射光(specular light)是朝一定方向反射的光。在光线的照射下,光滑物体会形成一片非常亮的区域,称为高光区域。物体表面光滑,高光区域小,亮度很高;物体表面粗糙,高光区域大,亮度很低。利用镜面反射可以很好地模拟光滑物体在光照下产生的高光区域。,镜面反射光,镜面反射光的反射角等于入射角,分别位于表面的单位法矢量的两侧,如图10-13所示。用R表示镜面反射方向的单位矢量,L表示指向物体表面的单位矢量,V为指向视点的单位矢量,是V 与R之间的夹角。对于一个理想的镜面反射,入射光仅在镜面反射方向有反射现象,即仅当V与R重合时才能观察到

15、反射光,而在其它方向都看不到反射光。事实上由于镜面的粗糙,在V方向依然能看到反射光,只是随着角的增大,反射光强逐渐减弱。Phong提出一个计算镜面反射光的经验公式,称为Phong模型。,式中,0ks1,090,式中Is为镜面反射光强度;Ip为入射光的强度;ks为物体表面材质的镜面反射率;镜面反射光强度与成正比。n为镜面反射光的聚光指数,其值同被观察物体表面的光滑度有关,一般取试验值。光滑表面如金属表面,n值较大,而粗糙表面如纸张表面的n值则较小。图10-14表示了n对镜面反射角度范围的影响。,如果R和V已规范化为单位矢量,则cosRV,在实际编程实现时,取HN来代替RV,H取矢量L和V的平分矢

16、量。所以镜面反射光照模型表述为:(10-10)这样考虑环境光、漫反射光和镜面反射光且只有一个光源的局部光照模型为:(10-11),10.2.5 光强的衰减,光照的强度随着光源和物体距离的增加而减弱,对于位置光源,使用衰减因子来衰减光强。式中,d为光源位置到物体顶点的距离。c0为常数衰减因子,c1为线性衰减因子,c2为二次衰减因子。在编程时通过调整c0、c1和c2的值来模拟同一个面上不同距离的光照效果。,图10-1510-20为笔者使用VC+的MFC框架开发的光照模型效果图。,漫反射光模型,镜面反射光模型,材质为“金”的环境光模型,材质为“金”的漫反射光模型,改变光源位置,材质为“金”的镜面反射

17、光模型,10.3 纹理映射,10.3.1 纹理定义 10.3.2 纹理映射,10.3.1 纹理定义,纹理一般定义在单位正方形区域(0u1,0v1),称为纹理空间。任何定义在此空间的函数都可以作为纹理函数。例如:,其中,0ab1,x表示小于x的最大整数。a和b用于RGB函数表示颜色值,若ab,第一个方格为黑色,若ab第一个网格为淡灰色。这里a和b保持开区间,是因为a或b取0时,白色方格将和屏幕底色(白色)融为一体。,这个纹理函数可以用以模拟国际象棋棋盘的黑白相间的方格,10.3.2 纹理映射,纹理映射(Texture Mapping)是将纹理空间的(u,v)坐标映射到三维景物空间(x,y,z)坐

18、标,再进一步映射到屏幕图像空间定义的二维物体表面上(x,y)坐标的过程。如图所示。,对于旋转立方体表面进行纹理映射时,映射变换矩阵为:根据立方体平面的三个顶点的(x,y,z)坐标,可以计算出变换矩阵中的参数。代入透视变换公式就可以将纹理绑定在立方体表面上。,10.5 本章小结,本章讲解了三维物体的真实感图形实现原理。光照模型是真实感图形显示的基础,一个球体如果只使用环境光,那么和圆就没有什么区别,但是加上漫反射光特别是镜面反射光后,就真正成为一个球体了。光照模型的实现是像素级的工作,要很好地复习第4章的有效边表算法,在球的三角形面片填充过程中,如果没有考虑每个面片的“下闭上开”和“左闭右开”问

19、题,将会在填充后的图形内出现许多孔隙。事实上,本章的光照模型算法也检验了有效边表算法的正确性。,10.6 习题,使用公式(10-14)的纹理函数,编程绘制图10-26所示的两种国际象棋棋盘纹理。提示:这是一个灰度图像。,(a)a=0.1,b=0.9(b)a=0.9,b=0.1图10-26 棋盘纹理,2.计算机图形学中有两种重要的原色混合系统,图10-27所示为红、绿、蓝(RGB)加色系统,图10-28所示为青、品红、黄(CMY)减色系统。两种系统中的原色互为补色,请编程绘制。,绿,黄,红,蓝,品红,白,青,品红,黑,黄,青,红,蓝,绿,图10-27 加色系统 10-28 减色系统,3.分别使用

20、恒定颜色模型和渐变颜色模型填充图10-29的所示的六边形。,图10-29 恒定颜色和渐变颜色六边形,4.建立图10-30所示的三维五角星的线框数学模型,五个角点的颜色全部设为红色,五角星表面上下中心点处的颜色设为白色,使用Gouraud颜色插值算法填充五角星。请编程图10-31所示的动态旋转五角星。,图10-30 三维五角星线框模型 图10-31 三维五角星表面模型效果图,5.绘制如图10-32所示的立方体的线框透视消隐模型。使用单点光源对立方体表面模型进行光照,选择不同颜色的光源,为立方体选择不同颜色的材质,演示光源和材质的交互作用光照效果。,图10-32光照立方体效果图,6.*以屏幕中心为

21、三维坐标系原点绘制如图10-33所示的圆环线框透视模型,使用Z-Buffer算法进行圆环表面模型的深度消隐,为圆环选择材质和施加单点光源,使用Gouraud双线性光强插值算法绘制圆环真实感图形,效果如图10-34所示。,图10-33 圆环线框模型 图10-34 圆环真实感图形,7.*使用Phong明暗处理算法,绘制如图10-35所示的双光源金属材质球。,图10-35 球的Phong模型,8.*将公式(10-14)的国际象棋棋盘纹理函数映射到球体上,绘制图10-36所示的动态旋转光照纹理球。,图10-36 球的光照纹理模型,9.*将图10-37所示地球展开图(位图)贴到球体上,使用MFC绘制图10-38所示的动态旋转地球贴图。,图10-37 地球展开图 图10-38地球贴图,10.*使用OpenGL技术将图10-39所示的六张不同图片映射到立方体上,绘制图10-40所示的动态旋转贴图立方体,要求MFC能实现全屏和非全屏演示,如图10-41所示。,图10-39 贴图图片,(b)MFC框架,图10-40 贴图立方体,(a)全屏,图10-41 选择显示模式,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号