书签 分享 收藏 举报 版权申诉 / 30
上传文档赚钱

类型计算机图形学基础课件chap9.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4538146
  • 上传时间:2022-12-17
  • 格式:PPT
  • 页数:30
  • 大小:763KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《计算机图形学基础课件chap9.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    计算机 图形学 基础 课件 chap9
    资源描述:

    1、1第九章第九章 消隐消隐o 基本概念基本概念o 深度缓存器算法深度缓存器算法o 区间扫描线算法区间扫描线算法o 深度排序算法深度排序算法o 区域细分算法区域细分算法o 光线投射算法光线投射算法o BSP树算法树算法o 多边形区域排序算法多边形区域排序算法o OpenGL中的消隐中的消隐2基本概念基本概念o 物体的消隐或隐藏线面的消除物体的消隐或隐藏线面的消除:在给定视点和:在给定视点和视线方向后,决定场景中哪些物体的表面是可视线方向后,决定场景中哪些物体的表面是可见的,哪些是被遮挡不可见的。见的,哪些是被遮挡不可见的。长方体线框投影图的二义性长方体线框投影图的二义性3基本概念基本概念o 消隐算

    2、法按实现方式分类消隐算法按实现方式分类n 图像空间消隐算法以屏幕像素为采样单位,图像空间消隐算法以屏幕像素为采样单位,确定投影于每一像素的可见景物表面区域,确定投影于每一像素的可见景物表面区域,并将其颜色作为该像素的显示颜色。如深度并将其颜色作为该像素的显示颜色。如深度缓冲器算法、缓冲器算法、A缓冲器算法、区间扫描线算缓冲器算法、区间扫描线算法等。法等。4基本概念基本概念n 景物空间消隐算法直接在景物空间(观察坐景物空间消隐算法直接在景物空间(观察坐标系)中确定视点不可见的表面区域,并将标系)中确定视点不可见的表面区域,并将它们表达成同原表面一致的数据结构。如它们表达成同原表面一致的数据结构。

    3、如BSP算法、多边形区域排序算法等。算法、多边形区域排序算法等。n 介于二者之间的算法,如深度排序算法、区介于二者之间的算法,如深度排序算法、区域细分算法、光线投射算法等。域细分算法、光线投射算法等。5基本概念基本概念o 基本的原则基本的原则n 排序:各景物表面按照距离视点远近排序的排序:各景物表面按照距离视点远近排序的结果,用于确定消隐对象之间的遮挡关系。结果,用于确定消隐对象之间的遮挡关系。n 连贯性:连贯性是指所考察的物体或视区内连贯性:连贯性是指所考察的物体或视区内的图像局部保持不变的一种性质,用于提高的图像局部保持不变的一种性质,用于提高排序效率。排序效率。69.1 深度缓存器算法(

    4、深度缓存器算法(Z-buffer)o 基本原理基本原理n 帧缓存:保存各点的颜色。帧缓存:保存各点的颜色。n Z缓存:保存屏幕坐标系上各象素点所对应缓存:保存屏幕坐标系上各象素点所对应的深度值的深度值。7深度缓存器算法(深度缓存器算法(Z-buffer)图图9.1 深度缓存器算法的原理深度缓存器算法的原理8深度缓存器算法(深度缓存器算法(Z-buffer)o 算法步骤算法步骤n 初始化:把初始化:把Z缓存中各缓存中各(x,y)单元置为单元置为z的最的最小值,而帧缓存各小值,而帧缓存各(x,y)单元置为背景色。单元置为背景色。n 在把物体表面相应的多边形扫描转换成帧缓在把物体表面相应的多边形扫描

    5、转换成帧缓存中的信息时,对于多边形内的每一采样点存中的信息时,对于多边形内的每一采样点(x,y)进行处理:进行处理:9深度缓存器算法(深度缓存器算法(Z-buffer)l 计算采样点计算采样点(x,y)的深度的深度z(x,y);l 如如z(x,y)大于大于Z缓存中在缓存中在(x,y)处的值,处的值,则把则把z(x,y)存入存入Z缓存中的缓存中的(x,y)处,再处,再把多边形在把多边形在z(x,y)处的颜色值存入帧缓处的颜色值存入帧缓存的存的(x,y)地址中。地址中。10深度缓存器算法(深度缓存器算法(Z-buffer)o 如何计算采样点如何计算采样点(x,y)的深度的深度z(x,y)。n 假定

    6、多边形的平面方程为:假定多边形的平面方程为:Ax+By+Cz+D=0。CDByAxyxz),(11深度缓存器算法(深度缓存器算法(Z-buffer)图图9.2 利用扫描线的连贯性加速深度的计算利用扫描线的连贯性加速深度的计算12深度缓存器算法(深度缓存器算法(Z-buffer)n 扫描线上所有后继点的深度值:扫描线上所有后继点的深度值:n 当处理下一条扫描线当处理下一条扫描线y=y-1时,该扫描线上时,该扫描线上与多边形相交的最左边(与多边形相交的最左边(x最小)交点的最小)交点的x值值可以利用上一条扫描线上的最左边的可以利用上一条扫描线上的最左边的x值计值计算:算:),()1(),1(CAy

    7、xzCDByxAyxz 1min,min,1kxxyy13深度缓存器算法(深度缓存器算法(Z-buffer)n 扫描线深度缓存器算法扫描线深度缓存器算法),()1()1()1()1,(min,min,min,1min,1CBkAyxzCDyBkxACDyBAxyxzyyyy14深度缓存器算法(深度缓存器算法(Z-buffer)o 优点优点n 多边形不用排序多边形不用排序n 方法简单,与对象复杂程度无关方法简单,与对象复杂程度无关简单简单n 在象素级上以近物取代远物,有利于硬件实现在象素级上以近物取代远物,有利于硬件实现o 缺点缺点n 占用太多的存储单元占用太多的存储单元n 在实现反走样、透明和

    8、半透明等效果方面有困难在实现反走样、透明和半透明等效果方面有困难159.2 区间扫描线算法区间扫描线算法o 避免对被遮挡区域的采样是进一步提高扫描线避免对被遮挡区域的采样是进一步提高扫描线算法计算效率的关键。算法计算效率的关键。图图9.3 区间扫描线算法原理区间扫描线算法原理16区间扫描线算法区间扫描线算法o 算法算法n 三张表:边表、多边形表、有效边表。三张表:边表、多边形表、有效边表。n 分割子区间,确定子区间上的唯一可见面。分割子区间,确定子区间上的唯一可见面。图图9.4 扫描线子区间扫描线子区间17区间扫描线算法区间扫描线算法o 特殊情形特殊情形n 贯穿情形:为了使算法能处理贯穿情形:

    9、为了使算法能处理互相贯穿的多互相贯穿的多边形边形,扫描线上的分割点不仅应包含各多边,扫描线上的分割点不仅应包含各多边形的边与扫描线的交点,而且应包含这些贯形的边与扫描线的交点,而且应包含这些贯穿边界与扫描线的交点。穿边界与扫描线的交点。18区间扫描线算法区间扫描线算法n 循环遮挡:将多边形进行划分以消除循环遮循环遮挡:将多边形进行划分以消除循环遮挡。挡。图图9.5 多边形贯穿和循环遮挡的情形多边形贯穿和循环遮挡的情形199.3 深度排序算法(画家算法)深度排序算法(画家算法)o 算法原理:算法约定距视点近的优先级高,距算法原理:算法约定距视点近的优先级高,距视点远的优先级低。生成图像时,优先级

    10、低的视点远的优先级低。生成图像时,优先级低的多边形先画,优先级高的多边形后画。这样,多边形先画,优先级高的多边形后画。这样,后画的多边形就会将先画的多边形遮挡住,从后画的多边形就会将先画的多边形遮挡住,从而达到消隐的效果。而达到消隐的效果。o 算法的关键是多边形排序。算法的关键是多边形排序。209.4 区域细分算法区域细分算法o 算法原理:考察投影平面上的一块区域,如果算法原理:考察投影平面上的一块区域,如果可以很可以很“容易容易”地判断覆盖该区域中的哪个或地判断覆盖该区域中的哪个或哪些多边形是可见的,则可按这些多边形的光哪些多边形是可见的,则可按这些多边形的光照属性和几何位置计算确定子区域内

    11、各像素的照属性和几何位置计算确定子区域内各像素的显示颜色;否则就将这块区域细分为若干较小显示颜色;否则就将这块区域细分为若干较小的区域,并把上述推断原则递归地应用到每个的区域,并把上述推断原则递归地应用到每个较小的区域中去。较小的区域中去。21区域细分算法区域细分算法o 多边形的分类多边形的分类图图9.6 多边形的投影与考察区域之间的关系多边形的投影与考察区域之间的关系22区域细分算法区域细分算法o 可见性测试可见性测试n 所有多边形均是该区域的分离多边形,于是所有多边形均是该区域的分离多边形,于是可直接将该区域中的所有像素点置为背景颜可直接将该区域中的所有像素点置为背景颜色。色。n 针对该区

    12、域,仅存在一个相交多边形,或仅针对该区域,仅存在一个相交多边形,或仅存在一个被包含多边形,或仅存在一个围绕存在一个被包含多边形,或仅存在一个围绕多边形。则可先将该区域中的所有像素点置多边形。则可先将该区域中的所有像素点置为背景颜色,再将相应多边形的颜色值填入为背景颜色,再将相应多边形的颜色值填入对应像素点的帧缓存中。对应像素点的帧缓存中。23区域细分算法区域细分算法n 针对该区域,有多于一个的相交多边形、被针对该区域,有多于一个的相交多边形、被包含多边形或围绕多边形,则计算所有围绕包含多边形或围绕多边形,则计算所有围绕的、相交的、以及被包含的多边形在该区域的、相交的、以及被包含的多边形在该区域

    13、4个顶点处的个顶点处的z坐标,如果存在一个围绕多边坐标,如果存在一个围绕多边性,它的性,它的4个个z坐标比其它任何多边性的坐标比其它任何多边性的z坐坐标都大(最靠近视点),那么,可将该区域标都大(最靠近视点),那么,可将该区域中的所有像素点置为该多边形的颜色值。中的所有像素点置为该多边形的颜色值。24区域细分算法区域细分算法图图9.7 满足测试条件满足测试条件3的两个例子的两个例子259.5 光线投射算法光线投射算法o 算法原理算法原理图图9.8 光线投射算法光线投射算法26光线投射算法光线投射算法o 算法步骤算法步骤n 通过视点和投影平面(显示屏幕)上的所有通过视点和投影平面(显示屏幕)上的

    14、所有像素点作一入射线,形成投影线。像素点作一入射线,形成投影线。n 将任一投影线与场景中的所有多边形求交。将任一投影线与场景中的所有多边形求交。n 若有交点,则将所有交点按若有交点,则将所有交点按z值的大小进行值的大小进行排序,取出最近交点所属多边形的颜色;若排序,取出最近交点所属多边形的颜色;若没有交点,则取出背景的颜色。没有交点,则取出背景的颜色。n 将该射线穿过的像素点置为取出的颜色。将该射线穿过的像素点置为取出的颜色。279.6 BSP树算法树算法o 算法原理算法原理图图9.9 BSP树算法原理树算法原理289.7 多边形区域排序算法多边形区域排序算法o 算法原理算法原理 将多边形按深

    15、度值由小到大排序,用前面将多边形按深度值由小到大排序,用前面的可见多边形去切割位于其后的多边形,使得的可见多边形去切割位于其后的多边形,使得最终每一个多边形要么是完全可见的,要么是最终每一个多边形要么是完全可见的,要么是完全不可见的。完全不可见的。299.8 OpenGL中的消隐中的消隐o 多边形剔除:主要用于去除多边形物体本身的多边形剔除:主要用于去除多边形物体本身的不可见面,以提高图形系统的性能。不可见面,以提高图形系统的性能。glEnable(GL_CULL_FACE);glCullFace(mode);30OpenGL中的消隐中的消隐o 深度测试:深度测试:OpenGL中的深度测试是采用深中的深度测试是采用深度缓存器算法,消除场景中的不可见面。度缓存器算法,消除场景中的不可见面。glDepthRange(nearNormDepth,farNormalDepth);glClearDepth(maxDepth);glClear(GL_DEPTH_BUFFER_BIT);glDepthFunc(func);

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:计算机图形学基础课件chap9.ppt
    链接地址:https://www.163wenku.com/p-4538146.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库