标签:GLSL 1.0 color webgl float 数据类型 vec4 vec3 false
基本数据类型
- float
转换 float(4) 4.0 float(true) 1.0 float(false) 0.0
- init
int(1.0) 1 int(true) 1 int(false) 0
- bool
bool(0) false bool(1) true
矢量类型
- vec2 、vec3、vec4 浮点矢量
vec3 v3 = vec3(1.0, 1.2, 2.0)
vec2 v2 = vec2(v3) // 1.0, 1.2
vec4 v4 = vec4(1.0) // 1.0,1.0,1.0,1.0
- ivec2、 ivec3、ivec4 整型矢量
ivec2 v2 = vec3(3, 4)
- bvec2、bvec3、bvec4 布尔矢量
bvec4 v4 = bvec4(true, false, false, false)
矩阵
- mat2 mat3 mat4
2x2 3x3 4x4 浮点型矩阵
mat2 m2 = mat2( 1.3,1.4 , 1.2, 1.1) // [ 1.3, 1.2 , 1.4, 1.1]
分量名称
[
x,y,z,w
r,g,b,a,
s,t,p,q
]
数组
只支持一维数组
float floatArray[3]; // 声明长度是3位浮点类型的数组
const int size = 5;
int size5 = 5;
float floatArray[size] // 必须是常量
float floatArray[size5] //或报错
结构体
struct light {
vec4 color;
vec3 position;
}
light lt1, lt2; //声明 light类型 变量 lt1 lt2
lt1 = light(vec4(1.0,1.0,1.0,0.2), vec3(8.0,3.3, 1.5))
vec4 color = lt1.color
vec3 position = lt1.position
函数
函数需要提前声明类型
float luma(vec4 color) {
return color.r * 0.2 + color.g * 0.7 + color.b * 0.7;
}
attribute vec4 a_Color;
void main {
float result = luma(a_Color);
}
或者
float luma(vec4);
attribute vec4 a_Color;
void main {
float result = luma(a_Color);
}
float luma(vec4 color) {
return color.r * 0.2 + color.g * 0.7 + color.b * 0.7;
}
- 参数限定 in、out、const in、inout
//in 强制入参类型
float test(in vec3 color){
return 0.1;
}
//out
float test2(out float result){
result = 0.5;
return result;
}
标签:GLSL,1.0,color,webgl,float,数据类型,vec4,vec3,false 来源: https://blog.csdn.net/uk_51/article/details/122160312
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。