generate a three.js mesh from voxel data
npm install voxel-meshgenerate a three.js mesh from voxel data. extracted from some code by @mikolalysenko
- original repo: https://github.com/mikolalysenko/mikolalysenko.github.com/tree/master/MinecraftMeshes2
- blog post: http://0fps.wordpress.com/2012/07/07/meshing-minecraft-part-2/
- webgl demo: http://mikolalysenko.github.com/MinecraftMeshes2/
use voxel-mesh-browserified.js
or to build yourself:
```
npm install voxel-mesh
npm install browserify -g
browserify -r voxel-mesh > voxel-mesh-browserified.js
where low and high are [x, y, z] start and end positions to iterate over and iterator is the function that visits each voxel
returns an object like this: { "voxels": "a 1D Int32Array filled with voxel data", "dims": [x, y, z] }
example that creates randomly colored voxels:
`javascript`
require('voxel').generate([0,0,0], [16,16,16], function(x,y,z) {
return Math.round(Math.random() * 0xffffff)
})
a sphere:
`javascript`
require('voxel').generate([0,0,0], [32,32,32], function(x,y,z) {
return xx+yy+zz <= 1616 ? 0x113344 : 0
})
using the included generator functions:
`javascript`
var voxel = require('voxel')
voxel.generate([0,0,0], [32,32,32], voxel.generator['Hilly Terrain'])
// or
voxel.geometry['Hilly Terrain'] // pre-generated at some specific example size
meshers is an object with stupid, culled, monotone and greedy mesher functions. you probably want to just use greedy. all mesher functions accept voxel data in the format the gets returned by the generate` function.
an object that contains a bunch of voxel generation functions to play with, from http://mikolalysenko.github.com/MinecraftMeshes2/
returns an object that contains a bunch of pre-generated voxel geometries to play with, from http://mikolalysenko.github.com/MinecraftMeshes2/
MIT