先来看看一张图

shader都是在运行时编译和执行的,每个shader都有一个main函数作为它的入口。

vertex shader的功能有两个:一个是计算顶点坐标变换,另一个就是为片元shader计算逐顶点信息。

fragment shader在每个像素片上会执行,如上图的4和5,它的功能是计算片元即fragment的颜色值,一般来说,这类shader会计算颜色插值,纹理坐标计算,纹理提取,法线插值,光照,雾效等等。上图里的6是光栅化处理后的图像,framebuffer即帧缓存里的一个pixel是由一个或者任意多个fragment的信息组合而成,至于如何组合,就可以用程序来决定了,每个fragment都是可以用程序控制的对象。

现代的多核GPU针对大数据量的多边形转换计算以及浮点型运算进行了优化,能够并行处理大量数据。处理过程如下所示:

梳理 Opengl ES 3.0 (五)shader运行原理的更多相关文章

  1. 梳理 Opengl ES 3.0 (一)宏观着眼

    Opengl ES 可以理解为是在嵌入式设备上工作的一层用于处理图形显示的软件,是Opengl 的缩水版本. 下图是它的工作流程示意图: 注意图中手机左边的EGL Layer Opengl ES是跨平 ...

  2. 梳理 Opengl ES 3.0 (二)剖析一个GLSL程序

    OpenGL ES shading language 3.0 也被称作 GLSL,是个 C风格的编程语言. Opengl ES 3.0内部有两种可编程处理单元,即Vertex processor和Fr ...

  3. 梳理 Opengl ES 3.0 (三)顶点坐标变换

    先来个宏观上的理解: 其实这块逻辑是个标准流程,而且其他地方介绍的也很多了,这里简单提下. 坐标转换,其实是不同坐标系之间的变换,一个渲染顶点,要想让它呈现在屏幕上的某个位置,是需要让这个顶点经过一个 ...

  4. OpenGL ES 3.0之Shader and program(七)

    着色器对象和程序对象是使用着色器渲染的2种基本的对象类型.一个着色器对象可以当做是一个C编译器,而程序对象作为连接器.一个编译器生成目标代码(如.OBJ,.o文件),对象文件完成创建后,C连接器将该对 ...

  5. 《OpenGL® ES™ 3.0 Programming Guide》读书笔记1 ----总览

    OpenGL ES 3.0 Graphics Pipeline OpenGL ES 3.0 Vertex Shader Transform feedback: Additionally, OpenGL ...

  6. OpenGL ES 2.0 Shader 调试新思路(一): 改变提问方式

    OpenGL ES 2.0 Shader 调试新思路(一): 改变提问方式 --是什么(答案是具体值) VS 是不是(答案是布尔值) 目录 背景介绍 问题描述 Codea 是 iPad 上的一款很方便 ...

  7. OpenGL ES 2.0 Shader 调试新思路(二): 做一个可用的原型

    OpenGL ES 2.0 Shader 调试新思路(二): 做一个可用的原型 目录 背景介绍 请参考前文OpenGL ES 2.0 Shader 调试新思路(一): 改变提问方式 优化 ledCha ...

  8. OpenGL ES 3.0之Shading Language(八)

    每个OpenGL ES 3.0程序要求一个顶点着色器和一个片段着色器去渲染一个图形.着色器概念是API 的中心,本篇将介绍着色器语言部分包含下面几项 1.变量和变量类型 2.矢量和矩阵创建及选择 3. ...

  9. 利用JNI技术在Android中调用C++形式的OpenGL ES 2.0函数

    1.                 打开Eclipse,File-->New-->Project…-->Android-->AndroidApplication Projec ...

随机推荐

  1. 【办公】Microsoft Office 2016 专业增强版下载及永久激活-亲测分享

    Win7 x64,安装 Office 2016. 1. 下载 Office 2016,用迅雷网上下载飞快.(这里分享我的下载链接,2.39G用迅雷分分钟就下好了) 2. 按 此博客 ,安装激活工具. ...

  2. sql中 decode() 的用法

    sql中 decode() 的用法 SELECT ID,DECODE(inParam,'Param','value1' ,'value2') name FROM yytj2018 如果 inParam ...

  3. 如何在Unity中显示FPS

    using UnityEngine; using System.Collections; public class example : MonoBehaviour { public float upd ...

  4. Spring知识点总结(四)之SpringAOP基础

        1. Spring aop中的基本概念        • 连接点(Joinpoint):在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候.在Spring AOP中,一个连接 ...

  5. dual表详解

    dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录.我们可以用它来做很多事情,如下: 1.查看当前用户 SQL> select user from ...

  6. 概括iOS知识点思维导图

  7. iOS之Xcode自动管理证书、打包adhoc和testFlight测试安装

    引言:Xcode8 之后引用Automatic manage signing .对于开发者而言,在证书上栽的坑肯定不少. 准备:1.开发者账号是必须的吧. 2. Xcode设置account  (不给 ...

  8. MySql使用入门

    SQL是Structure Query Language(结构化查询语言)的缩写. SQL主要可以分为三个类别: 1.DDL(Data Definition Languages)语句:数据定义语言,这 ...

  9. 封装一个方法获取url上面的参数

    一.取参   ] : ); ]; ; ]., -); ]) === ]; , , b: 'fdfdfd', c: '9999' })); //a=123546&b=fdfdfd&c=9 ...

  10. #leetcode刷题之路6- Z 字形变换

    将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列.比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:L     C     I ...