GLSL 数据类型

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GLSL 数据类型相关的知识,希望对你有一定的参考价值。

1.

  • 默认基础数据类型:int、float、double、uint和bool。
  • 两种容器类型:向量(Vector)和矩阵(Matrix)

2. 向量

GLSL中的向量是一个可以包含有2、3或者4个分量的容器,分量的类型可以是前面默认基础类型的任意一个。它们可以是下面的形式(n代表分量的数量):

类型含义
vecn包含n个float分量的默认向量
bvecn包含n个bool分量的向量
ivecn包含n个int分量的向量
uvecn包含n个unsigned int分量的向量
dvecn包含n个double分量的向量

大多数时候我们使用vecn,因为float足够满足大多数要求了。

一个向量的分量可以通过vec.x这种方式获取,这里x是指这个向量的第一个分量。你可以分别使用.x、.y、.z和.w来获取它们的第1、2、3、4个分量。GLSL也允许你对颜色使用rgba,或是对纹理坐标使用stpq访问相同的分量。

2.1 重组(Swizzling)

灵活的分量选择方式

vec2 someVec;
vec4 differentVec = someVec.xyxx;
vec3 anotherVec = differentVec.zyw;
vec4 otherVec = someVec.xxxx + anotherVec.yxzy;

也可以把一个向量作为一个参数传给不同的向量构造函数,以减少需求参数的数量:

vec2 vect = vec2(0.5, 0.7);
vec4 result = vec4(vect, 0.0, 0.0);
vec4 otherResult = vec4(result.xyz, 1.0);

以上是关于GLSL 数据类型的主要内容,如果未能解决你的问题,请参考以下文章

GLSL 数据类型

WebGL-Shader入门(2.着色器语言GLSL ES矢量和矩阵的访问与运算)

WebGL-Shader入门(1.着色器语言GLSL ES数据类型介绍与使用)

OpenGL着色器语言GLSL资料汇编

OpenGL着色器语言GLSL资料汇编

OpenGL着色器语言GLSL资料汇编