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 ...
随机推荐
- Ubuntu14.04 Tomcat 安装过程记录
Ubuntu14.04 Tomcat 安装过程记录 检查java的版本 zhousp@ubuntu:~$ sudo java -version [sudo] password for zhousp: ...
- linux防火墙解封某端口
首先,使用netstat –tunlp查看是否23端口被防火墙封掉了: 再使用iptables修改设置, # iptables -I INPUT -p tcp --dport 23 –jACCEPT ...
- BIOS中断大全
BIOS中断大全 BIOS中断:1.显示服务(Video Service——INT 10H) 00H —设置显示器模式0CH —写图形象素01H —设置光标形状0DH —读图形象素02H —设置光标 ...
- Android SurfaceView使用
与View区别 更新View任务太重会导致UI线程阻塞 而SurfaceView不会,可以在UI线程之外更新UI 工程代码 SurfaceViewDemo.zip ------------------ ...
- ASP.NET Web API下Controller激活
一.HttpController激活流程 对于组成ASP.NET Web API核心框架的消息处理管道来说,处于末端的HttpMessageHandler是一个HttpRoutingDispatche ...
- how to use a xml_id in field domain
"[('parent_id','child_of', %(other_module.xml_id)d)]"
- iOS开发-网络框架-b
网络框架(以下称NJAFNetworking)是基于AFNetworking框架的简单封装,基本功能包括POST请求,GET请求,上传文件,下载文件,网络状态,缓存等. 为什么要使用NJAFNetwo ...
- 转:gpio_direction_output 与 gpio_set_value
gpio_set_value(port_num,0/1) 一般只是在这个GPIO口的寄存器上写上某个值,至于这个端口是否设置为输出,它就管不了! 而gpio_direction_output (por ...
- 加载dll、lib库
2.是关于如何加载dll或lib库的.可以看这篇bog Qt调用dll中的功能函数点击打开链接 ************************************************** ...
- 深入浅出 Java Concurrency (3): 原子操作 part 2
转:http://www.blogjava.net/xylz/archive/2010/07/02/325079.html 在这一部分开始讨论数组原子操作和一些其他的原子操作. AtomicInteg ...