- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《3D游戏图形学》
实验指导书
浙江理工大学
二0一五年 十月
课程实验指导
一、实验总体方案
1. 教学目标与基本要求
1)掌握本书所介绍的图形算法的原理。
2)掌握通过具体的平台实现图形算法的方法,培养学生使用现代图形系统API的能力。
3)通过实验培养具有开发一个基本图形软件包的能力。
2. 实验平台
实验主要结合OpenGL设计程序,实现各种课堂教学中讲过的图形算法。程序设计语言主要以C/C++为主,开发平台是Visual C++。
3. 实验步骤
1)预习教材与实验指导的实验具体方案部分相关的算法理论及原理。
2)仿照教材与实验指导提供的算法,利用VC++ OpenGL进行实验。
3)调试、编译、运行程序,运行通过后,可考虑对程序进行修改或改进。
二、实验预备知识
OpenGL作为当前主流的图形API之一,在一些场合具有比DirectX更优越的特性。
(1) 与C语言紧密结合
OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL很容易理解和学习。
(2) 强大的可移植性
微软的Direct3D虽然也是十分优秀的图形API,但它只适用于Windows系统,而OpenGL不仅适用于Windows,还可以用于Unix/Linux等其他系统,它甚至在大型计算机、各种专业计算机上都有应用。并且,OpenGL的基本命令都做到了硬件无关,甚至是平台无关。
(3) 高性能的图形渲染
OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先。
总之,OpenGL是一个非常优秀的图形软件接口。
下面对Windows下的OpenGL编程进行简单介绍。以下几点是学习OpenGL前的准备工作。
1. 选择一个编译环境
现在Windows系统的主流编译环境有Visual C++, C++Builder,Dev-C++等,它们都支持OpenGL。 这里选择Visual C++作为学习OpenGL的实验环境。
2. 安装OpenGL工具包
1) 将OpenGL工具包dll文件夹中的*.dll文件放到操作系统目录下面的system32文件夹(其路径一般为:C:\Windows\System32)。
2) 打开VC,在VC中选择Tools→Options→Directories,然后在Show directories for中选择Include files,在下面添加OpenGL工具包中Include文件夹的路径,如下图所示:
3) 类似地,在Show directories for中选择library files,在下面添加OpenGL工具包中lib文件夹的路径,然后按OK。如下图所示:
3. 建立一个OpenGL工程
打开VC后,在VC中选择File→New→Project,然后选择Win32 Console Application, 选择一个名字,然后按“OK”。在弹出的对话框中点An empty project,选择Finish。然后向该工程添加一个源文件,选择一个名字。
三、实验报告要求
(1) 有实验报告封面
(2) 给出简要的设计思路(原理)。
(3) 给出实现代码。
(4) 给出实验结果的屏幕截图。
(5) 实验的心得体会或建议。
实验一 VC++6.0+OpenGL绘图环境及基本图形学算法
实验项目性质:验证性实验
所属课程名称:3D游戏图形学
实验计划学时:3学时
一. 实验目的
1、 熟悉OpenGL的主要功能;
2、 掌握OpenGL的绘图流程和原理;
3、 掌握OpenGL核心函数的使用;
4、 理解基本图形元素光栅的基本原理;
5、 掌握直线和圆的多种生成算法。
二. 实验内容
1、 创建一个OpenGL工程,利用OpenGL库函数进行简单图形设计与绘制;
2、 编程实现DDA算法和Bresenham算法生成直线;
3、 编程实现中点算法生成圆。
三. 实验原理
1、 基本语法(C版本下的OpenGL语法)
OpenGL基本函数均使用gl作为函数名的前缀,如glClearColor();实用函数则使用glu作为函数名的前缀,如gluSphere()。OpenGL基本常量的名字以GL_开头,如GL_LINE_LOOP;实用常量的名字以GLU_开头,如GLU_FILL。一些函数如glColor*()(定义颜色值),函数名后可以接不同的后缀以支持不同的数据类型和格式,如glColor3b()、glColor3d()、glColor3f()和glColor3bv()等,这几个函数在功能上是相似的,只是适用于不同的数据类型和格式,其中3表示该函数带有三个参数,b、d、f分别表示参数的类型是字节型、双精度浮点型和单精
文档评论(0)