欢迎来到天天文库
浏览记录
ID:36316147
大小:301.50 KB
页数:144页
时间:2019-05-09
《opengl游戏程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、OpenGL游戏程序设计第一章OpenGL概述一、OpenGL的特点1、与C语言紧密结合。OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL作图甚至比TC更加简单。2、强大的可移植性微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。而OpenGL不仅用于Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,Ope
2、nGL的基本命令都做到了硬件无关,甚至是平台无关。3、高性能的图形渲染。OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先OpenGL程序准备工作第一步,选择一个编译环境现在Windows系统的主流编译环境有VisualStudio,BrolandC++Builder等都是支持OpenGL的。但这里我们选择VisualC++作为学习OpenGL的环境。第二步,安装GLUT工具包GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。Windows环境下安装GLUT的步骤:1
3、、将下载的压缩包解开,将得到5个文件2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹。把解压得到的glut.h放到这个文件夹。3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(如果是VisualC++,则应该是其安装目录下面的“VClib”文件夹)。4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:WindowsSystem32)第三步,建立一个OpenGL工程这里以VisualC++6.0为例。选择File->New->Project,然后选择Win32Conso
4、leApplication,选择一个名字,然后按OK。在谈出的对话框左边点ApplicationSettings,找到Emptyproject并勾上,选择Finish。然后向该工程添加一个代码文件。第一个OpenGL程序见文本文件“第一个OpenGL文本文件”第二章基本图元绘制OpenGL函数形式OpenGL函数通常以gl开头,中间是函数相关功能单词,后面跟一个数字和1~2个字母。例如:glVertex2dglVertex2fglVertex3fglVertex3fv数字表示参数的个数,2表示有两个参数,3表示三个,4表示四个字母表示参数的类型:s表示16位整数(OpenG
5、L中将这个类型定义为GLshort);i表示32位整数(OpenGL中将这个类型定义为GLint和GLsizei);f表示32位浮点数(OpenGL中将这个类型定义为GLfloat和GLclampf);d表示64位浮点数(OpenGL中将这个类型定义为GLdouble和GLclampd)。v表示传递的几个参数将使用指针的方式,见下面的例子。这些函数除了参数的类型和个数不同以外,功能是相同的。例如,以下五个代码段的功能是等效的:(一)glVertex2i(1,3);(二)glVertex2f(1.0f,3.0f);(三)glVertex3f(1.0f,3.0f,0.0f);(四
6、)glVertex4f(1.0f,3.0f,0.0f,1.0f);(五)GLfloatVertexArr3[]={1.0f,3.0f,0.0f}; glVertex3fv(VertexArr3);OpenGL要求:指定顶点的命令必须包含在glBegin函数之后,glEnd函数之前(否则指定的顶点将被忽略)。并由glBegin来指明如何使用这些点。例如:glBegin(GL_POINTS); glVertex2f(0.0f,0.0f); glVertex2f(0.5f,0.0f);glEnd();则这两个点将分别被画出来。如果将GL_POINTS替换成GL
7、_LINES,则两个点将被认为是直线的两个端点,OpenGL将会画出一条直线。glBegin支持的方式除了GL_POINTS和GL_LINES,还有GL_LINE_STRIP,GL_LINE_LOOP,GL_TRIANGLES,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN等,每种方式的大致效果见下图:程序代码:voidmyDisplay(void){glClear(GL_COLOR_BUFFER_BIT);glBegin(/*在这里填上你所希望的模式*/)
此文档下载收益归作者所有