UNPKG

raymarch

Version:

Volume ray marching renderer

71 lines (50 loc) 1.48 kB
raymarch ======== A basic ray marching volume rendering module. Install ======= npm install raymarch Example ======= [View this demo in your browser right now](http://mikolalysenko.github.io/raymarch/) ```javascript var createVolumeRenderer = require("raymarch") var shell = require("gl-now")() var camera = require("game-shell-orbit-camera")(shell) var glm = require("gl-matrix") var voxelize = require("voxelize") var bunny = require("bunny") var ops = require("ndarray-ops") camera.lookAt([3,0,0], [0,0,0], [0,1,0]) var viewer shell.on("gl-init", function() { var voxels = voxelize(bunny.cells, bunny.positions, 0.1).voxels ops.mulseq(voxels, 255) viewer = createVolumeRenderer(shell.gl, voxels) }) shell.on("gl-render", function() { viewer.projection = glm.mat4.perspective(new Float32Array(16), Math.PI/4.0, shell.width/shell.height, 0.01, 1000.0) viewer.view = camera.view() viewer.draw() }) ``` # API ```javascript var createVolumeViewer = require("raymarch") ``` ## Constructor ### `viewer = createVolumeViewer(gl, array)` Creates a volume viewer object ## Methods ### `viewer.model` The current model matrix for the viewer ### `viewer.view` The current view matrix for the viewer ### `viewer.projection` The current projection matrix for the viewer ### `viewer.draw()` Draws the current volume to the screen ### `viewer.dispose()` Releases all resources associated with this viewer. # Credits (c) 2013 Mikola Lysenko. MIT License