第2讲 OpenGL编程基础
- 格式:ppt
- 大小:384.00 KB
- 文档页数:64
OpenGL编程学习(2)•OpenGL画点函数OpenGL图元默认大小为一个像素单位,默认颜色为白色。
画点函数为:glVertex*();星号(*)说明该函数要有后缀码。
一般来说,会有2到3个后缀码。
第一个后缀码代表维数,二维、三维、四维坐标分别用2、3、4等数字表示。
第二个后缀码代表坐标的数值类型,如i(整数)、s (短整数)、f(浮点)、d(双精度浮点)等。
glVertex中可以使用显式的坐标值或引入矩阵形式坐标位置的单个变量,此时需要第三个后缀:v(向量)。
下面例子在斜率为2的直线上绘出了三个等距离的点。
glBegin(GL_POINTS);glVertex2i (50,100);glVertex2i (75,150);glVertex2i (100,200);glEnd();换一种方法,以矩阵形式表示上述坐标值:int point1 []={50,100};int point2 []={75,150};int point3 []={100,200};glBegin(GL_POINTS);glVertex2iv (point1);glVertex2iv (point2);glVertex2iv (point3);glEnd();•OpenGL画线函数与OpenGL画点函数十分类似,不同在于glBegin()中的符号常量。
使用图元常量GL_LINES可连接每一对相邻定点而得到一组直线段。
glBegin(GL_LINES);glVertex2iv (p1);glVertex2iv (p2);glVertex2iv (p3);glVertex2iv (p4);glVertex2iv (p5);glEnd();上述代码可以画出线段p1-p2和p3-p4。
使用GL_LINE_STRIP则可以获得折线,如果需要封闭的折线则需要重复某些点坐标。
glBegin(GL_LINE_STRIP);glVertex2iv (p1);glVertex2iv (p2);glVertex2iv (p3);glVertex2iv (p4);glVertex2iv (p5);glEnd();上述代码画出折线p1-p2-p3-p4-p5。
OpenGL基础知识1OpenGL函数库及简单例程1. 1OpenGL 函数库OpenGL 是一个针对图形硬件的软件接口(Software Interface)。
它包括200 多个图形操作函数, 分属于三个基本图形库, 即基础库、实用库、辅助库。
OpenGL 基础库是OpenGL 最底层的图形函数库, 它提供大量的几何图原和图象单元的操作, 约含115 个函数, 函数前缀为gl, 列于头文件<gl.h > 中; OpenGL 实用库( the OpenGL Utility Library, GLU ) 是在基础库上开发的高级实用函数库, 它提供更方便的纹理映射、坐标变换和复杂三维物体建模的调用, 约含43个函数, 前缀为glu, 列于头文件< glu. h> 中;OpenGL 辅助库( the OpenGL Auxiliary Library,AUX) 是为OpenGL 编程初学者提供的一系列窗口管理、输入输出及三维复杂物体绘制的特殊函数库, 因OpenGL本身并不带窗口系统, 也不提供复杂场景绘制功能, 因此提供辅助库便于快速入门,正式应用时可不用这些函数, 而直接在所用窗口系统下实现这些功能, 辅助库约含31个函数, 前缀为aux, 列于头文件< aux. h> 中。
1. 2基本接口编程Windows下一般已经带上了OpenGL 的opengl32. dll动态连接库, 读者可在windows目录下的SYSTEM 32子目录中查到。
但是一般没有直接带glu32. dll、glut32.dll、glut.dll 等。
必须再单独将这些动态链接库入Windows目录下的SYSTEM32子目录中去。
在VC下添加OpenGL静态链接库: opengl32.lib、glu32.lib、glaux.lib、glut32.lib。
将动态链接库文件opengl32.dll、GLUT.dll、GLUT32.dll、GLU.dll拷贝到系统的"Windows(或WinNT)\system32\"目录下。
OpenGL编程初步OpenGL介绍●由SGI公司的GL发展而来的一个工业标准图形库。
●OpenGL由图形库GL(Graphics Library)和应用图形库GLU(Graphics Library Utilities)两个库组成。
●OpenGL是与平台无关的标准图形库,可在多种平台上运行。
确切地说是与窗口系统无关。
●OpenGL可在网络上运行,显示图形的计算机可以不是运行图形程序的计算机。
●但OpenGL没有事件处理(如鼠标,键盘输入等)和窗口管理(如大小,位置等)的功能。
●另一个辅助库GLUT提供了与平台无关的事件处理和窗口管理功能。
●实现事件处理和窗口管理等功能的另一个方法是使用OpenGL在特定窗口系统的扩展,如OpenGL的X扩展GLX,在Windows的扩展WGL。
OpenGL的发展●1992年7月,OpenGL 1.0;●1995年12月,OpenGL 1.1;●1998年3月,OpenGL 1.2;●1998年10月,OpenGL 1.2.1;●2001年8月,OpenGL 1.3;●2002年7月,OpenGL 1.4.●OpenGL由独立组织ARB(OpenGL ArchitectureReview Board)管理。
成立于1992年。
主要成员有IBM,SGI,Intel, Microsoft,Compaq等。
●另一独立组织OPC(OpenGL PerformanceCharacterization Committee)负责管理和发布OpenGL的性能测试基准(benchmark)。
OpenGL与Windows平台●Microsoft和SGI共同开发了OpenGL的WIN32版本,称为WGL。
最先OpenGL集成在Windows NT中,后来集成到了Windows95(OSR2)中。
Windows98已将OpenGL作为标准组成部分。
●运行OpenGL程序,需要在windows\system目录下有动态连接库opengl32.dll,glu32.dll,使用GLUT的用戶需要有glut32.dll。