Awesome
esbuild-plugin-glsl-include
A plugin for esbuild to import local shader fragments via #include
pragma from GLSL files with .glsl, .vert, .frag, .vs, .fs
extensions.
Installation
npm install -D esbuild-plugin-glsl-include
Usage
import { build } from 'esbuild';
import { glsl } from 'esbuild-plugin-glsl-include';
build({
entryPoints: ['src/app.js'],
outfile: 'build/index.js',
bundle: true,
plugins: [
glsl()
]
}).catch(() => process.exit(1));
Example GLSL
precision mediump float;
uniform sampler2D tex0;
uniform float uTime;
varying vec2 v_texCoord0;
#include "checkers.glsl"
#include "noise/classic/3d.glsl"
#include "easings/cubic-in-out.glsl"
void main() {
vec2 uv = v_texCoord0;
float n = perlin(vec3(uv * 2.5 + uTime * 0.01, uTime * 0.2)) * 0.5 + 0.5;
float patt = checker(uv * easing(n), 6.0);
vec3 col = mix(vec3(0.173, 0.216, 0.278),vec3(0.792, 0.282, 0.478), vec3(patt)) * (n + 0.1);
gl_FragColor = vec4(col, 1.0);
}