数字艺术
GLSL(OpenGL Shading Lauguage)是现代GPU编程标准语言 是现代图形学的基石
Pixi.js P5.js Shader都用到GLSL
工具和插件
Shader languages support for VS Code
VS Code扩展 提供GLSL语法高亮 函数签名提示等
vite-plugin-glsl
Vite工程中引入GLSL 和 WGSL 着色器文件
1 | npm i vite-plugin-glsl --save-dev |
1 | import { defineConfig } from 'vite' |
GLSL编程语言
类型
- attribute
- vec2 vec3 vec4: float元素的矢量(列向量)
- ivec2 ivec3 ivec4: int元素的矢量
- bvec2 bvec3 bvec4: bool元素的矢量
- mat2 mat3 mat4: 2×2 3×3 4×4 float元素的矩阵
方法
exp mod clamp限定范围
cross dot mix线性内插 step步进函数 smoothstep length矢量长度 distance reflect矢量反射
refract normalize
Shaderific
Khronos Group registery
Book of Shaders glossary
矩阵构造函数
1 | vec2 v2_1 = vec2(1.0, 3.0) |
分量
1 | // 可以使用xyzw,rgba,stpq分别获取各位置分量 |
取样器
1 | uniform sampler2D u_Sampler |
其他
continue break discard(跳过当前片元)