- 9
- 0
- 约3.07千字
- 约 3页
- 2018-05-30 发布于广东
- 举报
下载
第1章 OpenGL简介
O p e n G L是图形硬件的一个软件接口。它的主要作用是将二维或三维的对象绘入一个帧缓冲
区中。对象被描述为一系列的顶点(用来定义几何对象)或像素(用来定义图像)。O p e n G L对
数据进行几个步骤的处理从而将其转换成像素,这些像素将在帧缓冲区中形成最终需要的图形。
本章将全面地介绍O p e n G L 的工作原理,包括以下两个主要部分:
• O p e n G L基础 主要解释基本的O p e n G L概念,例如什么是几何图元以及 O p e n G L如何实行
客户端-服务器端的执行模式。
• 基本O p e n G L操作 通过一个高层的模块图来说明 O p e n G L在帧缓冲区中处理数据并生成相
应图像的过程。
1.1 OpenGL基础
本节主要解释一些O p e n G L 固有的命令。
1.1.1 OpenGL图元及命令
O p e n G L通过几个可选模式来绘制“图元”—点、线段或多边形。你可以对各种模式独立
进行控制;也就是说,一个模式的设置并不影响其他模式的设置(尽管模式间的相互作用将影响
帧缓冲区中的最后结果)。O p e n G L 的程序通过调用函数来指定图元、设置模式并描述其他操作。
在O p e n G L 中,图元由单个或多个顶点组来定义。一个顶点可以是一个点、一条线的端点或
一个多边形的角。数据(由顶点坐标、颜色、法线、纹理坐标和边界标志所组成)与顶点是相对
应的,并且每个顶点和与它相关的数据独立,按照次序,采用同样的方法进行操作。这里仅有一
种情况例外,那就是当一组顶点必须被“剪切”从而使得某一特定的图元刚好在某一指定的区域
内,则顶点数据可能会被修改并产生新的顶点。其剪切的类型由该组顶点所代表的图元决定。
虽然有些命令在生效前可能会有一段不确定的延时,但是O p e n G L 的所有命令都是依照其被接
收的次序来执行的。也就是说,每个图元在被绘制完成之前,其后面的命令将不会有效。同时,这
也意味着使用状态查询命令时它所返回的数据将只包含所有以前发布并已执行完毕的O p e n G L命令。
1.1.2 OpenGL是一种过程语言
O p e n G L从根本上说是一种过程语言而非描述性的语言: O p e n G L提供了直接控制二维和三
维几何体的基本操作。它包含了转换矩阵、光照方程系数、反走样方法和像素校正算子的描述。
然而,O p e n G L并不能直接描述或建模复杂的几何对象。
你所发布的O p e n G L命令指定了怎样产生一个特定的结果(即接下来所应该采取的操作)而
不是指定确切的结果。正是这种过程特性使我们能够了解 O p e n G L是如何工作的—只有明白了
它的操作顺序才能对如何使用它有更深的理解。
2 O p e n G L® 参考手册
下载
1.1.3 OpenGL的执行模式
O p e n G L使用了一种客户端-服务器端的模式来解释命令。应用程序(客户端)所发布的命令
将通过O p e n G L (服务器端)来编译和处理。服务器的操作既可以同客户端在同一台计算机上进
行,又可以分别属于不同的机器。因此,从这个意义上讲, O p e n G L是网络透明的。一个服务器
可以维护数个G L上下文 ,每个上下文被封装在一个 G L状态里。服务器可以同时包含几个 G L上
下文,每个上下文都被封装在一个 G L状态里。每个客户端都可以连接到这些上下文中的任何一
个。所需要的网络协议可以是扩充过的已有协议(如 X Wi n d o w系统)或是一个完全独立的协议。
O p e n G L并没有提供命令用来获取用户的输入。
窗口系统分配给帧缓冲区的资源将最终控制 O p e n G L命令对帧缓冲区的影响。窗口系统将决
定O p e n G L 帧缓冲区的哪些部分可在给定的时间内被访问并将这些部分的结构传送给 O p e n G L 。
因此O p e n G L 中不存在配置帧缓冲区及初始化 O p e n G L 的命令。帧缓冲区的配置是在 O p e n G L 外,
由与其相关联的窗口系统来完成的,而 O p e n G L 的初始化则是当窗口系统为 O p e n G L绘图分配一
个窗口时完成的。 (
您可能关注的文档
- 毕业设计-嵌入式开发-仓库温湿度的监测系统 33页 0.4M.pdf
- 毕业设计-嵌入式开发-汉字LED点阵显示 5页.pdf
- 毕业设计-嵌入式开发-电子密 码锁 9页 0.2M.pdf
- 毕业设计-嵌入式开发-基于单片机控制的电子密 码锁 9页 0.1M.pdf
- 毕业设计-嵌入式开发-全遥控数字音量控制的D类功率放大器 32页 0.2M.pdf
- 毕业设计-嵌入式开发-数控直流稳压电源完整论文 13页 0.1M.pdf
- 毕业设计-嵌入式开发-数字抢答器(数字电路)7页 0.1M.pdf
- 毕业设计-嵌入式开发-数字时钟 12页 0.2M.pdf
- 毕业设计-嵌入式开发-同步电机模型的MATLAB仿真 27页 0.2M.pdf
- 毕业设计-嵌入式开发-用单片机控制直流电机 6页 0.1M.pdf
原创力文档

文档评论(0)