[OpenGL]变量类型

这篇博客详细介绍了OpenGL ES中的变量类型,包括标量、向量、矩阵及其操作。GLSL作为着色语言,其语法接近C,变量可以构成数组或结构体。变量构造器和类型转换有严格规则,向量和矩阵的分量可通过“.”符号或数组下标访问。运算通常逐分量进行,而向量乘以矩阵等操作遵循线性代数规则。此外,博客还提及了结构体和数组的使用方法。
摘要由CSDN通过智能技术生成

OpenGL ES 的渲染管线包含有一个可编程的顶点阶段和一个可编程的片段阶段。其余的阶段则有固定的功能,应用程序对其行为的控制非常有限。每个可编程阶段中编译单元的集合组成了一个着色器。在OpenGL ES 2.0 中,每个着色器只支持一个编译单元。着色程序则是一整套编译好并链接在一起的着色器的集合。着色器 shader 的编写需要使用着色语言 GL Shader Language(GLSL),GLSL 的语法与 C 语言很类似。

// 顶点着色器 .vsh
attribute vec4 position;
attribute vec4 color;

varying vec4 colorVarying;

void main(void) {
    colorVarying = color;
    gl_Position = position;
}

// 片段着色器 .fsh
varying lowp vec4 colorVarying;

void main(void) {
    gl_FragColor = colorVarying;
}

习惯上,我们一般把顶点着色器命名为 xx.vsh,片段着色器命名为 xx.fsh。当然,你喜欢怎么样就怎么样~

和 C 语言程序对应,用 GLSL 写出的着色器,它同样包括:

  • 变量 position
  • 变量类型 vec4
  • 限定符 attribute
  • main 函数
  • 基本赋值语句 colorVarying = color
  • 内置变量 gl_Position

这一切,都是那么像…所以,在掌握 C 语言的基础上,GLSL 的学习成本是很低的。

变量

变量及变量类型

变量类别 变量类型 描述
void 用于无返回值的函数或空的参数列表
标量 float, int, bool 浮点型,整型,布尔型的标量数据类型
浮点型向量 float, vec2, vec3, vec4 包含1,2,3,4个元素的浮点型向量
整数型向量 int, ivec2, ivec3, ivec4 包含1,2,3,4个元素的整型向量
布尔型向量 bool, bvec2, bvec3, bvec4 包含1,2,3,4个元素的布尔型向量
矩阵matrix mat2, mat3, mat4 尺寸为2x2,3x3,4x4的浮点型矩阵
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值