OpenGL编程指南
第三章OPENGL编程基础

OPENGL编程简介
OpenGL简介
OpenGL基本函数库用来描述图元、属性、几何变 换等等的操作, OpenGL被设计成与设备无关,因此 输入输出函数等许多操作均不包含在其基本库当中。 但在OpenGL的辅助库中有输入和输出函数以及许多 附加函数。
1、基本的OpenGL语法
OpenGL基本库中的函数均以gl为前缀,且函数名中每一 组成词的第一字母大写。如: glBegiGL编程简介
(4)、设定所创建的窗口的大小 glutInitWindowSize(400,300); 到此窗口的设定完成,下面就是你要在窗口中显示什么内容。
(5)、我们用OpenGL核心库写了一个绘制图形的函数,比如命 名 为 Mydisplay , 然 后 将 其 传 递 给 GLUT 函 数 glutDisplayFunc,调用格式为: glutDisplayFunc(Mydisplay);
3、头文件
与C语言画图一样每一个程序中需要包含一个头文件以引 入OpenGL核心库。我们需要用到GLU,需要包该含头文件 来引入窗口系统。对 Windows 系统,存取 WGL 的头文件是 windows.h 。该头文件要在 OpenGL 和 GLU 头文件之前。因 此程序开头几行应为:
# include “windows.h”
11.03.2019
glEnd
glClear
西安工程大学
glPolygonmode
OPENGL编程简介
有些函数要求一个或多个变量用符号常量,所以这些常 量均以大写字母GL开头,常量名中各组成词均采用大写。单 词间用下划线( _ )分隔。例如:
GL_2D GL_RGB GL_AMBIENT_AND_DIFFUSE
OpenGL介绍与编程入门

OpenGL编程入门什么是Open GL•是一个功能强大的图形库,用户可以很方便地开发所需要地有多种特殊视觉(如光照,纹理,透明,阴影)的三维图形。
•与软硬件平台无关的三维图形软件包,可运行于多种窗口系统之上•包含图元生成、投影、光照、光栅化等图形显示过程所需的功能OpenGL的组成•OpenGL实用库–实用函数43个–函数以glu开头–例:gluPers pectiv e();–完成更高层的图形处理如曲线曲面的生成、图象操作等•OpenGL辅助库–包括函数31个–函数以aux开头–例:auxInit Window();–主要用于窗口管理–OpenGL(Open Graphic s Library)是图形硬件的一个软件接口,也是该领域的工业标准。
图形程序员利用这些指令可以创建高质量的交互式的三维应用。
OpenGL的前身是SGI(Silicon Graphic s)公司为其图形工作站开发的I RIS GL。
IRIS GL虽然功能强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了Open GL。
OpenGL是一个与硬件无关的软件接口。
可以在不同的平台如Wind ows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。
因此,支持OpenG L 的软件具有很好的移植性,可以获得非常广泛的应用。
OpenGL是网络透明的,具有网络功能。
即便客户机和服务器是不同类型的计算机O penGL程序也可以在网络上运行。
这一点对于制作大型3D图形、动画非常有用。
例如,《玩具总动员》、《泰坦尼克》等电影的电脑特技画面就是通过应用Ope nGL的网络功能,使用120多台图形工作站共同工作来完成的。
OpenGL的发展一直处于一种较为迟缓的态势,每次版本的提高新增的技术很少,大多只是对其中部分做出修改和完善。
OpenGL介绍与编程入门

OpenGL编程入门什么是OpenGL•是一个功能强大的图形库,用户可以很方便地开发所需要地有多种特殊视觉(如光照,纹理,透明,阴影)的三维图形。
•与软硬件平台无关的三维图形软件包,可运行于多种窗口系统之上•包含图元生成、投影、光照、光栅化等图形显示过程所需的功能OpenGL的组成•OpenGL实用库–实用函数43个–函数以glu开头–例:gluPerspective();–完成更高层的图形处理如曲线曲面的生成、图象操作等•OpenGL辅助库–包括函数31个–函数以aux开头–例:auxInitWindow();–主要用于窗口管理–OpenGL(Open Graphics Library)是图形硬件的一个软件接口,也是该领域的工业标准。
图形程序员利用这些指令可以创建高质量的交互式的三维应用。
OpenGL的前身是SGI(Silicon Graphics)公司为其图形工作站开发的IRIS GL。
IRIS GL虽然功能强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。
OpenGL是一个与硬件无关的软件接口。
可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。
因此,支持OpenGL 的软件具有很好的移植性,可以获得非常广泛的应用。
OpenGL是网络透明的,具有网络功能。
即便客户机和服务器是不同类型的计算机OpenGL程序也可以在网络上运行。
这一点对于制作大型3D图形、动画非常有用。
例如,《玩具总动员》、《泰坦尼克》等电影的电脑特技画面就是通过应用OpenGL的网络功能,使用120多台图形工作站共同工作来完成的。
OpenGL的发展一直处于一种较为迟缓的态势,每次版本的提高新增的技术很少,大多只是对其中部分做出修改和完善。
随着DirectX的不断发展和完善,OpenGL的优势逐渐丧失,至今虽然已有3Dlabs提倡开发的2.0版本面世,在其中加入了很多类似于DirectX中可编程单元的设计,但厂商的用户认知程度并不高,未来的OpenGL发展前景迷茫。
OpenGL编程轻松入门之特殊效果操作Read

OpenGL编程轻松入门之特殊效果操作-Read————————————————————————————————作者:————————————————————————————————日期:OpenGL编程轻松入门之特殊效果操作每个物体在不同的环境在会有不同的视觉效果。
为了使效果更加真实需要增加特殊效果。
例8:绘制三个互相重叠的矩形,这三个矩形从左到右分别为绿、红、蓝。
其中红色、蓝色矩形的透明度分别为50%的透明度,即alpha值为0.5,如图九所示。
#include <stdlib.h>#include <GL/glut.h>void myInit(void){glClearColor(0.2,0.8,0.8,0.0);//将背景设置为湖蓝色glEnable(GL_BLEND);//激活GL_BLENDglBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);//指定像素的数学算法glEnable(GL_FLAT);}void myDisplay(void){glClear(GL_COLOR_BUFFER_BIT);/*绘制一个绿色的矩形alpha = 1.0*/glColor4f(0.0,1.0,0.0,1.0);glBegin(GL_POL YGON);glVertex3f(-0.75,0.5,0.0);glVertex3f(-0.75,-0.75,0.0);glVertex3f(0.5,-0.75,0.0);glVertex3f(0.5,0.5,0.0);glEnd();/*绘制一个红色的矩形alpha = 0.5*/glColor4f(1.0,0.0,0.0,0.5);glBegin(GL_POL YGON);glVertex3f(-0.25,1.0,0.0);glVertex3f(-0.25,-0.25,0.0);glVertex3f(1.0,-0.25,0.0);glVertex3f(1.0,1.0,0.0);glEnd();/*绘制一个蓝色的矩形alpha = 0.5*/glColor4f(0.0,0.0,1.0,0.5);glBegin(GL_POL YGON);glVertex3f(0.25,1.5,0.0);glVertex3f(0.25,0.25,0.0);glVertex3f(1.5,0.25,0.0);glVertex3f(1.5,1.5,0.0);glEnd();glFlush();}void myReshape(int w,int h){glViewport(0,0,w,h);glMatrixMode(GL_PROJECTION);glLoadIdentity();if(w<h)glOrtho(-1.5,1.5,-1.5*(GLfloat)h/(GLfloat)w,1.5*(GLfloat)h/(GLfloat)w,-1.5,1.5);elseglOrtho(-1.5*(GLfloat)w/(GLfloat)h,1.5*(GLfloat)w/(GLfloat)h,-1.5,1.5,-1.5,1.5);glMatrixMode(GL_MODELVIEW);glLoadIdentity();glTranslatef(-0.4,0.0,0.0);}int main(int argc,char ** argv){/*初始化*/glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);glutInitWindowSize(300,400);glutInitWindowPosition(200,200);/*创建窗口*/glutCreateWindow("BLEND POL YGON");/*绘制与显示*/myInit();glutReshapeFunc(myReshape);glutDisplayFunc(myDisplay);/*进入GLUT事件处理循环*/glutMainLoop();return(0);}图九:三个互相重叠的矩形·glBlendFunc(GLenum sfactor,GLenum dfactor)指定像素算法。
openGL编程基础第二节

平滑 line width = 2
非平滑 line width = 2
glLineStipple(Glint factor,Glushort pattern)
� 这个函数可用来设定线段的样式。使用这个函数之前,你必须
调用glEnable(GL_LINE_STIPPLE)来启动这个功能。 � 参数pattern是一个 16-bit 的整数,用来定义线段的样式,其中 的 bits由右至左检查,若为 1,则表示要画点,若为 0 的话, 则表示不要画点。参数factor控制样式的放大倍数。 十六进制 样式
� glutWindowSize
6
init.c
清除色(背景色)为黑色 不透明窗口
void init() { glClearColor (0.0, 0.0, 0.0, 1.0); glColor3f(1.0, 1.0, 1.0);
矩形填充以白色
glMatrixMode (GL_PROJECTION); glLoadIdentity (); glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); }
3
对simple.c进行修改
�在新程序中,会得到同样的输出,但是所有具
有默认值的相应状态值都通过函数调用显式指 定 �特别地,设置了
--颜色 --视图条件 --窗口属性
4
main.c
#include <GL/ glut.h > <GL/glut.h glut.h>
这自动包含了gl.h
int main(int argc , char ** argv ) argc, char* argv) { ); glutInit(&argc,argv glutInit(&argc,argv); ); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(500,500); glutInitWindowPosition(0,0); 定义窗口属性 "); glutCreateWindow("simple glutCreateWindow("simple"); glutDisplayFunc(mydisplay ); 显示回调函数 glutDisplayFunc(mydisplay); init(); (); glutMainLoop glutMainLoop(); }
第2章 OPENGL编程

(1)点(Point) 用二维坐标(x,y)定义的点在OpenGL中默认z 值为0。顶点坐标也可以用齐次坐标(x,y,z,w)来表 示,如果w不为0.0,这些齐次坐标表示的顶点即 为三维空间点(x/w,y/w,z/w),一般来说,w缺省为 1.0。 可以用glVertex{234}{sifd}[V](TYPE cords) 函数来定义一个顶点。例如: glVertex2f(2.0f,3.0f);//二维坐标定义顶点; OpenGL中定义的点可以有不同的尺寸,其 函数形式为: void glPointSize(GLfloat size); 参数size设置点的宽度(以象素为单位),必 须大于0.0,缺省时为1.0。
(5)在CEx_OpenGLView类的头文件 Ex_OpenGLView.h的开始处添加OpenGL库的 包含文件 #include "gl\gl.h" #include "gl\glu.h" #include "gl\glaux.h" #pragma comment (lib,"Opengl32.lib") #pragma comment (lib,"Glu32.lib") #pragma comment (lib,"Glaux.lib")
在MFC中使用这些图形库的函数时,还必须在源文 件的开头处加入相应的包含文件,以及编译时 加入相应的库或在程序中加入,如下列语句:
#include "gl\gl.h"
#include "gl\glu.h" #include "gl\glaux.h"
#pragma comment (lib,"Opengl32.lib")
OpenGL编程基础(二)

OpenGL编程基础
显示点、直线和多边形: 三、多边形的细节 2. 设置点画多边形的函数: glPolygonStipple() 句法:void glPolygonStipple(const GLubyte *mask); 描述:定义填充多边形的当前点画模式。Mask参数是一 个指向32x32位图的指针,后者被解释为0和1的掩码。如果 模式中出现的是1,则多边形对应的像素就被绘制,如果模
OpenGL编程基础
显示点、直线和多边形: 二、直线的细节 直线的细节包括直线的宽度和不同点画模式的直线。 1. 设置直线的宽度函数: glLineWidth() 句法:void glLineWidth(GL float Width); 描述:设置被渲染直线的粗细,以像素为单位。Width必 须大于0.0,默认值为1.0 。在未使用反走样功能时,直线的
OpenGL编程基础
OpenGL基础函数
OpenGL图元绘制
OpenGL编程基础
显示点、直线和多边形: 一、点的细节 点的基本大小对应屏幕上的1个像素。使用glPointSize()函 数可设置被渲染点的大小。 句法:void glPointSize(GL float size); 描述:设置被渲染点的大小,以像素为单位。Size必须 大于0.0,默认值为1.0 。被渲染的点呈正方形方块。如果 启用了反走样或多重采样,被渲染的点呈圆形。调用函数 glEnable(),并将参数设置为GL_POINT_SMOOTH,启 用反走样。例:point
x[i ] xc r (cos(t ) t sin( t )) y[i ] yc r (sin( t ) t cos(t ))
绘制渐开线,如图所示。
现代 OpenGL 教程 01 - 入门指南说明书

现代OpenGL教程 01——入门指南欢迎大家,这是现代OpenGL教程系列的第一篇。
所有代码都是开源的,你可以在GitHub上下载:https:///tomdalling/opengl-series 通过这篇教程,你将会学到如何在Windows下用Visual Studio 2013或Mac下用Xcode搭建OpenGL 3.2工程。
该应用包含一个顶点着色器(vertex shader),一个片段着色器(fragment shader)和使用VAO和VBO来绘制的三角形。
该工程使用GLEW来访问OpenGL API,用GLFW来处理窗口创建和输入,还有使用GLM进行矩阵/矢量相关的数学运算。
这听上去有点无聊,但搭建这样的工程确实挺麻烦的,尤其对于初学者。
只要解决完这问题,我们就可以开始玩些有趣的东西了。
[TOC]获取代码所有例子代码的zip打包可以从这里获取:https:///tomdalling/opengl-series/archive/master.zip。
这一系列文章中所使用的代码都存放在:https:///tomdalling/opengl-series。
你可以在页面中下载zip,加入你会git的话,也可以复制该仓库。
本文代码你可以在source/01_project_skeleton目录里找到。
使用OS X系统的,可以打开根目录里的opengl-series.xcodeproj,选择本文工程。
使用Windows系统的,可以在Visual Studio 2013里打开opengl-series.sln,选择相应工程。
工程里已包含所有依赖,所以你不需要再安装或者配置额外的东西。
如果有任何编译或运行上的问题,请联系我。
关于兼容性的提醒本文使用OpenGL 3.2,但我会尝试保持如下兼容:向后兼容OpenGL 2.1向前兼容OpenGL 3.X和4.X兼容Android和iOS的OpenGL ES 2.0因为OpenGL和GLSL存在许多不同版本,本文代码不一定能做到100%上述兼容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OpenGL基础图形编程- 总目录出处:中国游戏开发者[ 2001-09-20 ]作者:总目录第一章OpenGL与三维图形世界1.1 OpenGL使人们进入三维图形世界1.2 OpenGL提供直观的三维图形开发环境1.3 OpenGL称为目前三维图形开发标准第二章OpenGL概念建立2.1 OpenGL基本理解2.2 OpenGL工作流程2.3 OpenGL图形操作步骤第三章Windows NT环境下的OpenGL3.1 Windows NT下的OpenGL函数3.2 OpenGL基本功能3.3 Windows NT下OpenGL结构第四章OpenGL基本程序结构第五章OpenGL数据类型和函数名第六章OpenGL辅助库的基本使用6.1 辅助库函数分类6.2 辅助库应用示例第七章OpenGL建模7.1 描述图元7.1.1 齐次坐标7.1.2 点7.1.3 线7.1.4 多边形7.2 绘制图元7.2.1 定义顶点7.2.2 构造几何图元第八章OpenGL变换8.1 从三维空间到二维平面8.1.1 相机模拟8.1.2 三维图形显示流程8.1.3 基本变换简单分析8.2 几何变换8.2.1 两个矩阵函数解释8.2.2 平移8.2.3 旋转8.2.4 缩放和反射8.2.5 几何变换举例8.3 投影变换8.3.1 正射投影8.3.2 透视投影8.4 裁剪变换8.5 视口变换8.6 堆栈操作第九章OpenGL颜色9.1 计算机颜色9.1.1 颜色生成原理9.1.2 RGB色立体9.2 颜色模式9.2.1 RGBA模式9.2.2 颜色表模式9.2.3 两种模式应用场合9.3 颜色应用举例第十章OpenGL光照10.1 真实感图形基本概念10.2 光照模型10.2.1 简单光照模型10.2.2 OpenGL光组成10.2.3 创建光源10.2.4 启动光照10.3 明暗处理10.4 材质10.4.1 材质颜色10.4.2 材质定义10.4.3 材质RGB值和光源RGB值的关系10.4.4 材质改变第十一章OpenGL位图和图像11.1 位图11.1.1 位图和字符11.1.2 当前光栅位置11.1.3 位图显示11.2 图像11.2.1 象素读写11.2.2 象素拷贝11.2.3 图像缩放11.2.4 图像例程第十二章OpenGL纹理12.1 基本步骤12.2 纹理定义12.3 纹理控制12.3.1 滤波12.3.2 重复与约简12.4 映射方式12.5 纹理坐标12.5.1 坐标定义12.5.2 坐标自动产生第十三章OpenGL复杂物体建模13.1 图元扩展13.1.1 点和线13.1.2 多边形13.2 法向计算13.2.1 法向基本计算方法13.2.2 法向定义13.3 曲线生成13.3.1 曲线绘制举例13.3.2 曲线定义和启动13.3.3 曲线坐标计算13.3.4 定义均匀间隔曲线坐标值13.4 曲面构造13.4.1 曲面定义和坐标计算13.4.2 定义均匀间隔的曲面坐标值13.4.3 纹理曲面13.4.4 NURBS曲面第十四章OpenGL特殊光处理14.1 光照模型14.1.1 全局环境光14.1.2 近视点与无穷远视点14.1.3 双面光照14.2 光源位置与衰减14.3 聚光与多光源14.3.1 聚光14.3.2 多光源与例程14.4 光源位置与方向的控制14.5 辐射光第十五章OpenGL效果处理15.1 融合15.1.1 Alpha值与融合15.1.2 融合因子15.1.3 融合实例15.2 反走样15.2.1 行为控制函数15.2.2 点和线的反走样15.2.3 多边形的反走样15.3 雾15.3.1 雾的概论和例程15.3.2 雾化步骤第十六章OpenGL显示列表16.1 显示列表概论16.1.1 显示列表的优势16.1.2 显示列表的适用场合16.2 创建和执行显示列表16.2.1 创建显示列表16.2.2 执行显示列表16.3 管理显示列表16.4 多级显示列表第十七章OpenGL帧缓存和动画17.1 帧缓存17.1.1 帧缓存组成17.1.2 缓存清除17.2 动画【下页】【打印】【关闭】[ 字号:大·中·小]OpenGL基础图形编程- OpenGL与3D图形世界出处:中国游戏开发者[ 2001-09-20 ]作者:目录1.1 OpenGL使人们进入三维图形世界1.2 OpenGL提供直观的三维图形开发环境1.3 OpenGL成为目前三维图形开发标准1.1、OpenGL使人们进入三维图形世界我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体。
我们又生活在一个充满信息的世界中,能否尽快地理解并运用这些信息将直接影响事业的成败,所以我们需要用一种最直接的形式来表示这些信息。
最近几年计算机图形学的发展使得三维表现技术得以形成,这些三维表现技术使我们能够再现三维世界中的物体,能够用三维形体来表示复杂的信息,这种技术就是可视化(Visualization)技术。
可视化技术使人能够在三维图形世界中直接对具有形体的信息进行操作,和计算机直接交流。
这种技术已经把人和机器的力量以一种直觉而自然的方式加以统一,这种革命性的变化无疑将极大地提高人们的工作效率。
可视化技术赋予人们一种仿真的、三维的并且具有实时交互的能力,这样人们可以在三维图形世界中用以前不可想象的手段来获取信息或发挥自己创造性的思维。
机械工程师可以从二维平面图中得以解放直接进入三维世界,从而很快得到自己设计的三维机械零件模型。
医生可以从病人的三维扫描图象分析病人的病灶。
军事指挥员可以面对用三维图形技术生成的战场地形,指挥具有真实感的三维飞机、军舰、坦克向目标开进并分析战斗方案的效果。
更令人惊奇的是目前正在发展的虚拟现实技术,它能使人们进入一个三维的、多媒体的虚拟世界,人们可以游历远古时代的城堡,也可以遨游浩翰的太空。
所有这些都依赖于计算机图形学、计算机可视化技术的发展。
人们对计算机可视化技术的研究已经历了一个很长的历程,而且形成了许多可视化工具,其中SGI公司推出的GL三维图形库表现突出,易于使用而且功能强大。
利用GL开发出来的三维应用软件颇受许多专业技术人员的喜爱,这些三维应用软件已涉及建筑、产品设计、医学、地球科学、流体力学等领域。
随着计算机技术的继续发展,GL已经进一步发展成为OpenGL,OpenGL已被认为是高性能图形和交互式视景处理的标准,目前包括ATT公司UNIX软件实验室、IBM公司、DEC公司、SUN公司、HP公司、Microsoft公司和SGI公司在内的几家在计算机市场占领导地位的大公司都采用了OpenGL 图形标准。
值得一提的是,由于Microsoft公司在Windows NT中提供OpenGL图形标准,OpenGL 将在微机中广泛应用,尤其是OpenGL三维图形加速卡和微机图形工作站的推出,人们可以在微机上实现三维图形应用,如CAD设计、仿真模拟、三维游戏等,从而更有机会、更方便地使用OpenGL及其应用软件来建立自己的三维图形世界。
1.2、OpenGL提供直观的三维图形开发环境OpenGL实际上是一种图形与硬件的接口。
它包括了120个图形函数,开发者可以用这些函数来建立三维模型和进行三维实时交互。
与其他图形程序设计接口不同,OpenGL提供了十分清晰明了的图形函数,因此初学的程序设计员也能利用OpenGL的图形处理能力和1670万种色彩的调色板很快地设计出三维图形以及三维交互软件。
OpenGL强有力的图形函数不要求开发者把三维物体模型的数据写成固定的数据格式,这样开发者不但可以直接使用自己的数据,而且可以利用其他不同格式的数据源。
这种灵活性极大地节省了开发者的时间,提高了软件开发效益。
长期以来,从事三维图形开发的技术人员都不得不在自己的程序中编写矩阵变换、外部设备访问等函数,这样为调制这些与自己的软件开发目标关系并不十分密切的函数费脑筋,而OpenGL正是提供一种直观的编程环境,它提供的一系列函数大大地简化了三维图形程序。
例如:* OpenGL提供一系列的三维图形单元供开发者调用。
* OpenGL提供一系列的图形变换函数。
* OpenGL提供一系列的外部设备访问函数,使开发者可以方便地访问鼠标、键盘、空间球、数据手套等这种直观的三维图形开发环境体现了OpenGL的技术优势,这也是许多三维图形开发者热衷于OpenGL的缘由所在。
1.3、OpenGL成为目前三维图形开发标准OpenGL成为目前三维图形开发标准在计算机发展初期,人们就开始从事计算机图形的开发。
直到计算机硬软件和计算机图形学高度发达的九十年代,人们发现复杂的数据以视觉的形式表现时是最易理解的,因而三维图形得以迅猛发展,于是各种三维图形工具软件包相继推出,如PHIGS、PEX、RenderMan等。
这些三维图形工具软件包有些侧重于使用方便,有些侧重于渲染效果或与应用软件的连接,但没有一种三维工具软件包在交互式三维图形建模能力、外部设备管理以及编程方便程度上能够OpenGL相比拟。
OpenGL经过对GL的进一步发展,实现二维和三维的高级图形技术,在性能上表现得异常优越,它包括建模、变换、光线处理、色彩处理、动画以及更先进的能力,如纹理影射、物体运动模糊等。
OpenGL的这些能力为实现逼真的三维渲染效果、建立交互的三维景观提供了优秀的软件工具。
OpenGL在硬件、窗口、操作系统方面是相互独立的。
许多计算机公司已经把OpenGL集成到各种窗口和操作系统中,其中操作系统包括UNIX、Windows NT、DOS等,窗口系统有X窗口、Windows等。
为了实现一个完整功能的图形处理系统,设计一个与OpenGL相关的系统结构为:其最底层是图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,第五层为应用软件。
OpenGL是网络透明的,在客户—服务器(Client-Server)体系结构中,OpenGL允许本地和远程绘图。
所以在网络系统中,OpenGL在X窗口、Windows或其它窗口系统下都可以以一个独立的图形窗口出现。
OpenGL作为一个性能优越的图形应用程序设计界面(API)而适合于广泛的计算环境,从个人计算机到工作站和超级计算机,OpenGL都能实现高性能的三维图形功能。
由于许多在计算机界具有领导地位的计算机公司纷纷采用OpenGL作为三维图形应用程序设计界面,OpenGL应用程序具有广泛的移植性。
因此,OpenGL已成为目前的三维图形开发标准,是从事三维图形开发工作的技术人员所必须掌握的开发工具。
【上页】【下页】【打印】【关闭】页首·目录·报错·后退[ 字号:大·中·小]OpenGL基础图形编程- OpenGL概念建立出处:中国游戏开发者[ 2001-09-21 ]作者:目录2.1 OpenGL基本理解2.2 OpenGL工作流程2.3 OpenGL图形操作步骤2.1、OpenGL基本理解OpenGL是一个与硬件图形发生器的软件接口,它包括了100多个图形操作函数,开发者可以利用这些函数来构造景物模型、进行三维图形交互软件的开发。