基于opengl的二维基本编程

基于opengl的二维基本编程

ID:37382111

大小:348.75 KB

页数:16页

时间:2019-05-22

基于opengl的二维基本编程_第1页
基于opengl的二维基本编程_第2页
基于opengl的二维基本编程_第3页
基于opengl的二维基本编程_第4页
基于opengl的二维基本编程_第5页
资源描述:

《基于opengl的二维基本编程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、高级图形图像处理实验讲义实验一基于opengl的二维图形编程实验目的:通过配置opengl编程环境,绘制基本图形和二维变换,掌握opengl的函数调用,深入理解opengl的框架和二维观察流水线的流程。实验内容:1.opengl编程环境组建(基于VC6.0或VC2008)2.基本图形绘制3.图形的二维变换4.二维观察流水线实验设备:PC,windowsOS,VC++6.0/VC++2008环境,opengl函数包预备知识:1.opengl框架及函数库2.VC++编程知识3.计算机图形学二维变换矩阵运算4.二维图形观察流水线过程实验步骤:1.opengl编程环境组建参见PP

2、T课件,配置VC++6.0与VC++2008,主要步骤为:(1)安装opengl2.0SDK,下载glut(2)设置(1)中两者头文件和库的路径为环境变量(3)配置工程属性,包含(2)中资源引用2.opengl窗口编程运行一个Windows环境下的一个基本OpenGL程序,它将显示一个空的OpenGL窗口,可以在定制窗口大小和全屏模式下切换,按ESC退出,该程序为以后的应用程序提供了实验平台,并预留了绘图接口,具体代码文档见附件。3.基本图像绘制阅读教材P67-70,了解绘制函数,根据附件2提供的源码baseshape.cpp,分析程序架构和关键代码,修改图形绘制命令和参

3、数,显示出点、线矩形、三角形、多边形等,可设置不同线宽,保存代码和屏幕显示结果。4.二维变换阅读附件3提供源码,分析程序代码并查看结果,通过调用glTranslate*,glRotate*,glscale*等二维变换函数实现平移、旋转、缩放等变换,要求通过参数操作和矩阵操作两种方式执行,分别给出源代码。5.二维观察流水线掌握二维观察流水线各环节知识,弄懂裁剪窗口、视口、世界坐标系、观察坐标系、设备坐标系的概念。阅读附件viewport.cpp提供的源代码和课本P253-259,理解gluOrtho2D、glviewport函数的调用,参考glut窗口操作函数,实现同一窗口

4、中的视口变换和多视口显示。实验报告用自己的话给出上述各步骤的原理理解,代码分析和实验结果,其中步骤3中至少绘制三个图形,步骤4中至少完成两个变换操作,步骤5两个结果都需要实现,杜绝雷同结果。将报告文档、源码工程存放一个文件夹下,打包压缩,压缩名以“学号+姓名+GI+第1次实验”格式命名,发送至gavin@ustc.edu.cn。1高级图形图像处理实验讲义附件1:opengl窗口编程代码,该附件以较大篇幅详细分析了VC++面向对象编程的窗口知识和windows应用的基本原理,重在理解,为后续绘图程序的添加做好铺垫代码的前4行包括了每个库文件的头文件。如下所示:#includ

5、e//Windows的头文件#include//包含最新的gl.h#include//包含最新的glu.h库#include//X–windows系统应用库接下来设置计划在程序中使用的所有变量。本例程将创建一个空的OpenGL窗口,暂时还无需设置大堆的变量。余下需要设置的变量不多,但十分重要,以后所写的每一个OpenGL程序中都要用到它们。第一行设置的变量是RenderingContext(着色描述表)。每一个OpenGL都被连接到一个着色描述表上。着色描述表将所有的OpenGL调用命令连

6、接到DeviceContext(设备描述表)上。我将OpenGL的着色描述表定义为hRC。要让程序能够绘制窗口的话,还需要创建一个设备描述表,也就是第二行的内容。Windows的设备描述表被定义为hDC。DC将窗口连接到GDI(GraphicsDeviceInterface图形设备接口)。而RC将OpenGL连接到DC。第三行的变量hWnd将保存由Windows给窗口指派的句柄。最后,第四行为程序创建了一个Instance(实例)。HGLRChRC=NULL;//窗口着色描述表句柄HDChDC=NULL;//OpenGL渲染描述表句柄HWNDhWnd=NULL;//保存窗

7、口句柄HINSTANCEhInstance;//保存程序的实例下面的第一行设置一个用来监控键盘动作的数组。有许多方法可以监控键盘的动作,但这里的方法很可靠,并且可以处理多个键同时按下的情况。active变量用来告知程序窗口是否处于最小化的状态。如果窗口已经最小化的话,我们可以做从暂停代码执行到退出程序的任何事情。我喜欢暂停程序。这样可以使得程序不用在后台保持运行。fullscreen变量的作用相当明显。如果我们的程序在全屏状态下运行,fullscreen的值为TRUE,否则为FALSE。这个全局变量的设置十分重要,它让每个过程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。