ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

webgl 学习笔记 GLSL ES语法 - 数据类型

2021-12-26 21:33:09  阅读:223  来源: 互联网

标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有