A plugin for visualising Depthkit volumteric captures using Three.js in WebGL. The plugin requires Three.js and a Depthkit combined-per-pixel video export.
npm install
to install all dependcies.npm run start
to start an http server.localhost:8080
. If the server is running, you should see a list view of the files and folders in your directory.http://localhost:8080/examples/simple.html
.simple.html
, find the depthkit.load()
call on line 98, and replace the TXT and MP4 references with the location and filename of your own asset. Save the page and refresh.Include depthkit.js
or depthkit.min.js
after loading three.js
in your project.
var depthkit = new DepthKit();
depthkit.load(
"myClip.txt",
"myClip.mp4",
character => {
scene.add(character);
}
);
Where the first and second arguments are the path to the metadata file and the combined-per-pixel video exported by Depthkit. The third argument is a callback that is passed a THREE.Object3D object representing the Depthkit character.
Calling new DepthKit()
returns an object that has the neccesery methods to control the playback and rendering of the character
depthkit.play()
- Play the video
depthkit.pause()
- Pause the video
depthkit.stop()
- Stop and rewind to begining
depthkit.setLoop(isLooping)
- Set loop to true or false
depthkit.setVolume(volume)
- Change the volume of the audio
depthkit.setOpacity(opacity)
- Change opacity
depthkit.dispose()
npm install
npm run start
uses concurrently
to start an http-server
and to run watchify
and bundle on every change to build/depthkit.js
npm run build
to bundle and minify to build/depthkit.min.js
The Depthkit.js plugin was developed for Tzina: A Symphony of Longing and ported with permission from Scatter's Unity Depthkit Plugin.
Recently, Depthkit has been updated to support multiple perspectives (Depthkit Studio), slightly altering the structure of assets exported out of Depthkit, and breaking compatibility with Depthkit.js.
Single-perspective Depthkit assets from Depthkit Core and Depthkit Cinema can be modified to the older structure to make them compatible with Depthkit.js using the following steps:
"numAngles"
and "perspectives"
objects.
"numAngles": 1
, line."perspectives"
array in brackets []
, you’ll find an unnamed object in curly braces {}
. "perspectives" [ {
preceding the contents of the object, and the } ]
following it. "clipEpsilon"
and "crop"
objects, and ending with the "farClip"
and "nearClip"
and their values, are now elevated to the same level as the other objects in the metadata.
Originally written by @mrdoob and @obviousjim ported and modified by @juniorxsound and @avnerus. Special thank you to Shirin Anlen and all the Tzina crew, @ZEEEVE, @jhclaura