1、 计算机图形学课程设计计算机图形学课程设计 题目:题目: 长方体体的光照效果长方体体的光照效果 2 目录目录 一 课程设计题目 3 1.题目要求 3 2.任务 3 二 任务分析算法介绍 3 1.任务分析 3 2.算法介绍 4 三 总体设计 5 1.定义三维齐次向量结构体 5 2.定义三维齐次坐标结构 5 3.定义面的结构 6 4.定义点的结构 6 5.长方体顶点定义及初始化 7 6. 面表 7 7.定义点光源、视线方向、光照方向 8 8.各面可见性计算和判断 9 9.窗口-视区变换 11 10.路径填充 12 四 流程图 13 五 源程序 14 六 程序运行效果图 27 七 总结 28 参考文
2、献 29 3 一、一、 课程设计题目课程设计题目 长方体体的光照效果 1.题目要求题目要求 对长方体,建立一个点光源,采用环境光和点光源漫反射 光的光照模型,应用 FLAT 明暗处理方法,显示平行投影后的 长方体光照效果。 2.任务任务 本题目主要包括五个任务, 1)长方体表面模型的建立 2)长方体的可见面判断 3)可见面的背光性判断 4)可见面光照计算 5)可见面光照效果显示 附加:通过键盘上下左右按键对图形进行旋转 二、二、 任务分析任务分析算法介绍算法介绍 1.任务分析任务分析 任务 1)中,定义三维齐次坐标结构和面的结构;定义顶点表 和面表,对长方体绕 X 轴旋转和绕 Y 轴旋转。 任
3、务 2)中对每一个面计算其外法向量及可见性 任务 3)中对每个可见面计算其光线向量,并判断其是否为背 光面。 任务 4)计算每个见光面的环境光和点光源的漫反射分量。 4 任务 5)用该面的光强显示该可见面 附加: 人机交互 2.算法介绍算法介绍 1)旋转变换)旋转变换 绕 X 轴旋转变换的坐标表示 cossin sincos ZYZ ZYY XX 绕 Y 轴旋转变换的坐标表示 sincos cossin XZZ YY XZX 2) 平行投影平行投影 在 XOY 平面投影后坐标 0Z YY XX 3) 环境光模型环境光模型 物体没有受到光源的直射,但其表面仍有一定亮度,这是由 于环境光的作用。
4、10 ,* aaae kIkI e I 表示环境光反射强度 a k 表示环境光反射率 a I 表示环境光入射强度 4)漫反射光模型)漫反射光模型 漫反射光可认为是在点光源的照射下,光被物体表面吸收后, 然后重新反射出来的光。 5 2/0 , 10 ,cos* dpdd kIkI d I 表示漫反射光强度 d k 表示漫反射反射率 p I 表示点光源入射强度大小 入射光与物体表面法矢量夹角 三、总体设计三、总体设计 1.定义三维齐次向量结构体定义三维齐次向量结构体 typedef struct Vector3D float x; float y; float z; int f; /f表示所在的平
5、面的编号表示所在的平面的编号 VECTOR; 2. 定义三维齐次坐标结构定义三维齐次坐标结构 typedef struct tagHOMOCOORD float x; float y; float z; float w; 6 HOMOCOORD; 3.定义面的结构定义面的结构 typedef struct tagPLANE int v0, v1, v2, v3; VECTOR n; /外法向量外法向量 HOMOCOORD center; /中心点中心点 float Id; /漫反射光强漫反射光强 int flag;/标识符标识符 float kd; /漫反射率漫反射率 float ka; /环境