




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实体光照模型课程名称 课程设计报告题目: 用 C 语言设计实体光照模型专业: 网络工程(对口)班级: 16(3)姓名: 聂代应豪指导教师:代美丽成绩:计算机学院2017 年 4 月 25 日学号 1608220203 2016-2017 学年 第 2 学期计算机学院 实体光照模型课程设计报告1目录课程设计题目:实体光照模型一 需求分析 .2二 总体设计 .2三 详细设计 .3四 源代码 .11一 需求分析如对长方体,建立一个点光源,采用环境光和点光源漫反射光的光照模型,应用 FLAT 明暗处理方法,显示平行投影后的长方体光照效果。二 总体设计图形介绍光照模型效果图表面模型可见面判断可见面背光性判断可见面光照计算计算机学院 实体光照模型课程设计报告1三 详细设计1、原理光照模型是真实感图形技术的重要组成部分,它主要研究的是如何根据光学物理的有关定律,采用计算机来模拟自然界中光照明的物理过程。本文通过对光源特性和物体表面特性、局部光照模型和整体光照模型的具体分析,完成对光照模型的 系统阐述。关键词:光源特性、局部光照模型、全局光照模型、真实感图形2、详细分支定义三维齐次坐标结构和面的结构;定义顶点表和面表,对长方体绕 X 轴旋转和绕 Y 轴旋转。对每一个面计算其外法向量及可见性对每个可见面计算其光线向量,并判断其是否为背光面。计算每个见光面的环境光和点光源的漫反射分量。用该面的光强显示该可见面3、设计介绍(1)旋转变换绕 X 轴旋转变换的坐标表示绕 Y 轴旋转变换的坐标表示(2) 平行投影在 XOY 平面投影后坐标(3) 环境光模型物体没有受到光源的直射,但其表面仍有一定亮度,这是由于环境光的作用。表示环境光反射强度表示环境光反射率表示环境光入射强度(4)漫反射光模型漫反射光可认为是在点光源的照射下,光被物体表面吸收后,然后重新反射出来的光。表示漫反射光强度表示漫反射反射率表示点光源入射强度大小入射光与物体表面法矢量夹角4、定义结构及分析计算机学院 实体光照模型课程设计报告1(1)定义三维齐次向量结构体typedef struct Vector3D float x;float y;float z;int f; /f 表示所在的平面的编号VECTOR;(2) 定义三维齐次坐标结构typedef struct tagHOMOCOORD float x;float y;float z;float w;HOMOCOORD;(3)定义面的结构typedef struct tagPLANE int v0, v1, v2, v3;VECTOR n; /外法向量HOMOCOORD center; /中心点float Id; /漫反射光强int flag; /标识符float kd; /漫反射率float ka; /环境光反射率float Ie; /环境光反射光强float I; /光强PLANE;(4)定义点的结构typedef struct tagMYPOINT float x,y;MYPOINT;(5)长方体顶点定义及初始化ptsnew HOMOCOORDptn计算机学院 实体光照模型课程设计报告1pts0.x 1; pts0.y 2; pts0.z 1; pts0.w1;pts1.x -1; pts1.y 2; pts1.z 1; pts1.w1;pts2.x -1; pts2.y -2;pts2.z 1; pts2.w1;pts3.x 1; pts3.y -2;pts3.z 1; pts3.w1;pts4.x 1; pts4.y 2; pts4.z -1; pts4.w1;pts5.x -1; pts5.y 2; pts5.z -1; pts5.w1;pts6.x -1; pts6.y -2;pts6.z -1; pts6.w1;pts7.x 1; pts7.y -2;pts7.z -1; pts7.w1;(6)面表fn6;facesnew PLANEfn;faces0.v00; faces0.v11; faces0.v22; faces0.v33; faces1.v04; faces1.v15; faces1.v21; faces1.v30; faces2.v05; faces2.v16; faces2.v22; faces2.v31; faces3.v06; faces3.v17; faces3.v23; faces3.v32; faces4.v07; faces4.v14; faces4.v20; faces4.v33; faces5.v07; faces5.v16; faces5.v25; faces5.v34;(7)定义点光源、视线方向、光照方向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 ;fori0; i6; i+vectori0 CalculateVectorptsfacesi.v0, pts facesi.v1, i ;计算机学院 实体光照模型课程设计报告1vectori1 CalculateVectorptsfacesi.v0, pts facesi.v2, i ;(8)各面可见性计算和判断1、计算各个面的外法向量faces0.n VecCrossvector00, vector01 ;fori0; i6; i+facesi.n VecCrossvectori0, vectori1 ;2、各个面的可见性判定float cos_angle;fori0; i6; i+cos_angle -1.0*InnerProductfacesi.n, eye_vec/GetModulefacesi.n*GetModuleeye_vec;ifcos_angle0facesi.flag VISIABLE; elsefacesi.flag UNVISIABLE;3、计算各个面的中心点fori0; ifn; i+facesi.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 ;计算机学院 实体光照模型课程设计报告14、计算各个面的光照方向fori0; ifn; i+light_veci CalculateVectorilluminant, facesi.center, EOF;5、计算各个面的漫反射光强fori0; ifn; i+facesi.Id Ip*facesi.kd*-1*InnerProductfacesi.n, light_veci/GetModulefacesi.n*GetModulelight_veci;6、计算各个面环境光反射光强fori0; ifn; i+facesi.Ie facesi.ka*Ia;7、计算各个面光强(漫反射光强和环境反射光强之和)fori0; ifn; i+facesi.I facesi.Id+facesi.Ie ;/窗口-视区变换实现过程float wxl-5,wxr5,wyb-5,wyt5;int vxl0,vxr800,vyb0,vyt600;(9)窗口-视区变换int a intvxr-vxl/wxr-wxl;int b intvxl-wxl*a;int c intvyt-vyb/wyt-wyb;int d intvyb-wyb*c;fori0;iptn;i+pts2Di.x a*ptsi.x+b;pts2Di.y c*ptsi.y+d;(10) 路径填充计算机学院 实体光照模型课程设计报告1CBrush Brush;Brush.CreateSolidBrushRGBfacesj.I*255,facesj.I*255,facesj.I*255+40;pd.SelectObjectpd.BeginPath;pd.MoveTop0;forint i1;i4;i+pd.LineTopi;pd.LineTop0;pd.EndPath;pd.FillPath;Brush.DeleteObject;四 源代码Draw3DView.h 文件typedef struct Vector3D /定义三维齐次向量结构体 float x;float y;float z;int f; /f 表示所在的平面的编号VECTOR;typedef struct tagHOMOCOORD /定义三维齐次坐标结构 float x;float y;float z;float w;HOMOCOORD;typedef struct tagPLANE /定义面的结构 int v0, v1, v2, v3;VECTOR n; /外法向量HOMOCOORD center; /中心点float Id; /漫反射光强int flag;float kd; /漫反射率float ka; /环境光反射率float Ie; /环境光反射光强float I; /光强PLANE;计算机学院 实体光照模型课程设计报告1typedef struct tagMYPOINT /定义点的结构,需要浮点数的 x,y float x,y;MYPOINT;public:VECTOR CalculateVectorHOMOCOORD start, HOMOCOORD end, int face;/计算一个 3 维向量的函数,/从 start 点指向 end 点的属于 face 面的向量VECTOR VecCrossVECTOR vec1, VECTOR vec2;/计算两个向量叉积,即外法向量float InnerProductVECTOR vec1, VECTOR vec2;/计算两个向量的内积float GetModuleVECTOR vec; /计算向量的模void RotateYint angle; /绕 y 轴逆时针旋转void RotateXint angle; /绕 x 轴逆时针旋转void DrawMy3DGraphics; /绘制长方体virtual CDraw3DView;protected:HOMOCOORD illuminant; /定义光源坐标float Ip; /定义光源光强float Ia; /环境光光强VECTOR *light_vec; /各个面的光照方向指针HOMOCOORD *pts; /三维顶点指针MYPOINT *pts2D; /自定义的二维浮点数结构,表示变换后的二维点PLANE *faces; /长方体的面指针int ptn,fn; /顶点个数与面的个数Draw3DView.c 文件int x_angle 0;int y_angle 0;void CDraw3DView:DrawMy3DGraphicsint i;/形体定义ptn8;ptsnew HOMOCOORDptn;/设置长方体pts0.x1; pts0.y2;pts0.z1; pts0.w1;pts1.x-1; pts1.y2; pts1.z1; pts1.w1;pts2.x-1; pts2.y-2; pts2.z1; pts2.w1;pts3.x1; pts3.y-2; pts3.z1; pts3.w1;pts4.x1; pts4.y2;pts4.z-1; pts4.w1;pts5.x-1; pts5.y2; pts5.z-1; pts5.w1;计算机学院 实体光照模型课程设计报告1pts6.x-1; pts6.y-2; pts6.z-1; pts6.w1;pts7.x1; pts7.y-2; pts7.z-1; pts7.w1; /给定义面的指针分配内存;fn6;facesnew PLANEfn;/设置立方体各面faces0.v00; faces0.v11; faces0.v22; faces0.v33;faces1.v04; faces1.v15; faces1.v21; faces1.v30;faces2.v05; faces2.v16; faces2.v22; faces2.v31;faces3.v06; faces3.v17; faces3.v23; faces3.v32;faces4.v07; faces4.v14; faces4.v20; face
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏连云港市灌云县招聘社区工作者20人备考考试题库附答案解析
- 2025年彭州市教育系统“蓉漂人才荟”赴外公招(32人)笔试备考题库及答案解析
- 2025福建海峡人力资源股份有限公司平潭分公司第六批招聘1人备考考试题库附答案解析
- 2025四川成都市第八人民医院下半年编外招聘52人备考考试题库附答案解析
- 2025年宣城绩溪县开源建设投资发展有限公司公开招聘7名备考考试题库附答案解析
- 2025重庆武隆区事业单位考核招聘21人备考考试题库附答案解析
- 2025广东工业大学管理学院国际合作与认证中心招聘1人备考考试题库附答案解析
- 静脉血栓风险评估
- 持续性评估框架-洞察及研究
- 高新财税咨询方案公示
- 第4课 科技力量大 第三课时(课件)2025-2026学年道德与法治三年级上册统编版
- 异常处理管理办法
- 2025年东风校招测评题库及答案
- 怎样合理减肥健康教育
- 音乐核心素养培训课件
- 企业营销管理培训课件
- 蘑菇中毒中医处理
- 重庆机电职业技术大学《高等数学Ⅱ》2025-2026学年期末试卷(A卷)
- 有奖竞猜题目及答案有趣
- 骨科引流管护理
- 脑梗死的中医护理查房
评论
0/150
提交评论