Added cube vbos and ids.
1.1 --- a/scripts/cube.js Wed Apr 27 15:13:34 2011 +0200
1.2 +++ b/scripts/cube.js Fri Apr 29 17:10:15 2011 +0200
1.3 @@ -20,8 +20,7 @@
1.4 for (var id in this.children) this.children[id].update(time);
1.5 }
1.6
1.7 -
1.8 -function Cube(size, context)
1.9 +function CubeVbo(size, context)
1.10 {
1.11 var gl = context.gl;
1.12 this.size = size || 1;
1.13 @@ -138,4 +137,11 @@
1.14 gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STATIC_DRAW);
1.15 this.indexBuffer.itemSize = 1;
1.16 this.indexBuffer.numItems = 36;
1.17 +}
1.18 +
1.19 +var id = 0;
1.20 +function Cube(vbo)
1.21 +{
1.22 + this.id = id++;
1.23 + this.vbo = vbo;
1.24 }
1.25 \ No newline at end of file
2.1 --- a/scripts/machine.js Wed Apr 27 15:13:34 2011 +0200
2.2 +++ b/scripts/machine.js Fri Apr 29 17:10:15 2011 +0200
2.3 @@ -22,7 +22,7 @@
2.4 context.expand();
2.5 var gl = context.gl;
2.6 var scene = createScene(context);
2.7 - gl.clearColor(0.05, 0.05, 0.05, 1.0);
2.8 + gl.clearColor(0.00, 0.0, 0.0, 1.0);
2.9 gl.enable(gl.DEPTH_TEST);
2.10 machine = new Machine(scene);
2.11 camera = new Camera(cameraSpeed, [0, 0, 20]);
2.12 @@ -42,15 +42,15 @@
2.13 function createScene(context)
2.14 {
2.15 var size = 1;
2.16 - var cube = new Cube(size, context);
2.17 - var scene = new Node([0, 0, 0], [0, 0, 0], cube);
2.18 + var vbo = new CubeVbo(size, context);
2.19 + var scene = new Node([0, 0, 0], [0, 0, 0], new Cube(vbo));
2.20 var dim = 10;
2.21 var d = size * 4;
2.22 for (var x = 0; x < dim; x += 1) {
2.23 for (var y = 0; y < dim; y += 1) {
2.24 for (var z = 0; z < dim; z += 1) {
2.25 var pos = [x * d - dim * d / 2, y * d - dim * d / 2, -z * d];
2.26 - scene.children.push(new Node(pos, [0, 0, 0], cube));
2.27 + scene.children.push(new Node(pos, [0, 0, 0], new Cube(vbo)));
2.28 }
2.29 }
2.30 }
3.1 --- a/scripts/renderer.js Wed Apr 27 15:13:34 2011 +0200
3.2 +++ b/scripts/renderer.js Fri Apr 29 17:10:15 2011 +0200
3.3 @@ -131,7 +131,7 @@
3.4
3.5 var lighting = true;
3.6 gl.uniform1i(shader.useLightingUniform, lighting);
3.7 - gl.uniform1f(shader.materialShininessUniform, 25.0);
3.8 + gl.uniform1f(shader.materialShininessUniform, 20.0);
3.9
3.10 if (lighting)
3.11 {
3.12 @@ -140,9 +140,9 @@
3.13
3.14 var pos = [0, 0, 0];
3.15 gl.uniform3f(shader.pointLightingLocationUniform, pos[0], pos[1], pos[2]);
3.16 - uni = .5;
3.17 + uni = 1.0;
3.18 gl.uniform3f(shader.pointLightingSpecularColourUniform, uni, uni, uni);
3.19 - uni = .1;
3.20 + uni = .05;
3.21 gl.uniform3f(shader.pointLightingDiffuseColourUniform, uni, uni, uni);
3.22
3.23 // var lightingDir = vec3.create();
3.24 @@ -175,9 +175,10 @@
3.25 mat4.translate(mvMatrix, node.pos);
3.26 //mat4.rotate(mvMatrix, node.rot);
3.27 //mat4.multiply(mvMatrix, node.matrix);
3.28 - var object = node.geometry;
3.29 - if (object)
3.30 + var geometry = node.geometry;
3.31 + if (geometry)
3.32 {
3.33 + var object = geometry.vbo;
3.34 gl.bindBuffer(gl.ARRAY_BUFFER, object.positionBuffer);
3.35 gl.vertexAttribPointer(shader.vertexPosition, object.positionBuffer.itemSize, gl.FLOAT, false, 0, 0);
3.36