OpenGL ES2.0基础入门
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基础入门的更多相关文章
- OpenGL ES2.0入门详解
引自:http://blog.csdn.net/wangyuchun_799/article/details/7736928 1.决定你要支持的OpenGL ES的版本.目前,OpenGL ES包含 ...
- OpenGL ES2.0 入门经典例子
原文链接地址:http://www.raywenderlich.com/3664/opengl-es-2-0-for-iphone-tutorial 免责申明(必读!):本博客提供的所有教程的翻译原稿 ...
- Cocos2d-x中使用OpenGL ES2.0编写shader
这几天在看子龙山人的关于OpenGL的文章,先依葫芦画瓢,能看到些东西,才能慢慢深入了解,当入门文章不错,但是其中遇到的一些问题,折腾了一些时间,为了方便和我一样的小白们,在这篇文章中进行写补充. O ...
- OPENGL ES2.0如何不使用glActiveTexture而显示多个图片
https://www.oschina.net/question/253717_72107 用opengl es 2.0显示多个图片的话,我只会一种方式,先将图片生成纹理,然后用下面的方式渲染 // ...
- ECMAScript 6.0基础入门教程
ECMAScript 6.0基础入门教程 转:https://blog.csdn.net/hexinyu_1022/article/details/80778727 https://blog.csdn ...
- iOS开发——图形编程OC篇&OpenGL ES2.0编程步骤
OpenGL ES2.0编程步骤 OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机.PDA和游戏主机等嵌入式设备而设 ...
- Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤
原文地址: Eclipse中通过Android模拟器调用OpenGL ES2.0函数操作步骤 - 网络资源是无限的 - 博客频道 - CSDN.NET http://blog.csdn.net/fen ...
- Android +NDK+eclipse+opengl ES2.0 开启深度測试
參考:https://www.opengl.org/discussion_boards/showthread.php/172736-OpenGL-ES-Depth-Buffer-Problem 环境: ...
- OpenGL ES2.0 基本编程
1. EGL OpenGL ES命令须要一个rendering context和一个drawing surface. Rendering Context: 保存当前的OpenGL ES状态. Draw ...
随机推荐
- 浅谈KMP算法及其next[]数组
KMP算法是众多优秀的模式串匹配算法中较早诞生的一个,也是相对最为人所知的一个. 算法实现简单,运行效率高,时间复杂度为O(n+m)(n和m分别为目标串和模式串的长度) 当字符串长度和字符集大小的比值 ...
- Fedora 18 安装前指南
Secure Boot 与 Win 8 随着 Win8 的发布,先前关于 Secure Boot 和 UEFI 的诸多猜测也得到了证实,Fedora 18 也将如同当初计划的那样使用 shim + ...
- OC之JSON数据解析
JSON介绍: 作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式 基于JavaScript的一个子集 易读性略差,编码手写难度大,数据量小 JSON格式取代了XML给网络传输带 ...
- 入门5:PHP 语法基础——流程控制
一.if...else 语句 if( ) else{ } 如果 .... 就.... 否则.... if(判断){ 判断成立 则执行该表达式 }else{ 如果上方判断都不成立 则执行该表达式 } i ...
- PHPCMS V9调用时间标签 |日期时间格式化
PHPCMS V9 如何调用时间标签,下面分享常见的调用时间标签 |日期时间格式化 1.日期时间格式化显示: a标准型:{date('Y-m-d H:i:s', $rs['inputtime'])} ...
- 通过Java代码浅谈HTTP协议
最近刚看了http协议,想写点东西加深一下理解,如果哪儿写错了,请指正. 1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(W ...
- Android 即时语音聊天工具 开发
使用融云SDK 1. 功能需求分析 1.1 核心功能需求: * 即时通讯 * 文字聊天 * 语音聊天 1.2 辅助功能需求: * 注册.登录 * 好友添加功能 * 好友关系管理 2. 融云即时通讯平台 ...
- Kendo UI for Angular 2 控件
Kendo UI for Angular 2 控件 伴随着 Angular 2 的正式 release,Kendo UI for Angular 2 的第一批控件已经发布了,当前是 Beta 版本,免 ...
- Web工程软件升级之数据库升级(一)
1. 首先检查oracle数据库版本是否正确 (可以使用方法 lsinventory来实现) 2. 检查oracle连接是否成功 3. 解压升级包,放到特定目录 4. 做升级前数据备份,备份主要业务数 ...
- Prime Path
poj3126:http://poj.org/problem?id=3126 题意:给你两个数n,k,两个数都是四位数的素数.现在让你改变n的一位数,让n变成另外一个素数.然后把这个素数在改变其中的以 ...