电子科大实验4-三维图形程序设计要点.doc

电子科大实验4-三维图形程序设计要点.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子科大实验4-三维图形程序设计要点

实验报告 课程名称:三维图形设计 学  院:计算机科学与工程 专  业:计算机科学与技术 指导教师:周川 学生姓名: 学  号: 实验成绩: 日  期:  2014  年  5月  26日 电子科技大学计算机学院实验中心 电 子 科 技 大 学 实 验 报 告 一、实验四:OpenGL纹理映射编程实验 二、实验室名称:主楼A2-412 实验时间:2014年5月26日 三、实验目的: 1、理解OpenGL纹理映射的相关原理; 2、掌握与纹理映射相关的OpenGL API函数及其用法; 3、熟悉纹理映射设置的基本步骤。 四、实验原理: 1. openGL图形编程技术原理 2. 纹理映射、纹理参数设置、纹理坐标的自动生成、纹理对象、数字纹理、图片纹理、光照、变换、菜单。 3.BMP知识: 【基本组成】BMP文件是windows采用的图形文件格式,以像素为基本单位。一般由4部分组成,位图文件头,位图信息头,彩色表(24位不用彩色表),图像数据。 【解码相关】 windows.h中有BITMAPFILEHEADER和BITMAPINFOHEADER表示位图文件头和位图信息头。 一般BMP的24位图像是以BGR存储的,处理时需要注意。 一般BMP图像是从下到上,从左到右进行描述;PHOTOSHOP中有翻转行序(flip row over),采用了解码方便的从上到下从左到右描述,但处理时必须注意图像数据是相反的,高度是负值。 如果一个图像水平线字节数不是4的倍数,这行就用空字节补齐,通常是ASCII 0。 4. gluBuild2DMipmaps对BMP图片要求很低,任意大小都行,但是不太稳定。glTexImage2D支持64,128,256分辨率BMP,其他大小的可能会出现问题,稳定。 五、实验内容: (一)编程任务1——绘制一个具有纹理和光照的房间 为在第三次实验中生成的房间(如上图)添加数字图像生成的纹理。 要求: 使用纹理对象; 墙壁、地板和天花板的数字图像生成的纹理要不相同; 屋内至少有一个点光源; 可用右键菜单交互式的开启或关闭场景光照和纹理; 可用右键菜单设置纹理环境(GL_REPLACE和GL_MODULATE)。分析这两种方式中哪种适宜于有光照的环境下。 (二)编程任务2——绘制一个具有背景纹理的钟表 为在第二次次实验中生成的钟表上添加数字图像生成的纹理或者图片纹理。 六、实验器材(设备、元器件): 电脑型号 戴尔 System Inspiron N4110 笔记本电脑 操作系统 Windows 8 专业版 64位 ( DirectX 11 ) 软件环境 Microsoft Visual Studio Express 2012 for Windows Desktop OpenGL Glut3.7 七、实验步骤: 1.利用第三次实验的光照房间,去除多余功能。 2.用纹理对象和数字纹理进行贴图。 3.利用第二次实验的钟表,去除多余功能。 4.用纹理对象和如下BMP图片纹理进行贴图(PSCS6生成,大小480×480px,24位位图)。 BMP贴图图片(G://clockbg.bmp) BMP格式参数(无翻转行序) 八、实验数据及结果分析: (一)纹理房间 1. 代码: #includegl/glut.h #includestdio.h #define W 500//窗口宽 #define H 500//窗口高 //材质属性结构定义 typedef struct matattr{ GLfloat ambient[4]; GLfloat diffuse[4]; GLfloat specular[4]; GLfloat shininess; }matattr; //各种材质数据设置 matattr ball={ {0.2,0.3,0.3,1.0}, {0.3,0.3,0.85,1.0}, {0.5,0.5,0.81,1.0}, 50.0 }; matattr cone={ {0.3,0.0,0.0,1.0}, {0.6,0.0,0.0,1.0}, {0.8,0.6,0.6,1.0}, 50.0 }; matattr wall={ {0.2,0.5,0.5,1.0}, {0.2,0.5,0.5,1.0}, {0.9,0.9,0.9,1.0}, 100.0 }; matattr ceiling={ {0.5,0.5,0.7,1.0}, {0.5,0.5,0.9,1.0}, {0.9,0.9,0.9,1.0}, 100.0 }; matattr ground={ {0.9,0.0,0.4,1.0}, {0.9,0.0,0.4

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档