河南理工大学计算机图形学8章-1

上传人:jiups****uk12 文档编号:53658214 上传时间:2018-09-03 格式:PPT 页数:41 大小:2.66MB
返回 下载 相关 举报
河南理工大学计算机图形学8章-1_第1页
第1页 / 共41页
河南理工大学计算机图形学8章-1_第2页
第2页 / 共41页
河南理工大学计算机图形学8章-1_第3页
第3页 / 共41页
河南理工大学计算机图形学8章-1_第4页
第4页 / 共41页
河南理工大学计算机图形学8章-1_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《河南理工大学计算机图形学8章-1》由会员分享,可在线阅读,更多相关《河南理工大学计算机图形学8章-1(41页珍藏版)》请在金锄头文库上搜索。

1、第8 章 真实感图形,8.1 概述 8.2 消隐算法 8.3 颜色模型 8.4 光照模型 8.5 纹理映射技术 8.6 OpenGL真实感图形,8.1 概述 8.1.1 真实感图形生成流程,真实感图形是综合利用数学、物理学、计算机科学以及其它科学技术在计算机图形设备上生成的、像彩色照片那样逼真的图形。,野外场景模拟,机械设备仿真,室内装修展示,小区规划设计,生成真实感图形的基本步骤:,(1)构建模型 用数学方法建立实体三维模型,并存储到系统中;(2)投影变换 将实体模型转换到三维观察坐标系中;(3)消隐处理 用消隐技术去除视景外的和实体上不可见的面;(4)光照处理 建立光照模型生成真实感图形。

2、,三维真实感图形生成流程图,8.1.2 真实感图形特点,1. 真实感图形的特点1)能比较完整地反映物体表面的颜色和亮度变化;2)反映物体表面的质感和表面粗糙度;3)反映物体的光照效果,表现场景的深度感和层次感,充分体现物体间的遮挡关系;4)模拟透明物体透明效果和镜面物体的镜像效果。,2. 影响真实感图形的因素:1)物体本身的几何形状:平面体、曲面体、随机形状 (云、雾、火);2)物体表面特性:粗糙度、感光度。表面颜色、纹理等;3)照射物体的光源形状:形状:点光源、线光源、面光源、体光源等;强度:光的强度、颜色等。4)物体和光源的位置:距离、角度、站高5)周边环境:环境对光的反射、折射、散射等。

3、,8.2.1 消隐基础知识,一、消隐定义,8.2 消隐算法,隐藏线(面):根据投影几何的理论,形体上的看不见的图线或(平面)。 消隐:消除形体视图中隐藏线(面)的处理过程。,二 消隐算法分类1) 根据消隐对象:线消隐:消除物体上不可见的轮廓线。面消隐:消除物体上不可见的表面。,2) 根据消隐算法空间:物体空间消隐算法,也称对象空间消隐算法:物体空间是指规范化的投影空间,即用户域。该算法通过分析物体之间的空间几何关系,来确定物体的可见性。,图像空间消隐算法图像空间是指物体投影后的二维空间,即屏幕域。该算法是将物体的投影分解为像素,通过分析像素的可见性,来确定物体的可见性。,3物体空间常用的消隐算

4、法算法分三类:1)外法线消隐算法:用于平面立体消隐处理;2)浮动水平线算法:用于标准曲面立体消隐处理;3)离散消隐算法:用于构造曲面立体消隐处理。,三 消隐基本原则1 排序判别消隐对象与观察点之间的距离远近;对其按x、y、z三个坐标方向进行排序;确定对象之间的遮挡关系。,2 连贯性从一个对象到另一个对象,其属性值是或连续的。连贯性:1) 实体对象的连贯性;2) 实体属性的连贯性;3) 扫描线的连贯性;4) 深度的连贯性。,8.2.2 平面立体的消隐算法,一 凸多面体消隐平面立体=凸多面体+凹多面体。,1 凸多边形判定: 多边形任意两点连线均位于多边形内部。,2 凸多面体特点: 由多个平面凸多边

5、形组成; 在投影关系上,体的表面要么完全可见,要么完全不可见; 各朝前表面不发生相互重叠现象。,朝前表面 ?,显然N|恒为正值,cos的值由B值来决定。,3 凸多面体隐藏线的消隐算法 形体表面的外法线方向:由形体内部指向外部,或由形体表面指向外部空间。,形体表面的外法线方向:由形体内部指向外部,或由形体表面指向外部空间。,3 算法过程:1)可见面判别依据平面的表面外法线 当0a90o时,表示表面法线朝前(即朝前面),该表面可见; 当90o0时画出该表面,否则不画该表面。,当B0时,0o a 0时,0oa 90o,表面面向观察者可见。 若表面可见画出该表面,否则处理下一个表面。,二 凹多面体的隐

6、藏线消除,1概述 形状特点:1)多面体表面由多边形组成,多边形可为凸的,也可为凹的;2)表面可以由单环或者多环组成的;,可见性特点:1)表面完全可见;2)表面完全不可见;3)表面部分可见和部分不可见;,2算法处理过程1)先求出表面的外法线,计算其投影方向上的方向余弦值cosa;,3)对朝前面计算其表面的最大深度值;4)计算朝前面的盒子角点坐标;5)取出最大深度值的表面作为当前面;,6)循环计算其他表面和当前表面的遮挡关系; 提取表面的每一个边,判断和当前面的关系:完全挡住、完全未被挡住或部分挡住;若完全挡住视为不可见边,作删除或改变线型处理;,若完全不被挡住,视为可见边,绘制该边;若部分挡住,

7、利用线段裁剪求出多边形之外的部分线段:可见线段,绘制;对多边形之内的部分线段:不可见线段,作删除或改变线型处理;,3平面立体消隐算法的数据结构 1)采用三表结构,即点面表、棱边表和顶点表。 2)面表第一列为该表面的棱边总数; 3)面表第二列为该表面中内环数目,无内环时取为0; 4)棱边表中记录表面点环的顶点编号,内环顺时针排序,而外环则按逆时针排序; 5)不论内环还是外环,其都是封闭的; 6)内外环的分隔符通常采用0;,8.2.3深度缓存消隐算法(Z缓冲区算法),常用算法:深度缓存消隐算法,扫描线消隐算法、区域排序算法等。,1.基本思路对于屏幕上的每一个像素,记录位于该像素内最靠近观察者的景物

8、面的深度值,同时相应记录该景物面的颜色(或灰度) 的所有记录值,根据记录的数据输出的图形。,图像空间消隐算法,2.深度值在屏幕坐标系中任取像素点P0(i,j),作平行于Z轴的射线R,和表面F1、F2分别交于P1、P2点。,P1、P2点的Z坐标,表面F1和F2的深度值。 深度值反映了该表面到显示器屏幕的距离。,深度值反映了该表面到观察者的距离,Z,距离 。,3 . 开辟内存记录每一个像素的深度值和颜色值,开辟动态内存。内存大小与屏幕的分辨率有关。设屏幕的分辨率为:mn,开辟数组大小:存放深度值:ZB(m,n),存放颜色(或灰度)值:FB(m,n)。,4. 表面深度值计算设表面方程:ax+by+c

9、z+d=0 (c0),该表面对应像素点P(i,j)的深度值:z= (ai+bj+d)/c,5.求表面方程根据形体的数据结构,可在表面的顶点表中任取三点:P1(x1,y1,z1)、P2(x2,y2,z2) 、P3(x3,y3,z3),由三点式平面方程:,此三点怎样取?,而表面方程的一般形式:ax+by+cz+d=0,可推出:a=y1(z2-z3)-y2(z1-z3)+y3(z1-z2)b=-x1(z2-z3)+x2(z1-z3)-x3(z1-z2)c=x1(y2-y3)-x2(y1-y3)+x3(y1-y2)d=-x1(y2z3-y3z2)+x2(y1z3-y3z1)-x3(y1z2-y2z1)

10、,展开:,6. 表面与z轴的位置求表面的深度值,首先判断该面和z轴的相互位置关系:1)表面和z轴平行或重合,不求其交点;2)表面和z轴不平行,求其交点。,思考:夹角的值如何表示?,6. 算法步骤1)开辟内存数组:ZB(m,n)和FB(m,n)2)初始化数组:FOR i=1,m FOR j=1,nZB(i,j)=机器允许最大值,FB(i,j)= 背景色3) 循环计算每个像素点的深度值:For j=1,mFor i=1,nFor k=1,L /L:形体的表面数 Zij=机器最大值判断(i,j)点是否在当前投影多边形k内,利用射线法或弧长法判断。, 若(i,j)点在k内,求(i,j)点的深度值Zij

11、 进行深度值比较。 若ZijZB(i,j),ZB(i,j)= Zij,7.优缺点分析优点:算法简单、直观,便于硬件实现。缺点:内存占用量大、计算量比较大。如VGA模式800600,每个数组有:800600=480,000个元素。,在屏幕上,y方向按像素为单位分,得到的每个子区就是扫描线,即y=i (/xoy)扫描平面。,y=i扫描面,8.2.4 扫描线消隐算法,1.基本思路:1)求扫描面与立体相交截交线;2)在扫描线上,确定显示像素点的属性;3)显示像素点的属性。,2.算法的基本步骤1)定义一维数组ZB、ZF,保存扫描线上的数据。2)对ZB和ZF数组赋初值:3)搜索顶点坐标,确定扫描线范围,

12、YminYYmax;4)按扫描线循环:for i=Ymin,Ymax,求出第i条扫描线平面和立体表面的截交线;5)把各个交点按X坐标单向排序;6)确定像素点的范围,XminXXmax;7)按像素点循环,For j = Xmin,Xmax,8)开始循环 for j =x1, x6 9)按边循环 for k=1, n (n表示多边形的边数,n=5) 10)求出每个像素点对应的深度值:Zk,并记录; 11)从Zk中确定其最小值Zmin; 12)把Zmin的值及属性送显。,3.截交线的求交算法求扫描平面和形体表面的截交线主要解决以下问题:1)形体的数据结构采用翼边结构;2)判断棱线(边)和扫描平面是否

13、相交: 条件:y1y2 (y1-i)(y2-i)03) 求出第一个与y=i扫描面的交点,记录该边和交点此边为起点,进行交点追踪,采用循环:for j=1,L(形体的总边数)。4)以翼边结构中的面指针作为追踪的方向,根据左右指针的值进行追踪。,5)追踪结束标志: 若重新追踪到第j边,说明截交线是封闭的多边形。 若追踪到某个边,该边面指针为空,说明形体表面不封闭;应转向从j的另一个方向追踪,直到边界为止。,4.像素点可见性判断间隔可以分为三类:1)不包含截交线段,图中,xxb,用背景色显示该像素点。2)仅包含有一条线段或一个点,图中x=xa、x=xb两点处用线段所在表面颜色显示该像素点。,3)同时

14、存在多条线段,图中,xaxxb,在此需解决以下问题:,循环求出x=j的像素点处各表面的点,并进行记录:循环:for k=1,n(n为截交线的边数)。求交:x=j和两端点确定的直线段的交点。有效交点的记录:“起闭终开”判断重合点。确定Z值最小的点,记录该表面的颜色。,算法的基本步骤1)定义一维数组ZB、ZF,保存扫描线上的数据。2)对ZB和ZF数组赋初值:3)搜索顶点坐标,确定扫描线范围, YminYYmax;4)按扫描线循环:for i=Ymin, Ymax,求出第i条扫描线平面和立体表面的截交线;5)把各个交点按X坐标单向排序;6)确定像素点的范围,XminXXmax;7)按像素点循环,For j = Xmin,Xmax,8)开始循环 for j =x1, x6 9)按边循环 for k=1, n(n表示多边形的边数,n=5) 10)求出每个像素点对应的深度值:Zk,并记录; 11)从Zk中确定其最小值Zmin; 12)把Zmin的值及属性送显。,5.算法优缺分析优点: 把图象空间的面计算简化为线计算,计算量; 动态内存占用量明显降低;缺点: 计算过程要求比较复杂; 数据结构比较复杂,通常采用翼边结构。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号