计算机图形学——四、光栅化与消隐
第四章 光栅转化与消隐 重点总结一、光栅转化Rasterization定义把用数学描述的图形如三角形变成屏幕上一个个像素点。1. 多边形扫描转换顶点表示 → 点阵表示把多边形的顶点坐标转成内部所有像素的集合。逐点判断法对每个像素发一条射线看与多边形边界相交几次奇内偶外速度慢。扫描线算法高效利用连贯性相邻像素或扫描线性质相似避免重复计算。区域连贯性多边形内部连续区域性质相同。扫描线连贯性一条扫描线上交点之间区间要么全内要么全外。边连贯性相邻扫描线与同一条边的交点坐标可用增量公式快速计算。奇异点处理扫描线通过多边形顶点时极值点算2个交点非极值点算1个避免计数错误。数据结构**分类边表ET**记录初始边**活化边链表AEL**动态维护当前扫描线的边逐条扫描线填充。2. 区域填充定义给一个封闭区域内部填上颜色区域已是像素点集。四连通上下左右四个方向相连八连通加上四个对角线方向。种子填充算法从一个内部种子点开始递归或迭代把相邻同色像素全部改色。3. 走样与反走样走样直线或边界出现锯齿因为像素是方的。反走样通过模糊边缘或增加中间色来减轻锯齿。二、消隐Hidden Surface Removal定义确定哪些物体或部分被前面的物体挡住只显示可见部分。1. 图像空间消隐屏幕空间对每个像素找出离视点最近的物体显示它。z缓冲器Z-buffer算法一个像素除了存颜色帧缓冲还存深度值 z离相机距离。绘制每个多边形时计算每个像素的 z若比缓冲中已有的 z 更近更大则覆盖颜色并更新 z。优点简单、硬件支持、无需排序。缺点需要额外大内存存 z 值难以处理透明物体。2. 物体空间消隐世界坐标系在三维空间中直接比较物体间的遮挡关系按从远到近的顺序绘制画家算法。背面剔除只画法线方向朝向相机的面背向相机的面看不见用于预处理。深度排序画家算法按物体离相机的距离排序由远及近画。若物体 z 范围重叠需做5个测试如 x、y 范围是否重叠是否完全在背面等判断是否相互遮挡必要时把多边形剖开。二叉空间剖分树BSP树递归地用多边形所在平面把空间分成前后两半构建二叉树。遍历树时根据视点在哪一侧先画远离的一侧再画当前多边形最后画近的一侧自动得到正确遮挡顺序。适合静态场景、视点变化时无需重建。3. 消隐的选择图像空间z缓冲器简单、硬件快适合实时游戏。物体空间BSP树、深度排序精度高适合固定场景或 CAD。