Skip to content

mikolalysenko/tile-mip-map

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tile-mip-map

Mip map generator for tiled texture atlases.

Example

var fs = require("fs")
var ndarray = require("ndarray")
var savePixels = require("save-pixels")

require("get-pixels")("./painterly.png", function(err, image) {

  //Cut 256x256x4 array into 16x16 tiles of width 16x16x4
  var tilemap = ndarray(image.data,
    [16, 16, 16, 16, 4],
    [16*16*16*4, 16*4, 16*16*4, 4, 1],
    0)
    
  //Compute mip pyramid
  var mipmap = require("tile-mip-map")(tilemap)

  //Save levels to images
  for(var i=0; i<mipmap.length; ++i) {
    var s = mipmap[i].shape
    var x = ndarray(mipmap[i].data, [s[0]*s[2], s[1]*s[3], s[4]])
    savePixels(x, "png").pipe(fs.createWriteStream(i + ".png"))
  }
})

Here is what the different mip levels look like:

0:

1:

2:

3:

4:

Install

npm install tile-mip-map

require("tile-mip-map")(tilemap[, pad])

Constructs a mip pyramid for the given tile map

  • tilemap is a 5d array where the first two dimenions are the number of tiles, the next two are the width of each tile, and the last dimension is the number of channels.
  • pad the number of times to pad each tile by. default 1x

Returns A list of mip pyramids.

Credits

(c) 2013 Mikola Lysenko. MIT License

About

Tiled mip map generator for texture atlases

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published