opengl编程技术

opengl编程技术

ID:21645942

大小:1.56 MB

页数:21页

时间:2018-10-23

opengl编程技术_第1页
opengl编程技术_第2页
opengl编程技术_第3页
opengl编程技术_第4页
opengl编程技术_第5页
资源描述:

《opengl编程技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机图形学武汉大学电子信息学院王泉德qdwang@sohu.com附:Opengl编程技术OpenGL是目前用于开发可移植、可交互的2D和3D图形应用程序的首选环境,也是目前最广泛采用的计算机图形标准。OpenGL所具有的功能基本上涵盖了计算机图形学所要包括的各个方面的内容。一、Opengl简介IFIPS(1973)组织了两个委员会建立图形API的标准•图形核心系统(GraphicalKernelSystem,GKS):二维,同时包含很好的工作站模型•Core:同时应用于二维和三维•GKS成为ISO标准,稍后成为ANSI标准(1980s)•

2、GKS很难推广到三维(GKS-3D):远远落后于硬件的发展IFIPS:InternationalFederationofInformationProcessingSocieties1、Opengl的发展历史SiliconGraphics(SGI)通过硬件实现流水线体系,改良了图形工作站(1982)应用程序通过一个称为GL的库与系统通讯借助于GL,可以非常简单地设计出三维交互图形应用程序2、SGI和GLGL的成功导致了OpenGL的出现(1992),一个与平台无关的API:•易于使用•与硬件非常贴近,从而可以充分发挥其功能•着重在于渲染(ren

3、dering)•没有提供窗口和输入接口,从而避免依赖于具体的窗口系统3、OpenGL由ArchitecturalReviewBoard(ARB)掌握,成员包括SGI,Microsoft,Nvidia,HP,3DLabs,IBM,……•相对稳定(目前版本为1.5(2003.7))•发展反映了新的硬件能力•3D纹理映射和纹理对象•顶点编程通过扩展可以指定具体平台相应的功能4、OpenGL的发展OpenGL核心库•Windows:OpenGL32•大多数Unix/Linux系统:GL库OpenGL实用库(UtilityLibrary,GLU)?•利

4、用OpenGL核心库提供一些功能,从而避免重复编写代码与窗口系统的连接•XWindows系统:GLX•Windows:WGL•Macintosh:AGL5、OpenGL库OpenGL实用工具库(OpenGLUtilityToolkitLibrary,GLUT)•提供所有窗口系统的共同功能•打开窗口•从鼠标和键盘获取输入•弹出菜单•事件驱动代码可以在平台间移植,但是GLUT缺乏在特定平台上优秀工具包所具有的功能•滚动条6、OpenGL软件的组织7、OpenGL的体系结构基本几何形状•点•线段•多边形属性变换•视图•建模控制输入(GLUT)8、O

5、penGL函数OpenGL是一个状态机(statemachine)OpenGL函数具有两种类型?•生成基本形状•如果形状可见,可以得到输出•顶点如何被处理,基本形状的外观由状态控制•改变状态•变换函数•属性函数9、OpenGL的状态OpenGL不是面向对象的,因此逻辑上的一个函数却对应着多个OpenGL函数:glVertex3fglVertex2iglVertex3dv内在存贮模式是相同的在C++中很容易创建重载函数,但效率却成为主要问题10、OpenGL在面向对象方面的不足11、OpenGL函数名称的格式绝大多数常数采用#define在头文

6、件gl.h,glu.h和glut.h中定义•注意#include会自动包含其它两个头文件•例如:•glBegin(GL_POLYGON);•glClear(GL_COLOR_BUFFER_BIT);在头文件中也定义了OpenGL数据类型:GLfloat,GLdouble,…12、OpenGL中的defineOpenGL核心库与实用库:Windows98,NT3.5后系统自带C/C++语言编程库:VC6GLUT:http://www.opengl.org/resources/libraries/glut/glutdlls37be

7、ta.zip13、如何获取OpenGL14、一个简单OpenGL程序初始化设置:在窗口创建时进行Opengl属性初始化:窗口创建完成,初始化后进行调整视区:在窗口WM_SIZE事件中处理绘制图形:在窗口消息循环中进行创建一个win32consoleapplication类型的workspace文件创建一个C/C++文件,包含相关程序的代码,并把这个文件插入到workspace文件中进入菜单Project?Settings…,选择Link标签,在bject/librarymodules文本框中加上opengl32.lib,glu32.lib,g

8、lut32.lib,注意用空格分开15、VC6下OpenGL程序的编译学习资源教程:http://nehe.gamedev.net/(国内有翻译版)GPU编程和CG

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

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

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