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 ...
随机推荐
- 让一个Html元素撑满整个屏幕可以这样玩
style="width:100%; height: 100%; overflow:hidden; position:absolute; top: 0; left: 0; z-index: ...
- css3基础教程十六变形与动画animation
前面我们讲过的变形与动画一般都是通过鼠标的单击.获得焦点,被点击或对元素进行一定改变后以后触发效果的,那么有没有像Flash一样自动播放的动画效果呢?答案当然是肯定的,这就是我们今天要讲到的anima ...
- YII 自动引入juquery进行表单验证
在form表单 里面引入这么一句话 array( 'enableClientValidation'=>true, 'clientOptions'=>array( ...
- android:persistent属性
application PhoneApp既没有被Broadcast唤醒,也没有被其他service调用,那么是android是通过什么方式来启动PhoneApp,所以就发现了属性android:per ...
- Linux on ASUS N550JK4700
实际上,ASUS N550JK对Ubuntu 14.04的兼容性是相当好的,包括无线网卡.蓝牙.键盘背光的调节.触摸板的开关.音量的键盘调节都是安装后无需配置直接可以使用的,这是出乎意料的,因为这些功 ...
- Problem:To Connect with MySQL in Virtual PC Environment
I'm trying to build a 1:n dev environment,with the help of Vsever(just like VMware worked on sever) ...
- linux 下makefile
linux下c编程中makefile是必须会的,我刚开始学,将我对makefile的理解记录下来. 通常我们在windows下编写c程序,有各种ide工具为我们执行makefile工作但在linux下 ...
- shell条件测试
文件状态测试-b filename : 当filename 存在并且是块文件时返回真(返回0)-c filename : 当filename 存在并且是字符文件时返回真-d pathname : 当p ...
- smtp协议
一.smtp命令 1.HELO 向服务器标识用户身份 2.MAIL 初始化邮件传输mail from: <xxx> 3.RCPT 标识单个的邮件接收人:常在MAIL命令后面可有多个rcpt ...
- Unity3D移植Windows Universal App(Windows 8.1 及Windows Phone 8.1)版本遇到的坑
移植的情况以及遇到的问题: 1.选用的版本是最新的Unity5.0. 2.全屏播放视频Handheld.PlayFullScreenMoview的路径必须是全路径,并且前面要加上"ms-ap ...