The umbra Reference Manual

This is the umbra Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 07:59:51 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 umbra

A library of reusable GPU shader functions.

Author

Michael Fiano <>

Home Page

https://git.mfiano.net/mfiano/umbra

License

MIT

Dependencies
  • mfiano-utils (system).
  • shadow (system).
  • varjo (system).
Source

umbra.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 umbra/umbra.asd

Source

umbra.asd.

Parent Component

umbra (system).

ASDF Systems

umbra.


3.1.2 umbra/package.lisp

Source

umbra.asd.

Parent Component

umbra (system).

Packages

3.1.3 umbra/common.lisp

Dependency

package.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.4 umbra/common-swizzle.lisp

Dependency

common.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).

Internals

3.1.5 umbra/common-vari.lisp

Dependency

common-swizzle.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.6 umbra/common-math.lisp

Dependency

common-vari.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).

Public Interface

3.1.7 umbra/common-structs.lisp

Dependency

common-math.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).

Public Interface
Internals

3.1.8 umbra/color-space.lisp

Dependency

common-structs.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).

Internals

3.1.9 umbra/color-grading.lisp

Dependency

color-space.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.10 umbra/graphing.lisp

Dependency

color-grading.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.11 umbra/shaping-iq.lisp

Dependency

graphing.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.12 umbra/shaping-levin.lisp

Dependency

shaping-iq.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.13 umbra/shaping-penner.lisp

Dependency

shaping-levin.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.14 umbra/shaping-misc.lisp

Dependency

shaping-penner.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.15 umbra/hashing-bbs.lisp

Dependency

shaping-misc.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.16 umbra/hashing-fast32.lisp

Dependency

hashing-bbs.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.17 umbra/hashing-fast32-2.lisp

Dependency

hashing-fast32.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.18 umbra/hashing-sgpp.lisp

Dependency

hashing-fast32-2.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.19 umbra/noise-cellular.lisp

Dependency

hashing-sgpp.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.20 umbra/noise-hermite.lisp

Dependency

noise-cellular.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.21 umbra/noise-perlin.lisp

Dependency

noise-hermite.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.22 umbra/noise-polkadot.lisp

Dependency

noise-perlin.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.24 umbra/noise-value.lisp

Dependency

noise-simplex.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.25 umbra/noise-misc.lisp

Dependency

noise-value.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.26 umbra/noise-utils.lisp

Dependency

noise-misc.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.27 umbra/sdf-2d.lisp

Dependency

noise-utils.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).


3.1.28 umbra/sprite.lisp

Dependency

sdf-2d.lisp (file).

Source

umbra.asd.

Parent Component

umbra (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 umbra.effects

Source

package.lisp.

Use List

4.2 umbra.sprite

Source

package.lisp.

Use List
Internals

4.3 umbra.common

Source

package.lisp.

Use List

shadow.glsl.

Used By List
Public Interface
Internals

4.4 umbra.hashing

Source

package.lisp.

Use List

4.5 umbra.graphing

Source

package.lisp.

Use List

4.6 umbra.color

Source

package.lisp.

Use List
Internals

4.7 umbra.sdf

Source

package.lisp.

Use List

4.9 umbra.shaping

Source

package.lisp.

Use List

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Constants

Constant: +epsilon+
Package

umbra.common.

Source

common-math.lisp.

Constant: +half-pi+
Package

umbra.common.

Source

common-math.lisp.

Constant: +pi+
Package

umbra.common.

Source

common-math.lisp.


5.1.2 Standalone methods

Method: type->type-spec ((type sprite-data))
Package

varjo.internals.

Source

sprite.lisp.

Method: type->type-spec ((type spritesheet-data))
Package

varjo.internals.

Source

sprite.lisp.

Method: type->type-spec ((type mesh-attrs))
Package

varjo.internals.

Source

common-structs.lisp.

Reader Method: v-glsl-string ((sprite-data sprite-data))

automatically generated reader method

Package

varjo.internals.

Source

sprite.lisp.

Target Slot

glsl-string.

Reader Method: v-glsl-string ((spritesheet-data spritesheet-data))

automatically generated reader method

Package

varjo.internals.

Source

sprite.lisp.

Target Slot

glsl-string.

Reader Method: v-glsl-string ((mesh-attrs mesh-attrs))

automatically generated reader method

Package

varjo.internals.

Source

common-structs.lisp.

Target Slot

glsl-string.

Reader Method: v-slots ((sprite-data sprite-data))

automatically generated reader method

Package

varjo.internals.

Source

sprite.lisp.

Target Slot

slots.

Reader Method: v-slots ((spritesheet-data spritesheet-data))

automatically generated reader method

Package

varjo.internals.

Source

sprite.lisp.

Target Slot

slots.

Reader Method: v-slots ((mesh-attrs mesh-attrs))

automatically generated reader method

Package

varjo.internals.

Source

common-structs.lisp.

Target Slot

slots.


5.1.3 Classes

Class: mesh-attrs
Package

umbra.common.

Source

common-structs.lisp.

Direct superclasses

v-user-struct.

Direct methods
Direct slots
Slot: type-name
Package

varjo.internals.

Initform

(quote umbra.common:mesh-attrs)

Slot: superclass
Package

varjo.internals.

Initform

(quote vari.types:v-user-struct)

Slot: glsl-string
Package

varjo.internals.

Initform

"mesh_attrs"

Initargs

:glsl-string

Readers

v-glsl-string.

Writers

This slot is read-only.

Slot: signature
Package

varjo.internals.

Initform

"struct mesh_attrs { vec3 mesh47pos; vec3 mesh47normal; vec4 mesh47tangent; vec4 mesh47color; vec2 mesh47uv1; vec2 mesh47uv2; vec4 mesh47joints; vec4 mesh47weights; };"

Initargs

:signature

Readers

v-signature.

Writers

(setf v-signature).

Slot: slots
Package

varjo.internals.

Initform

(quote ((umbra.common:mesh/pos #<vari.types:v-vec3 {10051b7253}> umbra.common::mesh-attrs-mesh/pos "~a.mesh47pos") (umbra.common:mesh/normal #<vari.types:v-vec3 {10051b7263}> umbra.common::mesh-attrs-mesh/normal "~a.mesh47normal") (umbra.common:mesh/tangent #<vari.types:v-vec4 {10051b7273}> umbra.common::mesh-attrs-mesh/tangent "~a.mesh47tangent") (umbra.common:mesh/color #<vari.types:v-vec4 {10051b7283}> umbra.common::mesh-attrs-mesh/color "~a.mesh47color") (umbra.common:mesh/uv1 #<vari.types:v-vec2 {10051b7293}> umbra.common::mesh-attrs-mesh/uv1 "~a.mesh47uv1") (umbra.common:mesh/uv2 #<vari.types:v-vec2 {10051b72a3}> umbra.common::mesh-attrs-mesh/uv2 "~a.mesh47uv2") (umbra.common:mesh/joints #<vari.types:v-vec4 {10051b72b3}> umbra.common::mesh-attrs-mesh/joints "~a.mesh47joints") (umbra.common:mesh/weights #<vari.types:v-vec4 {10051b72c3}> umbra.common::mesh-attrs-mesh/weights "~a.mesh47weights")))

Readers

v-slots.

Writers

This slot is read-only.


5.2 Internals


5.2.1 Constants

Constant: +gamma+
Package

umbra.color.

Source

color-space.lisp.

Constant: +gamma-inverse+
Package

umbra.color.

Source

color-space.lisp.

Constant: +simplex-2d/inverse-triangle-half-edge-length+
Package

umbra.noise.

Source

noise-simplex.lisp.

Constant: +simplex-2d/inverse-triangle-height+
Package

umbra.noise.

Source

noise-simplex.lisp.

Constant: +simplex-2d/norm-factor+
Package

umbra.noise.

Source

noise-simplex.lisp.

Constant: +simplex-2d/skew-factor+
Package

umbra.noise.

Source

noise-simplex.lisp.

Constant: +simplex-2d/triangle-height+
Package

umbra.noise.

Source

noise-simplex.lisp.

Constant: +simplex-2d/unskew-factor+
Package

umbra.noise.

Source

noise-simplex.lisp.

Constant: +simplex-3d/inverse-pyramid-height+
Package

umbra.noise.

Source

noise-simplex.lisp.

Constant: +simplex-3d/inverse-triangle-half-edge-length+
Package

umbra.noise.

Source

noise-simplex.lisp.

Constant: +simplex-3d/norm-factor+
Package

umbra.noise.

Source

noise-simplex.lisp.

Constant: +simplex-3d/pyramid-height+
Package

umbra.noise.

Source

noise-simplex.lisp.

Constant: +simplex-3d/skew-factor+
Package

umbra.noise.

Source

noise-simplex.lisp.

Constant: +simplex-3d/unskew-factor+
Package

umbra.noise.

Source

noise-simplex.lisp.


5.2.2 Macros

Macro: define-vari-swizzle-macros ()
Package

umbra.common.

Source

common-swizzle.lisp.


5.2.3 Ordinary functions

Function: %swizzle/char-position (components index)
Package

umbra.common.

Source

common-swizzle.lisp.

Function: %swizzle/combinations (n items)
Package

umbra.common.

Source

common-swizzle.lisp.

Function: %swizzle/component-groups (size)
Package

umbra.common.

Source

common-swizzle.lisp.


5.2.4 Standalone methods

Writer Method: (setf v-signature) ((sprite-data sprite-data))

automatically generated writer method

Package

varjo.internals.

Source

sprite.lisp.

Target Slot

signature.

Reader Method: v-signature ((sprite-data sprite-data))

automatically generated reader method

Package

varjo.internals.

Source

sprite.lisp.

Target Slot

signature.

Writer Method: (setf v-signature) ((spritesheet-data spritesheet-data))

automatically generated writer method

Package

varjo.internals.

Source

sprite.lisp.

Target Slot

signature.

Reader Method: v-signature ((spritesheet-data spritesheet-data))

automatically generated reader method

Package

varjo.internals.

Source

sprite.lisp.

Target Slot

signature.

Writer Method: (setf v-signature) ((mesh-attrs mesh-attrs))

automatically generated writer method

Package

varjo.internals.

Source

common-structs.lisp.

Target Slot

signature.

Reader Method: v-signature ((mesh-attrs mesh-attrs))

automatically generated reader method

Package

varjo.internals.

Source

common-structs.lisp.

Target Slot

signature.


5.2.5 Classes

Class: sprite-data
Package

umbra.sprite.

Source

sprite.lisp.

Direct superclasses

v-user-struct.

Direct methods
Direct slots
Slot: type-name
Package

varjo.internals.

Initform

(quote umbra.sprite::sprite-data)

Slot: superclass
Package

varjo.internals.

Initform

(quote vari.types:v-user-struct)

Slot: glsl-string
Package

varjo.internals.

Initform

"sprite_data"

Initargs

:glsl-string

Readers

v-glsl-string.

Writers

This slot is read-only.

Slot: signature
Package

varjo.internals.

Initform

"struct sprite_data { sampler2d sampler; int index; };"

Initargs

:signature

Readers

v-signature.

Writers

(setf v-signature).

Slot: slots
Package

varjo.internals.

Initform

(quote ((umbra.sprite::sampler #<vari.types:v-sampler-2d {100289f253}> umbra.sprite::sampler "~a.sampler") (umbra.sprite::index #<vari.types:v-int {100289f593}> umbra.sprite::index "~a.index")))

Readers

v-slots.

Writers

This slot is read-only.

Class: spritesheet-data
Package

umbra.sprite.

Source

sprite.lisp.

Direct superclasses

v-user-struct.

Direct methods
Direct slots
Slot: type-name
Package

varjo.internals.

Initform

(quote umbra.sprite::spritesheet-data)

Slot: superclass
Package

varjo.internals.

Initform

(quote vari.types:v-user-struct)

Slot: glsl-string
Package

varjo.internals.

Initform

"spritesheet_data"

Initargs

:glsl-string

Readers

v-glsl-string.

Writers

This slot is read-only.

Slot: signature
Package

varjo.internals.

Initform

"struct spritesheet_data { ivec2 pos[(2048)]; ivec2 size[(2048)]; };"

Initargs

:signature

Readers

v-signature.

Writers

(setf v-signature).

Slot: slots
Package

varjo.internals.

Initform

(quote ((umbra.sprite::pos #<vari.types:v-array {1002a41d53}> umbra.sprite::pos "~a.pos") (umbra.sprite::size #<vari.types:v-array {1002a420c3}> umbra.sprite::size "~a.size")))

Readers

v-slots.

Writers

This slot is read-only.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
D   F   M   T   V  
Index Entry  Section

%
%swizzle/char-position: Private ordinary functions
%swizzle/combinations: Private ordinary functions
%swizzle/component-groups: Private ordinary functions

(
(setf v-signature): Private standalone methods
(setf v-signature): Private standalone methods
(setf v-signature): Private standalone methods

D
define-vari-swizzle-macros: Private macros

F
Function, %swizzle/char-position: Private ordinary functions
Function, %swizzle/combinations: Private ordinary functions
Function, %swizzle/component-groups: Private ordinary functions

M
Macro, define-vari-swizzle-macros: Private macros
Method, (setf v-signature): Private standalone methods
Method, (setf v-signature): Private standalone methods
Method, (setf v-signature): Private standalone methods
Method, type->type-spec: Public standalone methods
Method, type->type-spec: Public standalone methods
Method, type->type-spec: Public standalone methods
Method, v-glsl-string: Public standalone methods
Method, v-glsl-string: Public standalone methods
Method, v-glsl-string: Public standalone methods
Method, v-signature: Private standalone methods
Method, v-signature: Private standalone methods
Method, v-signature: Private standalone methods
Method, v-slots: Public standalone methods
Method, v-slots: Public standalone methods
Method, v-slots: Public standalone methods

T
type->type-spec: Public standalone methods
type->type-spec: Public standalone methods
type->type-spec: Public standalone methods

V
v-glsl-string: Public standalone methods
v-glsl-string: Public standalone methods
v-glsl-string: Public standalone methods
v-signature: Private standalone methods
v-signature: Private standalone methods
v-signature: Private standalone methods
v-slots: Public standalone methods
v-slots: Public standalone methods
v-slots: Public standalone methods


A.3 Variables

Jump to:   +  
C   G   S   T  
Index Entry  Section

+
+epsilon+: Public constants
+gamma+: Private constants
+gamma-inverse+: Private constants
+half-pi+: Public constants
+pi+: Public constants
+simplex-2d/inverse-triangle-half-edge-length+: Private constants
+simplex-2d/inverse-triangle-height+: Private constants
+simplex-2d/norm-factor+: Private constants
+simplex-2d/skew-factor+: Private constants
+simplex-2d/triangle-height+: Private constants
+simplex-2d/unskew-factor+: Private constants
+simplex-3d/inverse-pyramid-height+: Private constants
+simplex-3d/inverse-triangle-half-edge-length+: Private constants
+simplex-3d/norm-factor+: Private constants
+simplex-3d/pyramid-height+: Private constants
+simplex-3d/skew-factor+: Private constants
+simplex-3d/unskew-factor+: Private constants

C
Constant, +epsilon+: Public constants
Constant, +gamma+: Private constants
Constant, +gamma-inverse+: Private constants
Constant, +half-pi+: Public constants
Constant, +pi+: Public constants
Constant, +simplex-2d/inverse-triangle-half-edge-length+: Private constants
Constant, +simplex-2d/inverse-triangle-height+: Private constants
Constant, +simplex-2d/norm-factor+: Private constants
Constant, +simplex-2d/skew-factor+: Private constants
Constant, +simplex-2d/triangle-height+: Private constants
Constant, +simplex-2d/unskew-factor+: Private constants
Constant, +simplex-3d/inverse-pyramid-height+: Private constants
Constant, +simplex-3d/inverse-triangle-half-edge-length+: Private constants
Constant, +simplex-3d/norm-factor+: Private constants
Constant, +simplex-3d/pyramid-height+: Private constants
Constant, +simplex-3d/skew-factor+: Private constants
Constant, +simplex-3d/unskew-factor+: Private constants

G
glsl-string: Public classes
glsl-string: Private classes
glsl-string: Private classes

S
signature: Public classes
signature: Private classes
signature: Private classes
Slot, glsl-string: Public classes
Slot, glsl-string: Private classes
Slot, glsl-string: Private classes
Slot, signature: Public classes
Slot, signature: Private classes
Slot, signature: Private classes
Slot, slots: Public classes
Slot, slots: Private classes
Slot, slots: Private classes
Slot, superclass: Public classes
Slot, superclass: Private classes
Slot, superclass: Private classes
Slot, type-name: Public classes
Slot, type-name: Private classes
Slot, type-name: Private classes
slots: Public classes
slots: Private classes
slots: Private classes
superclass: Public classes
superclass: Private classes
superclass: Private classes

T
type-name: Public classes
type-name: Private classes
type-name: Private classes


A.4 Data types

Jump to:   C   F   G   H   M   N   P   S   U  
Index Entry  Section

C
Class, mesh-attrs: Public classes
Class, sprite-data: Private classes
Class, spritesheet-data: Private classes
color-grading.lisp: The umbra/color-grading․lisp file
color-space.lisp: The umbra/color-space․lisp file
common-math.lisp: The umbra/common-math․lisp file
common-structs.lisp: The umbra/common-structs․lisp file
common-swizzle.lisp: The umbra/common-swizzle․lisp file
common-vari.lisp: The umbra/common-vari․lisp file
common.lisp: The umbra/common․lisp file

F
File, color-grading.lisp: The umbra/color-grading․lisp file
File, color-space.lisp: The umbra/color-space․lisp file
File, common-math.lisp: The umbra/common-math․lisp file
File, common-structs.lisp: The umbra/common-structs․lisp file
File, common-swizzle.lisp: The umbra/common-swizzle․lisp file
File, common-vari.lisp: The umbra/common-vari․lisp file
File, common.lisp: The umbra/common․lisp file
File, graphing.lisp: The umbra/graphing․lisp file
File, hashing-bbs.lisp: The umbra/hashing-bbs․lisp file
File, hashing-fast32-2.lisp: The umbra/hashing-fast32-2․lisp file
File, hashing-fast32.lisp: The umbra/hashing-fast32․lisp file
File, hashing-sgpp.lisp: The umbra/hashing-sgpp․lisp file
File, noise-cellular.lisp: The umbra/noise-cellular․lisp file
File, noise-hermite.lisp: The umbra/noise-hermite․lisp file
File, noise-misc.lisp: The umbra/noise-misc․lisp file
File, noise-perlin.lisp: The umbra/noise-perlin․lisp file
File, noise-polkadot.lisp: The umbra/noise-polkadot․lisp file
File, noise-simplex.lisp: The umbra/noise-simplex․lisp file
File, noise-utils.lisp: The umbra/noise-utils․lisp file
File, noise-value.lisp: The umbra/noise-value․lisp file
File, package.lisp: The umbra/package․lisp file
File, sdf-2d.lisp: The umbra/sdf-2d․lisp file
File, shaping-iq.lisp: The umbra/shaping-iq․lisp file
File, shaping-levin.lisp: The umbra/shaping-levin․lisp file
File, shaping-misc.lisp: The umbra/shaping-misc․lisp file
File, shaping-penner.lisp: The umbra/shaping-penner․lisp file
File, sprite.lisp: The umbra/sprite․lisp file
File, umbra.asd: The umbra/umbra․asd file

G
graphing.lisp: The umbra/graphing․lisp file

H
hashing-bbs.lisp: The umbra/hashing-bbs․lisp file
hashing-fast32-2.lisp: The umbra/hashing-fast32-2․lisp file
hashing-fast32.lisp: The umbra/hashing-fast32․lisp file
hashing-sgpp.lisp: The umbra/hashing-sgpp․lisp file

M
mesh-attrs: Public classes

N
noise-cellular.lisp: The umbra/noise-cellular․lisp file
noise-hermite.lisp: The umbra/noise-hermite․lisp file
noise-misc.lisp: The umbra/noise-misc․lisp file
noise-perlin.lisp: The umbra/noise-perlin․lisp file
noise-polkadot.lisp: The umbra/noise-polkadot․lisp file
noise-simplex.lisp: The umbra/noise-simplex․lisp file
noise-utils.lisp: The umbra/noise-utils․lisp file
noise-value.lisp: The umbra/noise-value․lisp file

P
Package, umbra.color: The umbra․color package
Package, umbra.common: The umbra․common package
Package, umbra.effects: The umbra․effects package
Package, umbra.graphing: The umbra․graphing package
Package, umbra.hashing: The umbra․hashing package
Package, umbra.noise: The umbra․noise package
Package, umbra.sdf: The umbra․sdf package
Package, umbra.shaping: The umbra․shaping package
Package, umbra.sprite: The umbra․sprite package
package.lisp: The umbra/package․lisp file

S
sdf-2d.lisp: The umbra/sdf-2d․lisp file
shaping-iq.lisp: The umbra/shaping-iq․lisp file
shaping-levin.lisp: The umbra/shaping-levin․lisp file
shaping-misc.lisp: The umbra/shaping-misc․lisp file
shaping-penner.lisp: The umbra/shaping-penner․lisp file
sprite-data: Private classes
sprite.lisp: The umbra/sprite․lisp file
spritesheet-data: Private classes
System, umbra: The umbra system

U
umbra: The umbra system
umbra.asd: The umbra/umbra․asd file
umbra.color: The umbra․color package
umbra.common: The umbra․common package
umbra.effects: The umbra․effects package
umbra.graphing: The umbra․graphing package
umbra.hashing: The umbra․hashing package
umbra.noise: The umbra․noise package
umbra.sdf: The umbra․sdf package
umbra.shaping: The umbra․shaping package
umbra.sprite: The umbra․sprite package