@epok.tech/glsl-aspect
v2.0.1
Published
Small GLSL utility for aspect ratios in 1-4 dimensions.
Downloads
6
Maintainers
Readme
glsl-aspect
Small GLSL
utility for aspect ratios in 1-4 dimensions - cover, contain, and flexible.
Installation
Install from npm
using:
npm install @epok.tech/glsl-aspect
or:
yarn add @epok.tech/glsl-aspect
Usage
See the demo and its source code.
#pragma glslify: aspect = require(@epok.tech/glsl-aspect/src);
#pragma glslify: aspectCover = require(@epok.tech/glsl-aspect/src/cover);
#pragma glslify: aspectContain = require(@epok.tech/glsl-aspect/src/contain);
// These may set to any value:
vec4 size;
vec4 scale;
vec4 uv;
// Various uses and dimensions:
float scaled = uv.x*aspect(size.x, scale.x);
vec2 scaledByType = uv.yz*aspect(size.yz, scale.yz);
vec3 scaledByFloat = uv.yzw*aspect(size.yzw, scale.y);
// Conveniences for covering and containing:
vec2 scaledToCover = uv.xy*aspectCover(size.xy);
vec3 scaledToContain = uv.xyz*aspectContain(size.xyz);