Protolib
by jamesaustin
HTML
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/debug.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/webgl/turbulenzengine.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/webgl/graphicsdevice.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/webgl/inputdevice.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/webgl/sounddevice.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/aabbtree.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/assettracker.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/camera.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/draw2d.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/effectmanager.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/fontmanager.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/forwardrendering.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/geometry.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/indexbuffermanager.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/light.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/loadingscreen.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/material.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/observer.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/renderingcommon.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/requesthandler.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/resourceloader.js"></script>
<script src="http://turbulenz.github.io/turbulenz_jslib/jslib/scene.js"></script>
<script...
JavaScript
TurbulenzEngine = WebGLTurbulenzEngine.create({
canvas: document.getElementById("canvas")
});
var mathDevice = null;
var mesh = null;
var rotationMatrix = null;
var rotationAngleMatrix = null;
var assetPrefix = 'http://www.corsproxy.com/jamesaustin.github.io/jsfiddle-assets/protolib-sample/';
// Checkout Protolib documentation:
// http://docs.turbulenz.com/protolib/protolib_api.html
var protolib = Protolib.create({
onInitialized: function onIntializedFn(protolib)
{
mathDevice = protolib.getMathDevice();
protolib.setCameraPosition(mathDevice.v3Build(0, 2, -2));
protolib.setCameraDirection(mathDevice.v3Build(0, -0.5, 1));
protolib.setAmbientLightColor(mathDevice.v3Build(0.4, 0.4, 0.4));
protolib.setClearColor(mathDevice.v3Build(0.1, 0.1, 0.3));
protolib.addPointLight({
v3Position: mathDevice.v3Build(-4, 8, -4),
v3Color: mathDevice.v3Build(1, 1, 1),
radius: 20
});
// Floor
whiteFloor = protolib.loadMesh({
mesh: 'models/white_cube.dae',
v3Size: mathDevice.v3Build(60, 0.1, 60),
v3Position: mathDevice.v3Build(0, -0.5, 0)
});
// Model
mesh = protolib.loadMesh({
mesh: "models/duck.dae"
});
rotationMatrix = mathDevice.m43BuildIdentity();
rotationAngleMatrix = mathDevice.m43BuildIdentity();
mathDevice.m43SetAxisRotation(rotationAngleMatrix,
mathDevice.v3Build(0, 1, 0),
(Math.PI * 2) / 360);
},
defaultMappingSettings: {
mappingTablePrefix: assetPrefix + 'staticmax/',
assetPrefix: 'missing/',
mappingTableURL: assetPrefix + 'mapping_table.json',
urnMapping: {}
},
enableDynamicUI: false
});
function update() {
if (protolib.beginFrame())
{
if (mesh)
{
...