OpenGL与OpenGL-ES简介
OpenGL
是由SGI公司开发的一套3D图形软件接口标准,由于具有体系结构简单合理、使用方便、与操作平台无关等优点,OpenGL迅速成为一种3D图形接口的工业标准,并陆续在各种平台上得以实现。作为一个性能优越的图形应用程序设计界面(API)而适合于广泛的计算环境,从个人计算机到工作站和超级计算机,OpenGL都能实现高性能的三维图形功能。由于许多在计算机界具有领导地位的计算机公司纷纷采用OpenGL作为三维图形应用程序设计界面,OpenGL应用程序具有广泛的移植性。因此,OpenGL已成为目前的三维图形开发标准,是从事三维图形开发工作的技术人员所必须掌握的开发工具。
OpenGL-ES
OpenGL|ES的官方组织是:http://www.khronos.org/ 该组织关注于手持和移动平台上的动态媒体编著、播放所需的API,并致力于为这些API建立无限权费用的开放标准。(focused on the creation of open standard, royalty-free APIs to enable the authoring and accelerated playback of dynamic media on a wide variety of platforms and devices.)
在Khronos的网站上,有大量开发者资源,其中最重要的部份就是规范文档和头文件(EGL, GLES 1.x, GLES 2.x),同时还列出了很多的例子和教程。
OpenGL|ES是根据手持及移动平台的特点,对OpenGL 3D图形API标准进行裁剪定制而形成的,因此大多数OpenGL方面的知识都是可以借鉴的,因此保持对OpenGL官方组织的关注是非常有益的,OpenGL ARB网站在 http://www.opengl.org 。Khronos对两个API的关系有非常清楚的定义:
OpenGL与OpenGL-ES的主要区别:
之所以会推出OpenGL-ES版本,主要是应对嵌入式环境和应用的要求。
嵌入式设备一般工作于较恶劣的环境,包括:温度、湿度、振动、冲击、酸碱腐蚀等。例如:中国的酸雨气候就给很多室外电子设备带来了新的难题,中东地区的风沙也使得美军必须采用更先进的非IT技术来保护他们的电子设备。
需要人机界面的嵌入式应用,由于受环境受环境因素的影响,一般不能提供有缘电源,在有限的电能限制下工作,如何以更低的功耗完成人机交互界面,成为OpenGL必须要面对的问题,进而推出了OpenGL-ES标准。应该说在高效完成2D/3D界面的同时,达到了降低功耗的效果。
特别说明,在OpenGL发展到1.3版本时,OpenGL API不再采用纯软件的形势进行运算,开始与硬件图形芯片结合,出现了OpenGL硬加速的实现形式。例如:很多显示芯片厂商开始推出支持OpenGL硬加速的芯片,并与软件公司合作,实现OpenGL硬加速。很多PC机的游戏会有加速软件,如实况足球,但目前这类基于PC加速软件还是通过软件形式进行优化,即优化了3D渲染引擎。
OpenGL硬加速的优点在于,使CPU从繁重的图形运算工作中解脱出来,将运算重点集中于非界面应用,即嵌入式操作系统中优先级较高,但与界面无关的应用。GPU(图形处理器)与CPU(中央处理器)的分工合作,带来的就是高效率,即《国富论》等著作中的分工合作提高效率的基本原理。
当然,事物均具有两面性,OpenGL-ES硬加速也有缺点,即增加了设备成本。这方面主要取决于其应用是否需要强劲的性能,即对人机交互界面的更高性能的追求。
- 大小: 39.7 KB
分享到:
相关推荐
### OpenGL与OpenGLES在开发过程中的异同 #### 一、引言 OpenGL与OpenGLES都是由Khronos Group维护的跨平台图形应用程序接口(API)。它们为开发人员提供了绘制高质量2D和3D图形的能力。OpenGL主要用于桌面操作系统...
OpenGL ES 是一种针对嵌入式设备的图形处理接口,它基于桌面版的 OpenGL 并进行了优化,广泛应用于移动设备如智能手机和平板电脑上。在 Android 平台上,我们可以使用 OpenGL ES 进行3D图形编程,创建丰富的视觉效果...
它通常与OpenGL ES不直接交互,但在构建例如3D地理信息系统或可视化应用时,可能会利用Elasticsearch来检索和组织数据,然后通过OpenGL ES进行呈现。 总的来说,OpenGL ES 3.0编程指南涵盖了移动和嵌入式设备图形...
Qt+openglEs2加载3D模型Qt+openglEs2加载3D模型Qt+openglEs2加载3D模型Qt+openglEs2加载3D模型Qt+openglEs2加载3D模型Qt+openglEs2加载3D模型Qt+openglEs2加载3D模型Qt+openglEs2加载3D模型Qt+openglEs2加载3D模型Qt...
8. **运行与调试**:由于 Android 模拟器可能不支持 OpenGL ES 3.0,你需要在真实设备上进行调试。连接你的设备,运行应用,你应该能看到一个旋转的三角形。 在项目中的 `3_1_triangle` 文件很可能包含了实现这个...
OpenGL ES(OpenGL for Embedded Systems)是OpenGL的一个精简版本,专为嵌入式设备和移动设备设计,如智能手机、平板电脑等。它主要用于处理2D和3D图形渲染,是开发游戏、图形应用和增强现实应用的核心技术。OpenGL...
OpenGL ES 3.0编程指南是面向初学者的优秀教程,旨在帮助读者深入理解并掌握OpenGL ES 3.0这一移动设备和嵌入式系统上的图形处理标准。OpenGL ES(Embedded Systems)是OpenGL的轻量级版本,专为资源有限但需要高...
在"opengles3.0游戏开发(上(1))"中,可能包含了一系列的实例项目,这些项目可能会涵盖上述知识点,如建立基本的游戏框架、创建3D模型、实现基本的交互功能等。每个案例都是一个具体的应用场景,通过实践来巩固...
根据文档中的版权与许可声明部分可知,OpenGL ES 3.0.2 规范受版权保护,并包含 Khronos Group Inc. 的专有材料。该规范或其任何组件未经 Khronos Group 明确书面许可不得复制、再发布、分发、传输、显示、广播或以...
OpenGL ES Extension Header File this header is defined to contain all defined extension interfaces for OpenGL ES 2 0 and all later versions since later versions are backwards compatible with OpenGL ...
在本压缩包“OpenglES3.0完整环境.rar”中,你将找到搭建OpenGL ES 3.0开发环境所需的所有资源,包括仿真模拟器、示例代码和CMake构建工具。 首先,让我们详细了解一下OpenGL ES 3.0的新特性: 1. **增强的顶点...
OpenGL ES(OpenGL for Embedded Systems)是OpenGL的一个子集,专为嵌入式设备如智能手机、平板电脑和游戏机设计,用于处理2D和3D图形渲染。Mali_OpenGL_ES_Emulator是ARM公司针对其Mali GPU系列推出的一款OpenGL ...
OpenGL-Registry, OpenGL,OpenGL ES和 OpenGL ES的API和扩展注册表 基于的opengl注册表基于的OpenGL 。OpenGL和 OpenGL ES API和扩展注册表站点包含OpenGL族API的API和扩展注册表- OpenGL,OpenGL ES和 OpenGL SC ...
- **帧缓存的区别**:OpenGLES命令对window-system-provided framebuffers的影响最终由分配帧缓存资源的窗口系统控制。窗口系统决定了OpenGL ES在任何特定上下文中的行为。 #### 六、OpenGL ES 2.0与OpenGL 2.0的...
本教程主要探讨如何在Android系统上,利用OpenGLES2.0图形库来处理和显示从Camera获取的YUV原始数据。YUV是一种常见的颜色空间,广泛应用于视频编码和解码,因为它对带宽的要求相对较低,特别适合移动设备。 首先,...
在Android平台上,JNI(Java Native Interface)允许开发者使用C++代码来增强应用程序的功能,尤其是在处理图形和计算密集型任务时,如使用OpenGL ES和OpenCV。这个特定的项目旨在通过JNI调用来结合这两个强大的库...
OpenGL ES 3.0 Programming Guide
ES2.x针对可编程管线硬件.OpenGL ES1.0是以OpenGL1.3规范为基础的,OpenGL ES1.1是以OpenGL1.5为基础 的,他们分别又支持common和common lite两种profile.OpenGL ES2.0是参照OpenGL2.0规范定义的”
2. **固定功能向可编程管线的转变**:OpenGL ES 2.0摒弃了传统的固定功能管线,转而使用全可编程的着色器系统。这使得开发者可以定制化图形渲染的每一个步骤,提高了灵活性和效率。 3. **状态机模型**:OpenGL ES ...
在“opengl es rgb转yuv 顶点和片元着色器脚本”中,顶点着色器可能负责将原始的RGB图像数据映射到屏幕坐标系,确保每个像素对应正确的位置。它通常不涉及颜色空间转换,因为它的主要任务是处理几何信息。 片元着色...