版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、OpenGL ES 2.0 OpenGL ES 2.0 是可编程渲染管线(并行) Vertex shader(顶点渲染) Pixel shader(像素渲染)OpenGL ES 2.0 渲染管线2.0渲染管线 顶点着色器替换变换和光照 片元着色器替换纹理环境和颜色求和、雾、Alpha测试Opengl ES 2.0 变化2.0 中没有 matrix stack,程序开发者必须自行计算投影矩阵以及各物件的 transform matrix,再传到 shader 里做计算,虽然 GPU 端的程序有矩阵运算能力,但在 CPU 端就需要自己实现矩阵运算了取消了 glBegin()/glEnd 这种 im
2、mediate 模式的函数,vertex 数据必须用 buffer object 或者 vertex array 来处理vertex 的所有属性(包含自身的位置、颜色、normal、纹理坐标)都变成以抽象的 vertex attrib 来处理,需要自行定义并在 vertex shader 里计算lighting , material 也都以抽象的形式,以 uniform 变量形式传进 shader 并计算顶点着色器顶点着色器是一个可编程的处理单元,功能为执行顶点的变换、光照、材质的应用与计算等顶点的相关操做输入输出变量 顶点着色器: 输入主要为待处理顶点相应的attribute(属性)变量、u
3、niform(全局)变量、采样器以及临时变量。 输出主要为经过顶点着色器后生成的varying(易变)变量及一些内建输出变量变量介绍 Attribute变量指的是3D物体中每个顶点各自不同的信息所属的变量,一般顶点的位置、颜色、法向量等每个顶点各自不同的信息都是以attribute变量的方式传入顶点着色器的。 Uniform变量指的是对于同一组顶点组成的单个3D物体中所有顶点都相同的量,一般为场景中当前的光源位置、当前的摄像机位置、投影系列矩阵等。变量介绍 Varying变量(易变变量)是从顶点着色器计算产生并传递到片元着色器的数据变量。顶点着色器可以使用易变变量来传递需要插值到片元的颜色、法
4、向量、纹理坐标等任意值。 内建输出变量gl_Position、gl_FrontFacing和gl_PointSize等。 gl_Position是经过变换矩阵变换、投影后的顶点的最终位置。 gl_FrontFacing指的是片元所在面的朝向。 gl_PointSize指的是点的大小。变量介绍 易变变量在顶点着色器赋值后并不是直接将赋的值送入到后续的片元着色器中,而是在光栅化阶段由管线根据片元所属图元各个顶点对应的顶点着色器对此易变变量的赋值情况及片元与各项点的位置关系差值产生。变量介绍片元着色器片元着色器 片元着色器是用于处理片元值及相关数据的可编程单元,其可以执行纹理的采样、颜色的汇总、计算
5、雾颜色等操作,每片元执行一次。片元着色器主要功能为通过重复执行(每片元一次),将3D物体中的图元光栅化后产生的每个片元的颜色等属性计算出来送入后继阶段,如剪裁测试、深度测试及模板测试等。片元着色器 从渲染管线的图中可以看出,可编程片元着色器替代了纹理、颜色求和、雾以及Alpha测试等阶段。与顶点着色器类似,被其替代的功能系统将不再提供,需要完全由开发人员用着色器语言编程完成。片元着色器 Varying0n指的是从顶点着色器传递到片元着色器的易变数据变量。由系统在顶点着色器后的光栅化阶段自动差值产生。其个数是不一定的,取决于具体的需求。 g_FragColor 指的是计算后此片元的颜色。一般在片
6、元着色器的最后都需要对gl_FragColor进行赋值。片元着色器 经过光栅化、顶点着色器与片元着色器的介绍,可以看出顶点着色器每顶点一执行,而片元着色器每片元一执行,片元着色器的执行次数明显大于顶点着色器的执行次数。因此在开发中,应尽量减少片元着色器的运算量,将一些复杂运算尽量放在顶点着色器中执行。着色语言 OpenGL ES 着色语言是一种高级的过程语言 对顶点着色器、片元着色器使用的是同样的语言,不做区分。 基于C/C+的语法及流程控制 完美支持向量与矩阵的各种操作 通过类型限定符来管理输入与输出 拥有大量的内置函数来提供丰富的功能数据类型 数据类型概述 标量 布尔型 bool 整形 i
7、nt 浮点型 float 向量 ver24,每个分量可以表示颜色或位置等 矩阵 mat24通过数组下表索引数据类型 采样器 sampler2D、smapler3D 结构体数据类型 数组 vec3 position20; 空类型 void数据类型使用 索引数据类型使用 混合选择限定符 attribute 一般用于每个顶点都各不相同的量,如顶点的位置、颜色等 uniform一般用于对一组顶点组成的单个3D物体中所有顶点都相同的量,如当前的光源位置 varying用于从顶点着色器传递到片元着色器的量 const用于声明常量片元着色器中浮点变量精度的指定特殊的内建变量 着色器代码的开发中会用到很多变量
8、,其中大部分可能是由开发人员根据需要自定义的,但着色器中也提供了一些用来满足特定需要的内建变量。这些内建变量不需要声明即可使用,一般用来实现渲染管线固定功能部分与自定义顶点活片元着色器之间的信息交互。 内建变量根据信息传递的方向可以分为两类,输入与输出变量。输入变量负责将渲染管线中固定功能产生的信息传递进着色器,输出变量负责将着色器产生的信息传递给渲染管线中固定功能部分。顶点着色器中的内建变量顶点着色器中的内建变量主要是输出变量 gl_Position 顶点着色器从应用程序中获得原始的顶点位置数据,这些原始的顶点数据在顶点着色器中经过平移、旋转、缩放等数学变换后,生成新的顶点位置。新的顶点位置
9、通过在顶点着色器中写入gl_Position传递到渲染管线的后继阶段继续处理。 gl_PointSize 顶点着色器中可以计算一个点的大小(单位为像素),并将其赋值给gl_PointSize(标量float)以传递给渲染管线。默认值为1。片元着色器中的内建变量 片元找色器中的内建变量为: 输入变量 输出变量片元着色器中的内建变量内建输入变量 gl_FragCoord 内建变量gl_FlagCoord(Vec4类型)中含有当前片元相对于窗口位置的坐标值x、y、z与1/w。X与y分别为片元相对于窗口的二维坐标。Z为该片元的深度值。 gl_FrontFacing 布尔型内建变量。判断正在处理的片元是
10、否属于光栅化阶段生成此片元的对应图元的正面。片元着色器中的内建变量 内建输出变量 Gl_FragColor Gl_FragColor(vec4类型)内建变量用来由片元着色器写入计算完成的片元颜色值,此颜色值将送入渲染管线的后续几段进行处理 Gl_FragData Gl_FragData内建变量本身是一个vec4类型的数组,写入时要给出下标,如gl_FragData0着色语言的内置函数 角度转换与三角函数 指数函数 常用函数 几何函数 矩阵函数 向量关系函数 纹理采样函数 微分函数投影及各种变换 摄像机的设置 两种投影方式 正交投影 透视投影 各种变换 平移 缩放 旋转 绘制方式 点、线、面 顶点法与索引发 卷绕和背面剪裁光照 基本光照模型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026校招:公元塑业集团面试题及答案
- 2026校招:甘肃科技投资集团笔试题及答案
- 酒店外带食品免责协议书模板
- 2026校招:东方华龙工贸集团笔试题及答案
- 2026校招:道恩集团试题及答案
- 2026年广东省揭阳市单招职业倾向性测试题库带答案详解(巩固)
- 2026年广西农业职业技术大学单招职业适应性考试题库含答案详解(培优)
- 2026年广东松山职业技术学院单招职业技能考试题库含答案详解(精练)
- 2026年广东茂名幼儿师范专科学校单招职业技能测试题库含答案详解(模拟题)
- 2025-2026学年文明之星幼儿教案
- 烹调技术(第三版)中职PPT完整全套教学课件
- 2021西安美术学院附中招生语文试卷
- 旅客运输心理学PPT完整全套教学课件
- 清华大学出版社机械制图习题集参考答案(课堂PPT)
- 《岁月如歌》读后心得800字5篇
- 地质环境与地质灾害防治绪论课件
- GB/T 30256-2013节能量测量和验证技术要求泵类液体输送系统
- GB/T 19634-2021体外诊断检验系统自测用血糖监测系统通用技术条件
- GB/T 19292.1-2003金属和合金的腐蚀大气腐蚀性分类
- 儿童炎症性肠病(IBD)
- 《空气动力学与飞行原理》空气动力学-课件
评论
0/150
提交评论