1.0.13 • Published 3 months ago

@thi.ng/shader-ast-glsl v1.0.13

Weekly downloads
73
License
Apache-2.0
Repository
github
Last release
3 months ago

shader-ast-glsl

npm version npm downloads Twitter Follow

This project is part of the @thi.ng/umbrella monorepo.

About

GLSL code generator for @thi.ng/shader-ast. Currently supports GLSL ES 1.00 (WebGL) & GLSL ES 3.00 (WebGL 2).

This package is also used for shader assembly by @thi.ng/webgl.

Status

STABLE - used in production

Search or submit any issues for this package

Related packages

Installation

yarn add @thi.ng/shader-ast-glsl

ES module import:

<script type="module" src="https://cdn.skypack.dev/@thi.ng/shader-ast-glsl"></script>

Skypack documentation

For Node.js REPL:

# with flag only for < v16
node --experimental-repl-await

> const shaderAstGlsl = await import("@thi.ng/shader-ast-glsl");

Package sizes (gzipped, pre-treeshake): ESM: 1.39 KB

Dependencies

Usage examples

Several demos in this repo's /examples directory are using this package.

A selection:

ScreenshotDescriptionLive demoSource
2D canvas shader emulationDemoSource
HOF shader procedural noise function compositionDemoSource
WebGL & JS canvas2D raymarch shader cross-compilationDemoSource
WebGL & JS canvas 2D SDFDemoSource
WebGL & Canvas2D textured tunnel shaderDemoSource
Entity Component System w/ 100k 3D particlesDemoSource

API

Generated API docs

Basic GLSL code generation

import { assign, defMain, output, program, uniform, vec4 } from "@thi.ng/shader-ast";
import { GLSLVersion, targetGLSL } from "@thi.ng/shader-ast-glsl";

const glsl = targetGLSL({
    // target WebGL2
    version: GLSLVersion.GLSL_300,
    // emit #version pragma
    versionPragma: true,
    // fragment shader
    type: "fs",
    // custom prelude
    prelude: `
// custom GLSL source string injection, e.g.
#define PI 3.1415926`
});

let color: Vec3Symbol;
let fragColor: Vec4Symbol;

glsl(
    program([
        color = uniform("vec3", "color"),
        fragColor = output("vec4", "fragColor", { loc: 0 }),
        defMain(()=> [
            assign(fragColor, vec4(color, 1))
        ])
    ])
)
#version 300 es

// custom GLSL source string injection, e.g.
#define PI 3.1415926
uniform vec3 color;
layout(location=0) out vec4 fragColor;
void main() {
fragColor = vec4(color, 1.0);
}

Authors

Karsten Schmidt

If this project contributes to an academic publication, please cite it as:

@misc{thing-shader-ast-glsl,
  title = "@thi.ng/shader-ast-glsl",
  author = "Karsten Schmidt",
  note = "https://thi.ng/shader-ast-glsl",
  year = 2019
}

License

© 2019 - 2021 Karsten Schmidt // Apache Software License 2.0

1.0.13

3 months ago

1.0.12

3 months ago

1.0.11

4 months ago

1.0.9

4 months ago

1.0.10

4 months ago

1.0.8

4 months ago

1.0.7

4 months ago

1.0.6

5 months ago

1.0.5

5 months ago

1.0.4

5 months ago

1.0.2

5 months ago

1.0.3

5 months ago

1.0.1

5 months ago

0.4.146

6 months ago

0.4.145

6 months ago

0.4.144

7 months ago

0.4.143

7 months ago

0.4.142

8 months ago

0.4.141

8 months ago

0.4.140

8 months ago

0.4.129

11 months ago

0.4.131

11 months ago

0.4.130

11 months ago

0.4.135

10 months ago

0.4.134

10 months ago

0.4.133

10 months ago

0.4.132

10 months ago

0.4.139

9 months ago

0.4.138

9 months ago

0.4.137

9 months ago

0.4.136

10 months ago

0.4.124

12 months ago

0.4.128

11 months ago

0.4.127

11 months ago

0.4.126

11 months ago

0.4.125

12 months ago

0.4.123

1 year ago

0.4.122

1 year ago

0.4.121

1 year ago

0.4.120

1 year ago

0.4.119

1 year ago

0.4.118

1 year ago

0.4.117

1 year ago

0.4.116

1 year ago

0.4.115

1 year ago

0.4.114

1 year ago

0.4.113

1 year ago

0.4.112

1 year ago

0.4.111

1 year ago

0.4.110

1 year ago

0.4.109

1 year ago

0.4.108

1 year ago

0.4.107

1 year ago

0.4.106

1 year ago

0.4.105

1 year ago

0.4.102

1 year ago

0.4.104

1 year ago

0.4.103

1 year ago

0.4.101

1 year ago

0.4.100

1 year ago

0.4.99

1 year ago

0.4.98

1 year ago

0.4.97

1 year ago

0.4.95

1 year ago

0.4.96

1 year ago

0.4.93

1 year ago

0.4.94

1 year ago

0.4.92

1 year ago

0.4.91

1 year ago

0.4.90

1 year ago

0.4.89

1 year ago

0.4.86

1 year ago

0.4.87

1 year ago

0.4.88

1 year ago

0.4.85

2 years ago

0.4.84

2 years ago

0.4.82

2 years ago

0.4.83

2 years ago

0.4.80

2 years ago

0.4.81

2 years ago

0.4.75

2 years ago

0.4.76

2 years ago

0.4.73

2 years ago

0.4.74

2 years ago

0.4.71

2 years ago

0.4.72

2 years ago

0.4.70

2 years ago

0.4.79

2 years ago

0.4.77

2 years ago

0.4.78

2 years ago

0.4.64

2 years ago

0.4.65

2 years ago

0.4.62

2 years ago

0.4.63

2 years ago

0.4.60

2 years ago

0.4.61

2 years ago

0.4.68

2 years ago

0.4.69

2 years ago

0.4.66

2 years ago

0.4.67

2 years ago

0.4.54

2 years ago

0.4.59

2 years ago

0.4.57

2 years ago

0.4.58

2 years ago

0.4.55

2 years ago

0.4.56

2 years ago

0.4.53

2 years ago

0.4.51

2 years ago

0.4.52

2 years ago

0.4.49

2 years ago

0.4.50

2 years ago

0.4.43

2 years ago

0.4.48

2 years ago

0.4.46

2 years ago

0.4.47

2 years ago

0.4.44

2 years ago

0.4.45

2 years ago

0.4.42

2 years ago

0.4.41

2 years ago

0.4.40

2 years ago

0.4.39

2 years ago

0.4.38

2 years ago

0.4.37

2 years ago

0.4.35

2 years ago

0.4.36

2 years ago

0.4.33

2 years ago

0.4.34

2 years ago

0.4.31

3 years ago

0.4.32

3 years ago

0.4.30

3 years ago

0.4.28

3 years ago

0.4.29

3 years ago

0.4.26

3 years ago

0.4.27

3 years ago

0.4.24

3 years ago

0.4.25

3 years ago

0.4.22

3 years ago

0.4.23

3 years ago

0.4.20

3 years ago

0.4.21

3 years ago

0.4.19

3 years ago

0.4.17

3 years ago

0.4.18

3 years ago

0.4.15

3 years ago

0.4.16

3 years ago

0.4.13

3 years ago

0.4.14

3 years ago

0.4.11

3 years ago

0.4.12

3 years ago

0.4.9

3 years ago

0.4.8

3 years ago

0.4.10

3 years ago

0.4.7

3 years ago

0.4.6

3 years ago

0.4.5

3 years ago

0.4.4

4 years ago

0.4.1

4 years ago

0.4.0

4 years ago

0.4.3

4 years ago

0.4.2

4 years ago

0.3.9

4 years ago

0.3.8

4 years ago

0.3.7

4 years ago

0.3.4

4 years ago

0.3.0

4 years ago

0.3.1

4 years ago

0.3.3

4 years ago

0.2.48

4 years ago

0.2.47

4 years ago

0.2.46

4 years ago

0.2.45

4 years ago

0.2.44

4 years ago

0.2.43

4 years ago

0.2.41

4 years ago

0.2.42

4 years ago

0.2.40

4 years ago

0.2.39

4 years ago

0.2.38

4 years ago

0.2.37

4 years ago

0.2.36

4 years ago

0.2.35

4 years ago

0.2.34

4 years ago

0.2.33

4 years ago

0.2.32

4 years ago

0.2.31

4 years ago

0.2.30

4 years ago

0.2.29

4 years ago

0.2.28

4 years ago

0.2.27

4 years ago

0.2.26

4 years ago

0.2.22

4 years ago

0.2.21

4 years ago

0.2.20

4 years ago

0.2.19

4 years ago

0.2.18

4 years ago

0.2.17

4 years ago

0.2.16

4 years ago

0.2.15

4 years ago

0.2.14

5 years ago

0.2.13

5 years ago

0.2.12

5 years ago

0.2.11

5 years ago

0.2.10

5 years ago

0.2.9

5 years ago

0.2.8

5 years ago

0.2.7

5 years ago

0.2.6

5 years ago

0.2.5

5 years ago

0.2.1

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.4

5 years ago

0.2.0

5 years ago

0.1.38

5 years ago

0.1.39

5 years ago

0.1.36

5 years ago

0.1.37

5 years ago

0.1.34

5 years ago

0.1.35

5 years ago

0.1.33

5 years ago

0.1.32

5 years ago

0.1.31

5 years ago

0.1.30

5 years ago

0.1.29

5 years ago

0.1.28

5 years ago

0.1.27

5 years ago

0.1.26

5 years ago

0.1.25

5 years ago

0.1.24

5 years ago

0.1.23

5 years ago

0.1.22

5 years ago

0.1.21

5 years ago

0.1.20

5 years ago

0.1.19

5 years ago

0.1.18

5 years ago

0.1.17

5 years ago

0.1.16

5 years ago

0.1.15

5 years ago

0.1.14

5 years ago

0.1.11

5 years ago

0.1.10

5 years ago

0.1.9

6 years ago

0.1.8

6 years ago

0.1.7

6 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago