@shader-core/layers
v1.0.0
Published
Composable animated background layers for Shader Core: GLSL sources, schemas, and preset stacks.
Maintainers
Readme
@shader-core/layers
Composable animated background layers for Shader Core — GLSL sources, schemas, preset stacks, and the first-party helper library they are built on.
Data only: no runtime dependencies, and one module per layer so importing a gradient and a grain costs a gradient and a grain.
import { definition, defaultParams } from '@shader-core/layers/gradient';
import { primitives } from '@shader-core/layers/primitives';
import { manifest } from '@shader-core/layers/manifest';The layers
Bases (opaque, sit at the bottom of a stack) — gradient, mesh, marble,
frost, contours, silk, terrain, maze, rings, sheen.
Light (additive, need something beneath) — curtains, caustics, rays,
glow, ribbon.
Pattern (a shape rather than a field, so it sits over anything) —
halftone, solid.
Finishing (multiply over everything below) — grain, vignette, grade.
Filter (transforms everything below; goes last) — tone.
Twenty preset stacks combine them, reachable through manifest.presets.
Layers, not shaders
A layer is a function, not a program. It declares L_-prefixed uniforms and one
vec4 L_main(vec2 uv); the composer in @shader-core/engine rewrites that
prefix per stack position and generates the main() that blends them. That is
why the same layer can appear twice in a stack without colliding.
A filter declares vec3 L_filter(vec3 color, vec2 uv) in place of L_main. It
is handed the linear colour accumulated beneath it and returns a replacement,
which then blends like any other layer — how a tone curve fits in one pass.
Everything here is written from scratch — hashing, noise, colour encoding and dither included. See OWNERSHIP.md.
Licence
Free to use, including commercially. The credit comment stays in shader source you copy. See LICENSE.md.
