voxel / voxel-mesher

voxel mesher with ambient occulusion, transparency, translucency, custom block models
MIT License
21 stars 2 forks source link

voxel-mesher

A voxel mesher for ndarrays that handles ambient occlusion and transparency.

Based on @mikolalysenko's ao-mesher

Build Status

Install

npm install voxel-mesher

Load with voxel-plugins

API

var mesher = game.plugins.get('voxel-mesher');

var mesh = mesher.createVoxelMesh(voxels, voxelSideTextureIDs, voxelSideTextureSizes, position, pad)

Constructs a mesh for voxels.

Returns a typed array encoding the mesh, or else null if there were no facets. This is in the same format that voxel-shader expects:

{
    vertexArrayObjects: {surface: ..., porous: ...},
    center: [x, y, z],
    radius: w,
    modelMatrix: mat4
}

Other plugins can add their own VAOs to vertexArrayObjects, by listening for the meshed event:

mesher.on('meshed', function(result, gl, vert_data, voxels) {
    result.vertexArrayObjects.myVAO = ...
});

This event is used by voxel-wireframe and voxel-chunkborder.

Voxel types

voxel-registry is used to lookup voxel information for meshing, the following properties are supported:

These properties determines the voxel type and how they are meshed:

Credits

(c) 2013 Mikola Lysenko, (c) 2014-2015 deathcap. MIT License