1.OpenGL ES 1.x渲染管线(又称为渲染流水线)

  (1).基本处理:

    基本处理主要是设定3D空间中物体的顶点坐标、顶点对应的颜色、顶点的纹理坐标等属性,并且指定绘制方式。

    常见的绘制方式有:点绘制、线段绘制和三角形绘制等。

  (2).顶点缓冲对象

    这部分在应用程序中是可选的。在初始化阶段将顶点数据经过基本处理后送入定点缓冲对象,在绘制每一帧想要的图像时就省去顶点数据IO的麻烦,提高渲染效率。

  (3).变换和光照

    进行顶点变换以及根据程序中设置的光照属性对顶点进行光照计算。顶点变换的任务主要是对个顶点进行平移、旋转或者缩放等操作。光照的计算任务是根据程序送入的光照位置、性质、各通道强度、物体材质等,同时再根据一定的光照数学模型计算各顶点的光 照情况。

  (4).图元装配

    此阶段主要有两个任务:图元组装、图元处理。

    图元组装:顶点数据根据设置的绘制方式被结合成完整的图元。

    图元处理:主要工作为剪裁,用于消除位于半空间之外的部分几何图元。裁剪的主要原因是由于观察位置和角度的不同导致观察者只能看到一部分图像。

  (5).光栅化

    3D图像在屏幕上的投影。同时,由于屏幕又像素组成(离散化),需要将投影结果离散化,分解一个一个成小单元(片元)。片元包含其对应的顶点坐标、颜色、纹理坐标和顶点深度等信息。

  (6).纹理环境和颜色求和

    纹理采样:根据当前需处理片元的纹理坐标及采用的纹理id对相应的纹理图进行纹理采样,获取采样值。

    颜色求和:执行颜色的变化,根据纹理采样及光照计算等结果综合生成需处理片元的颜色。

  (7).雾

    根据程序中设置的雾的相关参数(颜色、浓度、范围等),进行雾的数学模型来计算当前处理的片元受雾影响后的颜色。

  (8).Alpha测试

    OpenGL ES检测Aplha值并进行过滤。

  (9).剪裁测试

    检测片元在帧缓冲中对应的位置,并过滤。

  (10).深度测试和模板测试

  (11).颜色缓冲混合

  (12).抖动

  (13).帧缓冲

    OpenGL ES绘制物体现在帧缓冲区绘制,然后提交给屏幕。帧缓冲由一套组件构成,包括颜色缓冲(存储片元颜色值:RGBA)、深度缓冲(片元深度值)和模板缓冲(模板值)等。

2.OpenGL ES 2.0渲染管线

  OpengGL ES 2.0中,编程人员可以插入自己的一些特殊操作,方便高效的完成一些更高级的操作任务。

  (1).“顶点着色器”取代了“变换和光照”

  (2).“片元着色器”取代了“纹理环境和颜色求和”、“雾”、“Alpha测试”等阶段、

3.着色语言 Shading Language

这部分总结了一下,构建了一张思维导图

OpenGL ES2.0基础入门的更多相关文章

  1. OpenGL ES2.0入门详解

    引自:http://blog.csdn.net/wangyuchun_799/article/details/7736928  1.决定你要支持的OpenGL ES的版本.目前,OpenGL ES包含 ...

  2. OpenGL ES2.0 入门经典例子

    原文链接地址:http://www.raywenderlich.com/3664/opengl-es-2-0-for-iphone-tutorial 免责申明(必读!):本博客提供的所有教程的翻译原稿 ...

  3. Cocos2d-x中使用OpenGL ES2.0编写shader

    这几天在看子龙山人的关于OpenGL的文章,先依葫芦画瓢,能看到些东西,才能慢慢深入了解,当入门文章不错,但是其中遇到的一些问题,折腾了一些时间,为了方便和我一样的小白们,在这篇文章中进行写补充. O ...

  4. OPENGL ES2.0如何不使用glActiveTexture而显示多个图片

    https://www.oschina.net/question/253717_72107 用opengl es 2.0显示多个图片的话,我只会一种方式,先将图片生成纹理,然后用下面的方式渲染 // ...

  5. ECMAScript 6.0基础入门教程

    ECMAScript 6.0基础入门教程 转:https://blog.csdn.net/hexinyu_1022/article/details/80778727 https://blog.csdn ...

  6. iOS开发——图形编程OC篇&OpenGL ES2.0编程步骤

    OpenGL ES2.0编程步骤 OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机.PDA和游戏主机等嵌入式设备而设 ...

  7. Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤

    原文地址: Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤 - 网络资源是无限的 - 博客频道 - CSDN.NET http://blog.csdn.net/fen ...

  8. Android +NDK+eclipse+opengl ES2.0 开启深度測试

    參考:https://www.opengl.org/discussion_boards/showthread.php/172736-OpenGL-ES-Depth-Buffer-Problem 环境: ...

  9. OpenGL ES2.0 基本编程

    1. EGL OpenGL ES命令须要一个rendering context和一个drawing surface. Rendering Context: 保存当前的OpenGL ES状态. Draw ...

随机推荐

  1. 2016.7.16equals的使用(一)

    class V{ private int a; V(int a){ rhis a=a; } public  boolean equals(int a,int b){ if(this.a equals( ...

  2. LA 6476 Outpost Navigation (DFS+剪枝)

    题目链接 Solution DFS+剪枝 对于一个走过点k,如果有必要再走一次,那么一定是走过k后在k点的最大弹药数增加了.否则一定没有必要再走. 记录经过每个点的最大弹药数,对dfs进行剪枝. #i ...

  3. access_token的获取方式

      获取Access Token $appid = ""; $appsecret = ""; $url = "https://api.weixin.q ...

  4. Html5游戏框架createJs的简单用法

    声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢!http://www.it165.net/pro/html/201403/11105.html 楼主记忆力不好,最近刚好用了一下create ...

  5. Python Tutorial 学习(七)--Input and Output

    7. Input and Output Python里面有多种方式展示程序的输出.或是用便于人阅读的方式打印出来,或是存储到文件中以便将来使用.... 本章将对这些方法予以讨论. 两种将其他类型的值转 ...

  6. 【转】python中List的sort方法(或者sorted内建函数)的用法

    原始出处:http://gaopenghigh.iteye.com/blog/1483864 python列表排序 简单记一下python中List的sort方法(或者sorted内建函数)的用法. ...

  7. IOS“多继承”

    转自念茜的博客: 当单继承不够用,很难为问题域建模时,我们通常都会直接想到多继承.多继承是从多余一个直接基类派生类的能力,可以更加直接地为应用程序建模.但是Objective-C不支持多继承,由于消息 ...

  8. jquery cleditor 光标经常点不进去问题解决方法 bootstrap 富文本框 控件

    cleditor 光标点不进去,原因是内嵌的html代码段 body没有赋值默认高度. 解决方法1.赋值options.bodyStyle  设置min-height值.缺点:不能跟随设备更新最低高度 ...

  9. Java中遍历Map的几种方法

      转自: http://blog.csdn.net/wzb56/article/details/7864911 方法分为两类: 一类是基于map的Entry:map.entrySet(); 一类是基 ...

  10. 151111 sqlite3数据库学习

    最近在学习数据库,想起去年做的项目里用到了sqlite3.那时候,没有任何的数据库经验,误打误撞,找到了sqlite3,然后参考网络上零碎的信息,把它嵌入到工程里,并且成功了.可惜,那时候没有好好保存 ...