文档详情

计算机图形学-第九章讲义.pptx

发布:2025-05-02约2.42千字共10页下载文档
文本预览下载声明

第九章可见面判别算法本章重点讲述内容:后向面消除法深度缓存算法

可见面判别:判别从某一选定观察位置所能看到的场景中的内容消隐:在绘制时隐藏实际不可见的线和面消隐的考虑:三维物体的真实图形选择不同的消隐算法123第九章可见面判别算法

物空间算法像空间像法可见面判别算法,按实现空间分类第九章可见面判别算法

231在对象定义时所处的坐标系中实现。这种方法把物体和物体的某些部分彼此比较,通过有关几何运算,以确定哪些线或表面是不可见的。然后仅显示可见线,以此实现消隐算法精度较高,生成的图形可以放大多倍而仍然令人满意,适用于精密的工程应用领域物空间算法可见面判别算法显示图形的屏幕坐标系中实现对投影平面或显示屏幕上的每一个像素位置逐点地检测其可见性。算法比较粗糙.而且按图像空间算法得到的画面在放大后往往不能令人满意。算法计算效率比较高,因为在光栅扫描过程中可以充分利用画面的连贯性等性质像空间算法可见面判别算法

排序主要用在深度比较连贯性利用图形的规则性两类方法一般都利用排序和连贯性来提高算法性能可见面判别算法

01扫描线连贯性:一条扫描线可能包含相同强度的像素区段,并且相邻扫描线之间的图案变化很小02区域连贯性:动画中的各帧之间仅在运动对象的相邻区域内有差异,并且通常可以建立起场景中的对象与场景表面之间的稳定关系利用连贯性:充分利用场景的规则性特征提高可见面判别算法效率的常用方法

提高可见面判别算法效率的常用方法将场景中的对象表面根据它们与观察平面的距离进行排序,可以加速深度比较利用排序提高效率

1后向面消除法2深度缓存算法可见面判别算法13.1可见面判别算法的分类

后向面判别平面方程:Ax+By+Cz+D=0点(x,y,z)与平面的位置关系Ax+By+Cz+D=0(x,y,z)在平面上Ax+By+Cz+D0(x,y,z)在平面后方Ax+By+Cz+D0(x,y,z)在平面前方

设点(x,y,z)满足Ax+By+Cz+D01如果该点位于视线到该多边形平面的直线上,则我们正在看该多边形的后向面2后向面判别思想后向面判别

简单测试方法一后向面判别多边形面法向量N(A,B,C),视线向量V,在世界坐标系中,若V·N0,则为后向面可通过视角?判别V·N=|V||N|cosθ,if0θ90,then面不可见

简单测试方法二后向面判别若将对象描述转换至投影坐标系后,观察方向平行于观察坐标系中zv轴,则仅需要考虑法向量N(A,B,C)的z分量右手观察坐标系若C?0,则为后向面

对于一个对象的所有表面,通过检查C,可迅速判别出所有的后向面凸多面体:面要么完全可见,要么完全不可见,该方法能判别出所有隐藏面凹多面体:有遮挡,主要是部分遮挡,还需要其他方法检查部分遮挡是一种高效的物空间算法可用于预处理总结后向面判别

是一个比较常用的判定对象表面可见性的像空间算法01对场景中的各个对象表面单独进行处理,且在表面上逐点进行03在投影面上的每个像素位置比较场景中所有面的深度02由于通常沿着观察系统的z轴来计算各对象距观察平面的深度,也叫Z缓冲器算法04思想:深度缓存算法

深度缓存算法s3s2s1s1平面距离投影平面最近,所以投影点(x,y)将保存s1平面上相应点的属性信息XvZvYv观察方向(x,y)

深度缓存算法深度与可见性uvnumaxvmax

01缓冲区:两个缓冲区深度缓冲区(Z缓冲区)刷新缓冲区02算法实质:对给定的x,y,寻找最小的z(x,y)深度缓存算法

深度缓存算法算法描述:(1)缓冲器初始化 depth(x,y)=1.0 ;初始化为0refresh(x,y)=Ibg ;背景色(2)计算多边形上各点的深度值z(x,y),并判断ifz(x,y)depth(x,y){depth(x,y)=z(x,y),refresh(x,y)=Isurf(x,y) ;表面颜色}

深度缓冲器中保存的是可见面的深度值刷新缓冲器中保存的是这些表面的对应属性值0102最终结果:深度缓存算法

深度缓存算法如何计算多边形平面上各点的深度z(x,y)?采用连贯性方法以提高效率:扫描线xyz水平方向:线上相邻点间的x水平位移为±1竖直方向:相邻扫描线间的y垂直位移也为±1

深度缓存算法沿一条y=const的扫描线计算各点的深度设平面方程为:Ax+By+Cz+D=0已知z(x,y),求z(x+1,y)

z(x+1,y)=z-(A/C)沿

显示全部
相似文档