@epok.tech/glsl-aspect

2.0.1 • Public • Published

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);

Package Sidebar

Install

npm i @epok.tech/glsl-aspect

Weekly Downloads

2

Version

2.0.1

License

MIT

Unpacked Size

29.6 kB

Total Files

21

Last publish

Collaborators

  • epok.tech