OpenGL ES 2.0 Shader相关介绍

 与OpenGL ES1.x渲染管线相比,OpenGL ES 2.0渲染管线中“顶点着色器”取代了OpenGL ES 1.x渲染管线中的“变换和光照”;“片元着色器”取代了OpenGL ES 1.x渲染管线中的“纹理环境和颜色求和”、“雾”以及“Alpha测试”。

这使得开发人员在使用OpenGL ES 2.0API进行开发时,不得不编写着色器代码,来完成一些顶点变换和纹理颜色计算的工作。

这里介绍的与shader相关的部分主要分为三个阶段:

1) 加载shader,其中包括加载shader、编译shader 、连接shader并且产生着色器程序id(文中的1、2、3部分);

2) 获取指向顶点着色器相应数据的Index(文中的第4部分);

3) 根据Index向顶点着色器中传递数据(文中的第5 部分);

1. 着色器与着色语言

着色语言是一种类C语言,但不像C语言一样支持双精度浮点型(double)、字节型(byte)、短整型(short)、长整型(long),并且取消了C中的联合体(union)、枚举类型(enum)、无符号数(unsigned)以及位运算等特性。

着色语言中有许多内建的原生数据类型以及构建数据类型,如:浮点型(float)、布尔型(bool)、整型(int)、矩阵型(matrix)以及向量型(vec2、vec3等)等。总体来说,这些数据类型可以分为标量、向量、矩阵、采样器、结构体以及数组等。

 

shader支持下面数据类型:

你可能感兴趣的:(OpenGL,ES)