收藏 分享(赏)

长方体体的光照效果_计算机图形学课程设计.doc

上传人:无敌 文档编号:720439 上传时间:2018-04-19 格式:DOC 页数:29 大小:337KB
下载 相关 举报
长方体体的光照效果_计算机图形学课程设计.doc_第1页
第1页 / 共29页
长方体体的光照效果_计算机图形学课程设计.doc_第2页
第2页 / 共29页
长方体体的光照效果_计算机图形学课程设计.doc_第3页
第3页 / 共29页
长方体体的光照效果_计算机图形学课程设计.doc_第4页
第4页 / 共29页
长方体体的光照效果_计算机图形学课程设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、西安科技大学计算机图形学课程设计题目: 长方体体的光照效果 专业班级: 信计 1102 班 小组成员:陈维多 1108060216邹世林 1108060224左 力 1108060225李 优 1108060229日期: 2013 年 1 月 2 日 2目录一 课程设计题目 31.题目要求 32.任务 3二 任务分析算法介绍 31.任务分析 32.算法介绍 4三 总体设计 51.定义三维齐次向量结构体 52.定义三维齐次坐标结构 53.定义面的结构 64.定义点的结构 65.长方体顶点定义及初始化 76. 面表 77.定义点光源、视线方向、光照方向 88.各面可见性计算和判断 99.窗口-视区

2、变换 1110.路径填充 12四 流程图 13五 源程序 14六 程序运行效果图 27七 总结 28参考文献 293一、 课程设计题目长方体体的光照效果1.题目要求对长方体,建立一个点光源,采用环境光和点光源漫反射光的光照模型,应用 FLAT 明暗处理方法,显示平行投影后的长方体光照效果。2.任务本题目主要包括五个任务,1)长方体表面模型的建立 2)长方体的可见面判断 3)可见面的背光性判断4)可见面光照计算5)可见面光照效果显示附加:通过键盘上下左右按键对图形进行旋转二、 任务分析算法介绍1.任务分析任务 1)中,定义三维齐次坐标结构和面的结构;定义顶点表和面表,对长方体绕 X 轴旋转和绕

3、Y 轴旋转。任务 2)中对每一个面计算其外法向量及可见性任务 3)中对每个可见面计算其光线向量,并判断其是否为背光面。任务 4)计算每个见光面的环境光和点光源的漫反射分量。4任务 5)用该面的光强显示该可见面附加: 人机交互2.算法介绍1)旋转变换绕 X 轴旋转变换的坐标表示 cossiniZYX绕 Y 轴旋转变换的坐标表示 sicX2) 平行投影在 XOY 平面投影后坐标 0ZYX3) 环境光模型物体没有受到光源的直射,但其表面仍有一定亮度,这是由于环境光的作用。 10,*aae kIkI表示环境光反射强度e表示环境光反射率ak表示环境光入射强度I4)漫反射光模型漫反射光可认为是在点光源的照

4、射下,光被物体表面吸收后,然后重新反射出来的光。52/0,10,cos* dpd kIkI表示漫反射光强度d表示漫反射反射率k表示点光源入射强度大小pI入射光与物体表面法矢量夹角三、总体设计1.定义三维齐次向量结构体typedef struct Vector3Dfloat x;float y;float z;int f; /f 表示所在的平面的编号VECTOR;2. 定义三维齐次坐标结构typedef struct tagHOMOCOORDfloat x;float y;float z;float w;6HOMOCOORD;3.定义面的结构typedef struct tagPLANEint

5、v0, v1, v2, v3;VECTOR n; /外法向量HOMOCOORD center; /中心点float Id; /漫反射光强int flag;/标识符float kd; /漫反射率float ka; /环境光反射率float Ie; /环境光反射光强float I; /光强PLANE;4.定义点的结构typedef struct tagMYPOINTfloat x,y;MYPOINT;75.长方体顶点定义及初始化pts=new HOMOCOORDptn; pts0.x= 1; pts0.y= 2; pts0.z= 1; pts0.w=1;pts1.x= -1; pts1.y= 2;

6、 pts1.z= 1; pts1.w=1;pts2.x= -1; pts2.y= -2; pts2.z= 1; pts2.w=1;pts3.x= 1; pts3.y= -2; pts3.z= 1; pts3.w=1;pts4.x= 1; pts4.y= 2; pts4.z= -1; pts4.w=1;pts5.x= -1; pts5.y= 2; pts5.z= -1; pts5.w=1;pts6.x= -1; pts6.y= -2; pts6.z= -1; pts6.w=1;pts7.x= 1; pts7.y= -2; pts7.z= -1; pts7.w=1;6.面表fn=6;faces=n

7、ew PLANEfn;faces0.v0=0; faces0.v1=1; faces0.v2=2; faces0.v3=3; faces1.v0=4; faces1.v1=5; faces1.v2=1; faces1.v3=0; faces2.v0=5; faces2.v1=6; faces2.v2=2; faces2.v3=1; faces3.v0=6; faces3.v1=7; faces3.v2=3; faces3.v3=2; faces4.v0=7; faces4.v1=4; faces4.v2=0; faces4.v3=3; faces5.v0=7; faces5.v1=6; fac

8、es5.v2=5; faces5.v3=4;87.定义点光源、视线方向、光照方向1)点光源illuminant.x = -100;illuminant.y = -100;illuminant.z = 100;Ia = 0.5;/环境光入射强度Ip = 0.5;/漫反射入射光强度2)视线方向VECTOR eye_vec;eye_vec.x = 0;eye_vec.y = 0;eye_vec.z = -1;3)定义光照方向light_vec = new VECTORfn;VECTOR vector62 ;for(i=0; i0)facesi.flag = VISIABLE; elsefacesi.

9、flag = UNVISIABLE;3)计算各个面的中心点for(i=0; ifn; i+)10facesi.center.x = (ptsfacesi.v0.x+ptsfacesi.v1.x+ptsfacesi.v2.x+ptsfacesi.v3.x)/4.0f ;facesi.center.y = (ptsfacesi.v0.y+ptsfacesi.v1.y+ptsfacesi.v2.y+ptsfacesi.v3.y)/4.0f ;facesi.center.z = (ptsfacesi.v0.z+ptsfacesi.v1.z+ptsfacesi.v2.z+ptsfacesi.v3.z)/4.0f ;facesi.center.w = (ptsfacesi.v0.w+ptsfacesi.v1.w+ptsfacesi.v2.w+ptsfacesi.v3.w)/4.0f ;4)计算各个面的光照方向for(i=0; ifn; i+)light_veci = CalculateVector(illuminant, facesi.center, EOF);5)计算各个面的漫反射光强for(i=0; ifn; i+)facesi.Id = Ip*facesi.kd*(-1)*(InnerProduct(facesi.n,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报