中国民航大学计算机与技术学院
图形学实验报告
课程名称:计算机图形学
*名:***
系:计算机科学与技术
专业:计算机科学与技术
年级:2010级
学号:*********
指导教师:***
2012年12 月17 日
实验项目:消隐算法实例实现
一、实验目的与要求
了解各种消隐算法,初步掌握消隐算法的实现。
了解真实感图形的基本原理,掌握真实感图形绘制的基本方法,为进一步掌握计算机图形学中图形处理技术奠定基础。
二、实验内容
给定一个长方体8个顶点坐标,编程实现正投影变换和轴侧投影变换。
自给定长方体个顶点坐标,编程实现一点透视绘图。
修改上面程序,实现两点透视变换图形。
给定一个三维几何体坐标,实现它的轴侧变换和一点透视变换。
三、重要算法分析
Z-Buffer算法的基本思想是:将Z缓冲器中各单元的初始值设为-1。
当要改变某像素的颜色值时,首先检查当前多边形的深度值是否大于该像素原来的深度值(保存在该像素所对应的Z缓冲器的单元中),如果大于,说明当前多边形更靠近观察点,用它的颜色替换像素原来的颜色;否则,说明在当前像素处,当前多边形被前面所绘制的多边形遮挡了,是不可见的,像素的颜色值不改变。
Z-Buffer算法流程如下:帧缓冲区置背景色;
Z缓冲区置最小值(离观察点最远);
for(场景中的每个多边形)
{
扫描转换该多边形;
for(多边形所覆盖的每一像素点(x,y))
{
计算多边形在该像素点的深度值z(x,y);
if(z(x,y)>Z-buf中对应此像素点(x,y)的z值)
{
把多边形在(x,y)处的深度值z(x,y)存入Z-buf中(x,y)处;
把多边形在(x,y)处的亮度值存入F-buf中的(x,y)处;
}
}
}
四、程序运行截图
程序运行结果分别如以下各图所示:
其中图1至图5是按键盘中“上”箭头时凸多面体的变化过程:
图1图2
图3 图4
图5图6
图6至图9是按键盘中“下”箭头时凸多面体的变化过程:
图7图8
图9 图10
五、总结与调试经验
最后一次实验,竟有些窃喜,额,似乎不太认真~~~不过好歹还是调试出来了~~~不敢说收获,但是很开心!!希望考试取得好成绩!!加油!!GO GO~。