UNPKG

demolishedtexture

Version:

Procedual texture generator for Demolished or what ever you want.Renders base64 strings and/or binary.

91 lines (57 loc) 2.96 kB
# demolishedTexture Generate procedural textures in GLSL-Shader way or use plain vanilla Canvas API's to create your textures. At https://magnusthor.github.io/demolishedTexture/editor/ you can find a tiny editor that allows you to fiddle with demolishedTexture. ## Install using NPM npm install demolishedtexture ## Documentation Brief documentation of demolishedTexture. More to come thou. ## Create a texture using TextureBase Like in a "shader" the generator calles the "callback" function (fn) provided to the generator by createTexture(w,h,fn) or render(fn) for each pixel (x,y) of your texture. The callback *fn* must have the following signature (pixel, x, y, w, h) where the arguments are as follows, it must return an Array of RGB(a) fn(pixel:Array, x:number, y:numer, w:number, h:number,v:Array):Array<number> **pixel** is red, green and blue RGB channel for the current pixel (x,y) **x,y** is the current coordinate of the pixel. **w,h** is the with and hight of the texture. **v** Vector coorinate i.e -1,-1,0 for the current pixel The function (fn) is inherited (bound) the the TextureBase descibed above, there you can find functions such as PerlinNoise ( noise) ### Example ( Javascript ) **** var instance = DemolishedTextureGen.createTexture(512, 512, function (pixel, x, y, w, h,v) { var n = this.noise(x / 45, y / 120, .89); n = Math.cos(n * 15); r = Math.round(n * 255); b = 255 - r; g = r - 255; return [r, g, b]; }); ## Create a texture using Canvas API's In addition to the procedual textures you can use the HTML5 Canvas JavaScript API's to render textures / images. fn(ctx,w,h):Array<number> **ctx** is the CanvasRenderingContext2D to use for drawinig operations. **w** is the width of the texture. **h** is the width of the texture. var instance = DemolishedCanvasTextureGen.createTexture(512, 512, (ctx, w, h) => { ctx.save(); ctx.fillStyle = "#fff"; let dx = w / 2; let dy = h / 2; ctx.strokeStyle = "#fff"; ctx.lineWidth = 10; var sx = Math.random() * 2; var sy = Math.random() * 2; ctx.translate(sx, sy); ctx.strokeRect(20, 20, 512 - 40, 512 - 40); ctx.stroke(); ctx.font = "120px 'Arial'"; ctx.fillText("SUPER", 40, 220, w); ctx.font = "bold 154px 'Arial'"; ctx.fillText("HANNA", 35, 370, w); ctx.restore(); return ctx; }); ## Get the rendered texture as Base64 toBase64():string ## Get the rendered texture as a Blob toBlob( (b:Blob) => {}): void # Links https://magnusthor.github.io/demolishedTexture/example/index.html https://magnusthor.github.io/demolishedTexture/editor/index.html