3
<title>Bullet/WebGL Demo</title>
4
<script type="text/javascript" src="glge_math.js"></script>
5
<script type="text/javascript" src="glge.js"></script>
6
<script type="text/javascript" src="bullet.js"></script>
7
<script ty[e="text/javascript" src="bullet_demo.js"></script>
8
<style type="text/css">
9
body { background-color: #eee; }
14
<form onsubmit="run([]); prepareBulletDemo(); return false">
15
<input type="submit" value="restart">
18
<canvas id="canvas" width="500" height="500"></canvas>
19
<script type="text/javascript">
20
var doc = new GLGE.Document();
22
doc.onLoad = function() {
27
function simulatePhysics(diff) {
28
simulateBulletDemo(diff);
29
for (var i = 0; i < 5; i++)
30
applyBulletObject(boxes[i], readBulletObject(i+1));
33
var renderer = new GLGE.Renderer(document.getElementById("canvas"));
34
var scene = doc.getElement("mainscene");
35
renderer.setScene(scene);
37
var mesh = doc.getElement("Box");
38
for (var i = 0; i < 5; i++) {
39
var box = new GLGE.Object('box_' + i);
41
box.setMaterial(doc.getElement("boxmaterial"+(i+1)));
42
box.setId('box_' + i);
43
box.setLoc(i*2, 10, 0);
44
box.setScale(1, 1, 1);
51
var diffs = 0, num = 0;
54
var diff = (now - t)/1000;
57
simulatePhysics(diff);
65
if (now - lastHUD > 250) {
66
document.getElementById('out').innerHTML = '<b>FPS:' + Math.ceil(1/(diffs/num)) + '</b>';
74
setInterval(render, 1000/100);
77
doc.load("http://127.0.0.1:8991/scene.xml");
80
<div id="out">waka</div>
82
<b>Bullet/WebGL Demo</b>: The <a href="http://www.bulletphysics.com">Bullet physics engine</a>, compiled from C++ to JavaScript using <a href="http://emscripten.org">Emscripten</a>, with rendering by <a href="http://glge.org">GLGE</a> using WebGL.
84
Tested with Firefox 4 nightly builds (minefield) and Chrome 7 (requires --enable-webgl on the commandline); should work with any
85
<a href="http://www.khronos.org/webgl/wiki/Getting_a_WebGL_Implementation">browser that supports WebGL</a>