voxel-glslgen
Push voxel terrain generation to the GPU using a GLSL shader. This is just a WIP and an experiment with offloading computation to a shader, so no guarantees that it is actually faster than vanilla JavaScript - but feel free to submit a Pull Request with performance/API improvements.
Installation
npm install voxel-glslgen
Usage
glslgen(shader, [options], [setup])
Takes a string fragment shader and returns a generate function.
var createGame =glslgen =var
The module exposes two GLSL functions:
vec3 voxelPosition()
- returns the x,y,z coordinates of the current voxel.void voxelBlock(n)
- set the voxel block index.
You can also pass the following parameters to the options
object:
cacheSize
: Amount of chunks to store at any one time. Defaults to 4.chunkSize
: The size of each chunk in voxels - defaults togame.chunkSize
and limited to a maximum of 32.
The setup
argument is a callback which supplies the shader used by the
generator. You can use this if you want to extend the shader somehow.