WebGL-GLSL语言

2020-03-05  本文已影响0人  写前端的大叔

在三维开发中,着色器是WebGL渲染三维图形的关键,GLSL是专门用来编写着色器的编程语言,是为图形计算量身定制的,它包含一些针对向量和矩阵操作的有用特性。这里主要总结下数据类型变量运算程序流函数attributeuniformvarying预处理和指令等。

1.数据类型

GLSL支持两种数据类型。只有数据类型和布尔值类型,没有字符串类形。

2.变量

GLSL中的变量命名跟其它语言没啥区别,由英文字母、数字、下划线等组成,但变量不能以数字开头。GLSL是强类型的语言,在对变量进行赋值的时候,左右两边的类型必须相等。

3.矢量和矩阵类型

矢量主要包括以下类型:
vec2vec3vec4:表示具有2,3,4个浮点数元素的矢量。
ivec2ivec3ivec4:表示具有2,3,4个整型数元素的矢量。
bvec2bvec3bvec4:表示具有2,3,4个布尔值元素的矢量。
mat2mat3mat4:表示2x23x34x4的浮点数元素的矩阵。

4.attribute变量

attribute变量只能出现在顶点着色器中,只能被声明为全局亦是,被用来表示顶点的信息。attribute的亦是类型只能是floatvec2vec3vec4mat2mat3mat4

4.uniform变量

uniform变量可以用在顶点着色器和片元着色器中,且必须是全局变量。uniform是只读的,它可以是除了数组或结构体之外的任意类型。

5.varying

varying变量用于从顶点着色器向片元着色器传输数据。必须是全局变量。并且必须在两种着色器中声明同名和同类型的varying变量。

上一篇 下一篇

猜你喜欢

热点阅读