3.1.0 • Published 2 years ago

demolishedrenderer v3.1.0

Weekly downloads
100
License
MIT
Repository
-
Last release
2 years ago

demolishedRenderer

About

demolishedRenderar is a lightweight high-performance, easy to use multi-pass (1-n shader programs/buffers) rendering engine that supports 1-n textures,custom uniforms.

DR is written mainly for a demo-scene purpose.

Install

npm install demolishedrenderer

Get started

Create an instance of the renderer

 constructor(canvas: HTMLCanvasElement, mainVertexShader: string, mainFragmentShader: string, customUniforms?: ICu);

Methods

addAssets (aA)

Add assets shared, global assets that can be used 1-n buffers

aA(assets: any, cb: () => void): DR;

addBuffer (aB)

Create a render buffer, shader that produces a texture that can be use for output etc within main fragment.

   aB(name: string, vertex: string, fragment: string, textures?: Array<string>, customUniforms?: ICu): DR;

R(time:number)

Render a frame based on time

run(startTime:number,fps:number)

Start a render loop at startTime, fps sets a maximum frame rate (FPS)

sP(key: string, state: boolean):void

Enable or disable a buffer/program. Can be toggled during render loop.

Texture's & Custom Uniforms

Pass 1-n textures to the engines as an Array<Itx> , textures is shared among 1-n buffers / shader programs. When adding a buffer you need to specify with textures to use.

   aB("myByffer,vertexShader,fragmentShader",["myTexture1","myTexture2],cU):

Texture (ITx)

interface ITx {
    src?: any,
    fn?(currentProgram:WebGLProgram,src:any): Function
}

example

let textures = [
    {
         "myTexture1": {
           src: "/test/assets/texture.jpg"
        },
    },
    {
         "myTexture2": {
            (gl,c) => {
                    // do stuff with your gl program texture...
            }
        },
    }

]

Custom Uniform's

Bulit in uniforms are , this are updated for each frame, this also applies to customUniforms,

uniform float time; 
uniform int frame;
uniform int deltaTime; 
uniform vec2 resolution;
uniform sampler2D {bufferName}; // bufferName = the name of your buffer, contains previous frame.  ( applies to main fragment shader)

Add custom uniform(s)

const customUniforms = {
        "fRnd": (location, currentGlProgram, mainGlProgram, renderTime) => { 

            currentGlProgram.uniform1f(location,Math.random()); 
        
        },
        ....

Custom uniforms can be passed to each buffer as well as the main program.

Kind regards, Magnus 'Bagzy' Thor

3.1.0

2 years ago

3.0.0

3 years ago

3.0.0-beta.1

3 years ago

2.2.3

3 years ago

2.2.2

3 years ago

2.1.0-beta.4

4 years ago

2.1.0-beta.2

4 years ago

2.1.0-beta.1

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.0

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.6

4 years ago

1.0.4

4 years ago