OpenGL ES - 嵌入式加速3D图像标准

OpenGL® ES是一个用于嵌入式系统全功能2D和3D图像的免版税、跨平台API---包括控制台、电话、家用电器和车辆。由桌面OpenGL定义明确的子合集组成,其创造了一个软件和图像加速之间灵活而有力的低水平接口。OpenGL ES包括浮点和定点系统配置文件以及本地窗口系统的便携式绑定EGL™规范。OpenGL ES 1.X用于固定功能硬件并提供加速、图像质量和性能。OpenGL ES 2.X实现3D图像的完全可编程。OpenGL SC是用于安全高要求市场。

概览OpenGL ES API配置文件和版本

OpenGL ES 1.X

固定功能硬件: OpenGL ES 1.1是相对于 OpenGL 1.5 定义 的规范,着重强调API的硬件加速,但是对1.0完全实现向后兼容。其加强了功能性、改善图像质量并优化至更高的性能,同时降低内存带宽以节约能源。OpenGL ES 1.1扩展包是添加至OpenGL ES 1.1的一系列可选扩展项,降低可变性并带来图像质量和性能的巨大改进。 了解更多…

OpenGL ES 2.X – 用于可编程硬件

可编程硬件: OpenGL ES 2.0是相对于 OpenGL 2.0定义 的规范,着重强调可以创建着色程序和程序对象能力、用OpenGL ES着色语言编写着色程序顶点和碎片能力的可编程3D图像管线。OpenGL ES 2.0不支持OpenGL ES 1.x的固定功能转换和碎片管线。了解更多…

OpenGL ES 2.0 规范、头文件和可选扩展规范
OpenGL ES 2.0 在线手册页面
OpenGL ES 2.0 快速参考卡

更多OpenGL ES细节:
免版税 2D/3D API,包括桌面OpenGL定义明确的子合集。

OpenGL® ES是一个低水平、轻量级的API,用于使用OpenGL定义明确的子合集的高级嵌入式图像。其在软件应用程序和硬件或者软件图像引擎间提供了一个低水平应用程序界面(API)。

此标准3D图像API用于嵌入式系统,使之更加简便和价格合理地提供各种高级3D图像和游戏,横跨所有主要的移动和嵌入式平台。因为OpenGL ES(OpenGL用于嵌入式系统)是基于OpenGL的,所以不需要新的技术。这确保了与到达和来自OpenGL桌面迁移路径的协同作用---最被广泛采用的跨平台图像API。

开发者优势

  • 行业标准和免版税
    任何人都可以下载OpenGL ES规范并在OpenGL ES基础上执行并运行产品。凭借巨大的行业支持,OpenGL ES是唯一真正开放、厂商中立、多平台的嵌入式图像标准。其标准化更高水平的抽象意味着开发人员可以把更多的精力放在内容方面,而不是少数代码和平台的细节问题。
  • 占用空间小 & 低耗能
    嵌入式空间涵盖范围非常广,从配有64兆内存的400 Mhz的掌上电脑到配有1兆内存的50Mhz移动电话。OpenGL ES是为适应这些区别而设计的,通过最小化数据存储要求、最小化指令/数据通信、适应整体和浮点,以实现最低空间占用。对于使用者而言,这意味着更小的二进制下载,可以减少在设备上的存储空间占用。
  • 从软件到硬件渲染的无缝连接
    尽管OpenGL ES规范定义的是一个特殊图像处理管线,个别的要求可以在专用硬件上履行,在系统CPU上作为一个软件程序运行,或者作为专用硬件和软件程序的联合体运行。这意味着如今的软件开发者可以使用符合标准的软件3D引擎,实现应用程序和工具的无缝连接,将OpenGL ES用于更高耗能设备的硬件加速。
  • 可扩展 & 演变
    新的硬件创新可以通过OpenGL扩展机制的API进入OpenGL ES,同时API的更新十分简便。因为扩展性逐渐被广泛接受,也正在考虑被融入到核心OpenGL ES标准中。此处理使OpenGL ES可以演变为一种可控同时创新的方式。
  • 使用简单
    基于OpenGL,OpenGL ES拥有直观设计与逻辑指令的良好结构。
  • 文件管理有序
    因为OpenGL ES是以OpenGL为基础的,大量的相关示范代码使关于OpenGL ES的相关信息价格低廉同时方便查找。通过OpenGL ES的介绍,开发人员现在为从手机到超级计算机可以编写基本一样的代码。

符合性测试

规范每年要经过检查和修改。要被标注为OpenGL ES合格实施,其必须通过一套的符合性测试。该符合性测试的定义将作为OpenGL ES文件编制的一个独立部分进行维护。

OpenGL ES 的2个轨迹路线图

OpenGL ES路线图是专门为嵌入式行业的各种需求设计的,包括"1.X"和"2.X"规范路线的两个轨迹,并将同时开发。1.X路线图将继续为新一代固定功能3D加速器进行开发,同时2.X路线图将实现新兴可编程3D管线。该双轨迹路线图使OpenGL ES可以满足大量3D的图像要求,用于嵌入式市场的各种设备和平台,从低端的手机到高端的游戏控制器。Khronos致力于提供每个1.X 和2.X轨迹的各个API版本间的向后兼容性,以确保应用程序可以在各个版本间顺利地传输。

Two Tracks for OpenGL ES

OpenGL ES框架

OpenGL ES Momentum
  • 配置文件:
    OpenGL ES规范包括许多配置文件的定义。每个配置文件是一个版本桌面OpenGL规范的子集以及一些其他的OpenGL ES特有扩展。OpenGL ES配置文件是整个OpenGL衍生应用程序界面庞大家族的一部分。同样地,这些配置文件分享了一个相似的处理管线、指令结构还有一样的OpenGL名字空间。必要的是,扩展性是为了扩大已有的桌面OpenGL功能。OpenGL ES专有的扩展性在OpenGL ES配置文件中扮演的角色就像是相对于OpenGL规范的OpenGL ARB扩展性作用。OpenGL ES专有扩展性既是计划未来融入核心配置文件修订版的功能的前驱,也是重要但非主流的功能的形式化。每个配置文件定义都意味着一个独特的头文件和链接/运行时间库,定义配置文件中的指令和符号。为简化维护一个单独的超集,可以用相应的假定预处理指令定义数据头,来控制符号和指令原型的可见性。在运行时间,一个应用程序可以决定哪个配置文件在用OpenGL版本字符串运行。
  • 公用配置文件是用于消费者娱乐和相关的设备,例如手机、掌上电脑、机顶盒、游戏控制器等等。其用于最广泛的市场范围,包括支持带有各种性能的平台。
    • 空间占用最小化,纹理绘图的全功能3D
    • 良好的游戏平台
    • 可用于手机设备
  • 安全高要求配置文件是用于将可靠性和可认证性作为主要约束条件的消费者和行业的应用程序。
    • 绝对最小化3D以确保安全认证
    • 用于航空电子设备和车载显示器
  • 扩展性:
    OpenGL ES执行可能包括添加新的特点到执行中的扩展性。一个OpenGL ES配置文件由两部分组成:一个全部OpenGL管线的子集和一些从一套OpenGL ES专业扩展性中提取至完整OpenGL规范的扩展功能。每个扩展性都会经过修剪,与指令子集匹配并添加到配置文件作为核心增加项或者配置文件扩展文件。核心增加项与配置文件扩展文件的区别在于指令和符号不包括在其名称到扩展后缀中。配置文件都扩展性被进一步分为要求(强制性的)和可选扩展性。要求扩展性必须作为符合执行的一部分进行,而可选扩展性的执行则取决于执行者的判断。
  • 本地平台图像接口层- EGL:
    OpenGL ES还包括一个普通平台接口层的规范,叫做EGL。这层是平台独立的,而且可以有选择性地被包括到厂商的OpenGL ES分布中。平台绑定也有一个关联符合性测试。或者,厂商可以选择定期他们自己的平台专有嵌入层。