A volumetric terrain engine for WebGL. This engine has been created in the context of a Master's degree project at the University of Applied Sciences Brandenburg in cooperation with the Norwegian University of Technology and Science.
Extensive Demo ∴ Performance ∴ Volume Editor ∴ API Reference ∴ Master's Thesis
npm install rabbit-hole
Please refer to the usage example of three.js for information about how to setup the renderer, scene and camera.
import { Terrain } from "rabbit-hole";
const terrain = new Terrain();
scene.add(terrain.object);
(function render() {
requestAnimationFrame(render);
terrain.update(camera);
renderer.render(scene, camera);
}());
import { SuperPrimitive, SuperPrimitivePreset } from "rabbit-hole";
const a = SuperPrimitive.create(SuperPrimitivePreset.SPHERE);
const b = SuperPrimitive.create(SuperPrimitivePreset.TORUS);
const c = SuperPrimitive.create(SuperPrimitivePreset.CUBE);
terrain.union(a);
terrain.subtract(b.intersect(c).subtract(a));
terrain.intersect(c.subtract(a.union(b)));
- Multithreading
- Level of Detail
- Tri-Planar Texture Mapping
- Real-time volume construction and destruction
Please refer to the contribution guidelines.