0.0.1 • Published 10 years ago
hackedvoxels-stitch v0.0.1
voxel-stitch
Stitches a set of block textures together into a texture atlas
The texture names are looked up from voxel-registry and the texture data from artpacks.
For an example, run npm start or try the live demo.
Arbitrary rects vs fixed arrays
voxel-stitch uses atlaspack, which supports packing textures of arbitrary rectangular shapes onto a two-dimensional canvas. The mip maps are generated using rect-mip-map.
(Before version 0.3, voxel-stitch would generate a 5-dimensional ndarray is in a format suitable for gl-tile-map / tile-mip-map, which required fixed texture sizes.)
Usage
Load using voxel-plugins, options:
artpacks: Array of resource pack URL(s) to load for textures, defaults to ProgrammerArt.atlasSize: Texture atlas width and height, in pixels. Note not all graphics cards support all texture dimensions, but WebGL stats showsMAX_TEXTURE_SIZEof 2048 or smaller is supported by 100% of WebGL users.debug: If true, writes out each mip level to the document for debugging.
Methods:
stitch(): Buildthis.atlasfrom all blocktextureproperties in voxel-registry.createGLTexture(gl, cb): Creates a gl-texture2d with the GL context, callscb(err, tex)when complete, comparable to gl-tile-map.preloadTexture(name): Addsnameto the list of textures to load institch(). Textures listed in the voxel-registrytextureproperty are automatically loaded; you can add additional textures for custom non-voxel use here.getTextureUV(name): Get UV coordinates for a texture (without padding), for custom usage withthis.texture
Events (voxel-stitch is an EventEmitter and emits the following):
added: Added one texture to the atlas.addedAll: All of the textures institch()were added.updateTexture: All textures were added andvoxelSideTextureIDshas been populated.
Variables:
atlas: The atlaspack instance.texture: The gl-texture2d instance.voxelSideTextureIDs: ndarray of (blockIndex,side) to texture ID, for ao-mesher or voxel-mesher.voxelSideTextureSizes: ndarray of (blockIndex,side) to lg(texture size), for voxel-mesher.
License
MIT
0.0.1
10 years ago