opengl_es规范基础知识.doc

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
opengl_es规范基础知识

OpenGL ES Common/Common-Lite 规范 OpenGL ES 基本知识 OpenGL ES(以后简写为 “GL”)仅关心如何在帧缓存(framebuffer)中渲染(渲染后的值将保存到帧缓存中)。它不支持其他的外围设备与图形硬件关联,例如鼠标和键盘。编程人员必须通过其他的途径获取用户操作,例如 Khronos Open KODE API。 GL在一定数量的可选模式下绘制原始对象。每个原始对象可以是一个点,线段或者一个三角形。每种模式可以独立的改变。每个设置之间不相互影响(虽然一些模式可能最终影响帧缓存中的最后结果)。模式被设置,原始对象被定义,其他GL操作通过在函数或者程序中调用。 原始对象是一组被定义好的数据结构,包含一个或者多个顶点。一个顶点定义了一个点,或一个边的结束点,或者一个三角形的2条边相交的顶点。数据(包括位置坐标,颜色,规格化,纹理坐标)保存在一个顶点中,每个顶点按照顺序,以相同方式,独立的被处理。唯一例外的是,如果一组顶点必须在一个指定的矩形区域内被裁减,这个操作将导致,一些顶点可能被修改,一些新顶点可能被创建。裁减的类型依赖于这组顶点数据代表的描绘类型。 命令永远按照顺序执行,虽然可能命令的实现会有不确定的延时。比如,一个原始对象在必须在任何子序列影响帧缓存之前绘制。它也意味着查询和像素读取操作返回的状态时,之前的所有的GL命令执行完毕。通常,GL 命令必须在其他子序列在造成任何影响之前完成。 在GL中,数据绑定发生在调用的时候。这意味着命令执行时,使用的数据会被解释。即使命令要求一个指向数据的指针,这些数据当调用的时候即被解释,任何子序列的对数据的改变都不会产生影响(除非后继的操作中使用了同样的指针)。 GL提供对3D,2D图形的基本操作。包括特定的矩阵变换,光照方程系数,抗锯齿,像素更新操作。它不提供复杂几何元素的描述或者建模。另一种对这种解决方案的描述是GL提供一些途径去描述如何渲染复杂的几何对象,而不直接描述此类复杂的对象。 GL命令是按照客户端-服务器模式去解释的。也就是说,程序(客户端)运行命令,这些命令在服务器端解释并且执行。一个服务器可能保持一定数量的GL context对象。每个对象都是对当前GL 状态的封装。一个客户端可能选择连接任何这些context对象中的任何一个。当程序不连接任何一个context时,运行GL 命令会导致未定义的行为。 GL命令的通过窗口系统最大限度的控制帧缓存,窗口系统决定GL在给定的时间内可以访问帧缓存中的哪些点,它还负责与GL交流点的数据结构。因此,没有任何GL命令去定义帧缓存或者初始化 GL。同样,在CRT或者LCD上帧缓存的显示内容(包括某些技术进行的单独帧缓存值变换,例如gamma纠错)是不被定位到GL中。帧缓存构造发生在GL的外部,同窗口系统相关联。GL的初始化发生在窗口系统为GL分配一个窗口时。EGL API定义了一个简便的途径创建GL contexts和窗口,该窗口可用于连接不同平台的窗口系统。 GL被设计成运行可以运行在一系列图形平台上,并提高图形显示的效果和性能。为了适应多样性,某些GL操作使用理想行为代替了实行行为,因为背叛这种设想是允许的,也规定了一个实现必须遵守的规则使其接近理想的行为。在GL中,这个允许的变化指2个完全不同的GL的实现可以出现像素到像素的不一致,即便相同的输入,或者相同帧缓存配置下。 最后,命令的名字,常数和类型都是用GL作前缀(可以为gl,GL_,GL),这样可以减少与其他包出现姓名冲突。在以后的文档中,前缀可能被省略。 数值计算 GL操作中必须进行一些数值运算。 Common profile下,通常使用浮点数计算,浮点数的范围将在后面的“浮点计算”中有精确的定义。Common lite profile下,通常使用定点数计算,顶点数的范围将在后面的“定点运算”中做更精确的定义,但是也它也可以使用浮点数来计算。 浮点计算 我们不规定浮点数是如何表现的,它们的操作是如何执行的。我们简单的要求数字浮点部分包含足够的比特位和足够大的指数位,所有单独浮点操作结果都精确到1/105。浮点数用来表示位置和规格化坐标时,最重要的是至少精确到232。表示颜色或者纹理坐标,最少精确到210。其他浮点数至少精确到232。 x .0=0.x=0 1.x=x.1=x x+0=0+x 00=1 大部分单精度浮点格式需要满足这些要求。 任何浮点数作为GL命令的输入是合法的,如果提供一个浮点数是未定义的,但是必须保证不会导致GL中断或者结束。在IEEE计算中,例如,对GL命令输入一个负零或者一个未规格化数会产生可预知的结果,而提供NaN或者无穷大会产生未定义的结果。如果x的值不

文档评论(0)

jiaoyuguanliji + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档