



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告装 订 线课程名称:_计算机图形学_ 指导老师:_ _成绩:_ _实验名称: OpenGL显示加速技术 实验类型:_基础实验_同组学生姓名:_一、实验目的和要求通过实现实验内容,掌握OpenGL中顶点数组和显示列表的使用,并验证课程中关于OpenGL显示加速技术的内容。二、实验内容和原理使用Visual Studio C+编译已有项目工程。要求修改代码达到以下要求:1. 补充完成函数drawVA(),实现使用顶点数组绘制场景:void drawVA()2. 补充完成函数Gen3DObjectList (),实现显示列表的生成:GLint Gen3DObjectList();3. 分析对比使用三种方法得到的fps。4. 添加拾取功能,对于鼠标点中的Bunny或桌子,改变显示颜色。三、主要仪器设备 Microsoft Visual Studio 2010 Windows 7 Ultimate Glut压缩包 Ex7 工程四、操作方法和实验步骤 理解顶点数组:在OpenGL中,所有的几何图元都是由顶点定义的,而每个顶点又有很多属性,如:坐标,颜色,法向量等。如果对每个顶点逐个的调用函数来描述,那么,开销是非常大的。而且不方便对复杂几何体顶点的管理。这里采用了顶点数组的方法,不但便于数据的管理,而且大大减少了函数的调用。使用顶点数组,需要三个步骤:启用数组,指定数组数据、解引用并渲染。 启用顶点数组:void glEnableClientState(GLenum array); 指定数组的数据:void glVertexPointer(GLint size,GLenum type,GLsizei stride,const GLvoid* pointer); 解引用和渲染:void glArrayElement(GLint ith); 示例代码:void drawVA() glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); glNormalPointer(GL_FLOAT,0,normals); glVertexPointer(3, GL_FLOAT, 0, vertices); / draw a cube glDrawElements(GL_TRIANGLES,16301*3,GL_UNSIGNED_SHORT,face_indicies); / deactivate vertex arrays after drawing glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); Gen3DObjectList ()函数GLint Gen3DObjectList()GLint lid=glGenLists(1); /生成显示类表glNewList(lid, GL_COMPILE);glBegin (GL_TRIANGLES); /每3分坐标相连接,生成一个三角形 for(int i=0;i(sizeof(face_indicies)/sizeof(face_indicies0);i+) for(int j=0;j3;j+) int idx=face_indiciesij; glNormal3fv(&normalsidx0); glVertex3fv(&verticesidx0); glEnd ();glEndList(); /结束生成显示列表return lid; 添加拾取功能 鼠标操作:if(button = GLUT_LEFT_BUTTON & state = GLUT_DOWN)printf(x = %d, y = %d , x , y);startPicking(x, y);selectRender();stopPicking(); 实现pick功能时的拾取视窗大小定义:gluPickMatrix(cursorX , viewport3 - cursorY , 1 , 1 , viewport); 返回法线绘制模型的个数:hits = glRenderMode(GL_RENDER);printf(hits = %dn, hits); 拾取功能,取最近的拾取对象minZ = 0xffffffff;for(int i = 0; i hits; i +)names = *ptr;ptr +;if(*ptr minZ)numberOfNames = names;minZ = *ptr;ptrNames = ptr + 2;ptr += names + 2;五、实验结果与分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 塑料层压工岗位合规化技术规程
- 2025湖南株洲市公共交通集团有限责任公司公交驾驶员、ART站务员招聘模拟试卷及参考答案详解
- 印刷设备电气装调工岗位职业健康技术规程
- 2025年甘肃省平凉华亭市策底镇招聘专业化管理的村文书模拟试卷及答案详解(考点梳理)
- 2025广西南宁市消防救援支队政府专职消防员招聘3人模拟试卷附答案详解(典型题)
- 美容师岗位工艺作业技术规程
- 飞机外场调试与维护工领导力与决策能力考核试卷及答案
- 飞机仪表电气系统装调工员工心理疏导基础考核试卷及答案
- 船舶起重工职业健康实操考核试卷及答案
- 2025年福建省泉州市鲤城区属部分公办学校专项公开招聘编制内15人模拟试卷及答案详解一套
- 深筋膜徒手松解疗法读书笔记
- 2021利达JB-QG-LD988EL JB-QT-LD988EL 火灾报警控制器 消防联动控制器调试手册
- 工业厂区规划设计说明书
- 结直肠癌的转化治疗
- 高中政治-专题五-第四课-亚太经济合作组织:区域经济合作的新形式课件-新人教版选修3
- 顺丰快递分析
- 提高住院病历完成及时性持续改进(PDCA)
- 平舌音和翘舌音学习资料课件
- 免疫学MHC主要组织相容性复合体及其编码分子
- 公司出差行程计划表excel模板
- 新产品APQP开发计划表
评论
0/150
提交评论