第1章 GLES简介

OpenGL ES 3.0实现了具有可编程着色功能的图形管线,由两个规范组成:

OpenGL ES 3.0  API规范 和 OpenGL ES着色器语言3.0规范(OpenGL ES SL)。

顶点着色器示例:

顶点着色器取得一个位置及相关的颜色数据作为输入属性,用一个4×4矩阵变换位置,并输出变换后的位置和颜色。

#version 300 es
uniform mat4 u_mvpMatrix;// matrix to convert a_position
                         // from model space to normalized device space

// attributes input to the vertex shader
int vec4 a_position;// position value
int vec4 a_color;// input vertex color

// output of the vertex shader - input to fragment shader
out vec4 v_color;// output vertex color

void main() {
    v_color = a_color;
    gl_Position = u_mvpMatrix * a_position;
}

统一变量u_mvpMatrix,它存储组合的模型视图和投影矩阵。
顶点属性a_position是输入顶点位置属性,a_color是输入顶点颜色属性。
输出变量v_color,用于存储描述每个顶点颜色的顶点着色器属性。
内建变量gl_position是自动声明的,着色器必须将变换后的位置写入这个变量。
片段着色器的顶点有一个单一入口点,作为主函数main():
    读入顶点属性输入a_color,并将其写入顶点输出颜色v_color。
    变换后的顶点位置写入gl_Position输出。

片段着色器示例:

#version 300 es
precision mediump float;
int vec4 v_color; // input vertex color from vertex shader
out vec4 fragColor; // output fragment color
void main() {
    fragColor = v_color;
}

EGL:

EGL是Khronos渲染API(如OpenGL ES)和原生窗口系统之间的接口;在实现OpenGL ES时,没有提供EGL的硬性需求。

任何OpenGL ES应用程序都必须在开始渲染之前使用EGL执行如下任务:

EGL API实现上述功能以及像电源管理、在一个进程中支持多个渲染上下文、在一个进程中跨渲染上下文共享对象(如纹理或者顶点缓冲区)这样的附加功能,并实现获得给定实现支持的EGL或者OpenGL ES扩展功能函数指针的机制。EGL规范最新版本是EGL 15。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

itzyjr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值