历史记录
清空历史记录
    首页 > 电脑软件 > OpenGL ES 2.0库

    OpenGL ES 2.0库

    • 软件大小:
    • 软件版本:
    • 软件类型:国产软件
    • 软件分类:电脑软件
    • 软件语言:简体中文
    • 更新时间:2026-01-27
    • 安全检测:无插件360通过腾讯通过金山通过瑞星通过小红伞通过

    • 软件评分:

    普通下载

    手机扫一扫快捷方便下载
    OpenGL ES 2.0这东西,说白了就是给咱们手机、平板这些小设备用的三维图形引擎,它可是OpenGL的精简版,专门针对那些性能有限的嵌入式设备优化的。我觉得最爽的是它完全免费而且跨平台,不管你是做安卓还是苹果开发,它都能派上大用场,特别是现在手游这么火,没它还真不行。这玩意儿不是个软件,而是一套底层接口,让你能直接指挥GPU干活,渲染出酷炫的3D画面。它支持的设备范围超广,从iPhone 3GS往后、安卓2.2起步的手机,到黑莓、诺基亚甚至三星的老机型都能跑,基本上覆盖了市面上绝大多数智能设备。功能上,它主要靠可编程管线来加速图形渲染,把三维空间里的物体通过投影和光栅化变成屏幕上的二维图像。核心就是Shader,也就是运行在GPU上的小程序,用专门的着色语言写成。Pixel Shader负责算每个像素的颜色和光影效果,比如光照、阴影这些;Vertex Shader则处理顶点坐标变换,把3D坐标转成2D屏幕位置。虽然它不能凭空创造新顶点,但配合各种着色算法比如Phong光照模型和插值技术,能做出相当逼真的视觉效果。整个渲染流程从顶点处理到原语组装,再到裁剪和光栅化,最后由Fragment Shader输出最终像素,这套流水线虽然老派但效率极高。我个人特别喜欢它这种轻量级的设计,既省电又能跑出不错的画质,特别适合移动开发。虽然现在有更高级的API,但OpenGL ES 2.0依然是很多经典游戏和应用的基石,学透了它对理解图形渲染原理帮助巨大。

    OpenGL ES 2.0是OpenGL三维图形API的子集,针对手机、PAD和游戏主机等嵌入式设备设计,而小编带来的OpenGL ES 2.0是其2.0版本,这一版本主要针对可编程管线硬件,参照OpenGL 2.0的规范定义的。OpenGL ES 2.0是一个定义了跨编程语言、跨平台的编程接口的规格,用于三维图像,也就是说小编带来的这个东西其实并不是软件,而是一个功能强大的方便调用的底层图形库。

    OpenGL ES 2.0具有免费,跨平台等特点,功能完善的2D和3D图形应用程序接口API能够针对多种嵌入式系统做出专门设计,包括移动电话、手持设备、家电设备等等如果用户为一些手机、游戏机等嵌入式设备做开发,那么这个OpenGL ES 2.0是必不可少的。

    OpenGL ES 2.0

    OpenGL ES 2.0支持平台与机型

    - 支持iPad, iPhone3GS 和后续版本,以及iPodTouch3代和后续版本。

    - 支持Android平台从Android 2.2版本开始。

    - 支持Android NDK从Android 2.0版本开始。

    - 支持BlackBerryPlayBook黑莓。

    - 支持Pandora潘多拉控制台的3D库。

    - 被WebGL支持:浏览器支持OpenGL

    - 支持少数新款Nokia诺基亚手机,比如N900上的Maemo和N8上的Symbian3塞班3系统。

    - 支持多款三星手机,包括Galaxy S和Wave。

    - 使用开发插件可以支持Palm webOS。

    - 支持Archos 爱可视上网本:70 IT, 101 IT

    OpenGL ES 2.0功能

    大大提高不同消费电子设备的3D图形渲染速度;

    在嵌入式系统上实现了全面可编程的3D图形;

    把三维空间中的对象通过投影、光栅化转换为二维图像,然后呈现到屏幕上。

    1、Shader(就是一段程序Program)

    Shader是一段执行在GPU上的程序(所以Shader也可以叫做Program),此程序使用OpenGL ES SL语言来编写。它是一个描述顶点或像素特性的简单程序。

    - 1.1Pixel Shader

    Pixel Shader(像素着色器)就是众所周知的Fragment Shader,它计算每个像素的颜色和其它属性。它通过应用光照值、凹凸贴图,阴影,镜面高光,半透明等处理来计算像素的颜色并输出。它也可改变像素的深度(z-buffering)或在多个渲染目标被激活的状态下输出多种颜色。一个Pixel Shader不能产生复杂的效果,因为它只在一个像素上进行操作,而不知道场景的几何形状。

    - 1.2 Vertex Shader

    对于发送给GPU的每一个Vertex(顶点),都要执行一次Vertex Shader(顶点着色器)。其功能是把每个顶点在虚拟空间中的三维坐标变换为可以在屏幕上显示的二维坐标,并带有用于z-buffer的深度信息。Vertex Shader可以操作的属性有:位置、颜色、纹理坐标,但是不能创建新的顶点。

    Vertex Shader输入数据如下:

    1)Attributes: 通过顶点数组(vertex arrays)提供的每个顶点数据

    2)Uniforms: Vertex Shader使用的常量数据

    3)Samplers: Vertex Shader使用的一个表示纹理类型的Uniforms,在Vertex Shader中是可选的

    4)Shader program: Vertex Shader程序源码或可执行文件,它描述了将在顶点上执行的操作

    Vertex Shader输出为:varying variables(Vertex Shader的输出变量,作为Fragment Shader的输入。必须与Fragment Shader中的输入Varying一一对应。)

    gl_Position: 是每个点固有的Varying,表示点的空间位置。

    - 1.3 Geometry Shader

    Geometry Shader是一个相对新的Shader类型。它在Driect3D 10和OpenGL 3.2中开始引入,在OpengGL 2.0+中作为扩展使用。它的输入为:点、线和三角形;其输出为点、线带和三角形带。

    2、Shading Language

    Shading Language仅适合于为GPU编程,编程工具为Cg(Nvidia开发),Cg编译器可以输出Direct3X或OpenGL Shader程序。

    3、Shading 算法

    - 3.1 插值技术(可以和任何照明模型组合):

    Flat shading

    Gouraud shading

    Phong shading

    - 3.2 照明模型 (可以和任何插值技术组合):

    Blinn–Phong

    Cook–Torrance (microfacets)

    Lambert

    Minnaert

    Oren–Nayar (Rough opaque diffuse surfaces)

    Phong

    Ward anisotropic

    4、原语汇编(Primitive Assembly)

    在管道(pipeline)中,执行完Vertex Shader之后,就执行原语汇编。一个原语(primitive)就是一个可以使用OpenGL ES画图命令进行绘制的几何对象。

    在原语汇编阶段,被Vertex Shader处理输出的顶点被组合进行一个单独可被绘制的几何原语(如:点、线和三角形)。然后对几何原语执行以下两种操作:

    Clipping(裁剪): 只保留在可视空间范围内的原语

    Culling(选择): 基于面向前或后,进行原语的选择

    在裁剪和选择之后,其下一个阶段为进行Geometry Shader(如果存在)或光栅化处理。

    5、光栅(Rasterization)

    光栅处理的目标:把原语转换为一系列二维fragments,这些二维fragments将被Fragment Shader处理,且这些二维fragments表示可被绘制在屏幕上的像素。

    6、 Fragment Shader

    对每个光栅化产生的fragment执行一次Fragment Shader,其输入内容如下:

    Varying variables:Vertex Shader的输出,且由光栅化单元对每个fragment使用插值方法产生

    Uniforms:Fragment Shader使用的常量数据

    Samplers:一个表示纹理的常量数据

    Shader program:Fragment shader程序源码或可执行文件,它描述了将在fragment上执行的操作。

    相关软件

    网友评论

    共有 0条评论

    captcha 评论需审核后才能显示

    应用推荐

    游戏推荐