From e065244ac75d1d0f25fd5c75cb58e714a13fe16b Mon Sep 17 00:00:00 2001 From: Jonathan Duran Date: Wed, 14 Mar 2012 08:59:17 -0700 Subject: Squashed commit of the following: merge master into timeline Signed-off-by: Jonathan Duran --- .../backup-delete/Materials/BumpMetalMaterial.js | 39 +++++++----- .../backup-delete/Materials/DeformMaterial.js | 2 +- .../backup-delete/Materials/FlatMaterial.js | 34 +++++----- .../backup-delete/Materials/FlyMaterial.js | 2 +- .../backup-delete/Materials/JuliaMaterial.js | 2 +- .../Materials/KeleidoscopeMaterial.js | 2 +- .../Materials/LinearGradientMaterial.js | 2 +- .../backup-delete/Materials/MandelMaterial.js | 2 +- .../backup-delete/Materials/PlasmaMaterial.js | 2 +- .../backup-delete/Materials/PulseMaterial.js | 5 +- .../backup-delete/Materials/RadialBlurMaterial.js | 2 +- .../Materials/RadialGradientMaterial.js | 6 +- .../Materials/ReliefTunnelMaterial.js | 2 +- .../Materials/SquareTunnelMaterial.js | 2 +- .../backup-delete/Materials/StarMaterial.js | 2 +- .../backup-delete/Materials/TaperMaterial.js | 4 +- .../backup-delete/Materials/TunnelMaterial.js | 2 +- .../backup-delete/Materials/TwistMaterial.js | 2 +- .../backup-delete/Materials/TwistVertMaterial.js | 2 +- .../backup-delete/Materials/UberMaterial.js | 73 +++++++++++++++++++++- .../backup-delete/Materials/WaterMaterial.js | 4 +- .../backup-delete/Materials/ZInvertMaterial.js | 2 +- 22 files changed, 140 insertions(+), 55 deletions(-) (limited to 'js/helper-classes/backup-delete/Materials') diff --git a/js/helper-classes/backup-delete/Materials/BumpMetalMaterial.js b/js/helper-classes/backup-delete/Materials/BumpMetalMaterial.js index a7a3724e..52332ab8 100755 --- a/js/helper-classes/backup-delete/Materials/BumpMetalMaterial.js +++ b/js/helper-classes/backup-delete/Materials/BumpMetalMaterial.js @@ -65,7 +65,7 @@ function BumpMetalMaterial() this.setProperty = function( prop, value ) { // every material should do something with the "color" property - if (prop === "color") prop = "lightDiff"; + if (prop === "color") return; //prop = "lightDiff"; // make sure we have legitimate imput var ok = this.validateProperty( prop, value ); @@ -97,22 +97,27 @@ function BumpMetalMaterial() this.init = function( world ) { // save the world - if (world) this.setWorld( world ); - - // set up the shader - this._shader = new jshader(); - this._shader.def = bumpMetalMaterialDef; - this._shader.init(); - this._shader.default.u_light0Diff.set( this.getLightDiff() ); - - // set up the material node - this._materialNode = createMaterialNode( this.getShaderName() ); - this._materialNode.setShader(this._shader); - - // set some image maps - this.updateTexture(1); - this.updateTexture(2); - this.updateTexture(3); + if (world) + { + this.setWorld( world ); + + // set up the shader + this._shader = new jshader(); + this._shader.def = bumpMetalMaterialDef; + this._shader.init(); + this._shader.default.u_light0Diff.set( this.getLightDiff() ); + + // set up the material node + this._materialNode = createMaterialNode( this.getShaderName() + "_" + world.generateUniqueNodeID() ); + this._materialNode.setShader(this._shader); + + // set some image maps + this.updateTexture(1); + this.updateTexture(2); + this.updateTexture(3); + } + else + throw new Error( "GLWorld not supplied to material initialization" ); }; this.updateTexture = function( index ) diff --git a/js/helper-classes/backup-delete/Materials/DeformMaterial.js b/js/helper-classes/backup-delete/Materials/DeformMaterial.js index ddc97383..b7101227 100644 --- a/js/helper-classes/backup-delete/Materials/DeformMaterial.js +++ b/js/helper-classes/backup-delete/Materials/DeformMaterial.js @@ -71,7 +71,7 @@ function DeformMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("deformMaterial"); + this._materialNode = createMaterialNode("deformMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; diff --git a/js/helper-classes/backup-delete/Materials/FlatMaterial.js b/js/helper-classes/backup-delete/Materials/FlatMaterial.js index 570e7f9e..eb8970b8 100755 --- a/js/helper-classes/backup-delete/Materials/FlatMaterial.js +++ b/js/helper-classes/backup-delete/Materials/FlatMaterial.js @@ -40,19 +40,27 @@ function FlatMaterial() // duplcate method requirde this.dup = function() { return new FlatMaterial(); } ; - this.init = function() + this.init = function( world ) { - // set up the shader - this._shader = new jshader(); - this._shader.def = flatShaderDef; - this._shader.init(); + // save the world + if (world) + { + this.setWorld( world ); + + // set up the shader + this._shader = new jshader(); + this._shader.def = flatShaderDef; + this._shader.init(); - // set the defaults - this._shader.colorMe.color.set( this.getColor() ); + // set the defaults + this._shader.colorMe.color.set( this.getColor() ); - // set up the material node - this._materialNode = createMaterialNode("flatMaterial"); - this._materialNode.setShader(this._shader); + // set up the material node + this._materialNode = createMaterialNode("flatMaterial_" + world.generateUniqueNodeID() ); + this._materialNode.setShader(this._shader); + } + else + throw new Error( "GLWorld not supplied to material initialization" ); }; @@ -83,11 +91,7 @@ function FlatMaterial() // this function should be overridden by subclasses var exportStr = "material: " + this.getShaderName() + "\n"; exportStr += "name: " + this.getName() + "\n"; - - if (this._shader) - exportStr += "color: " + String(this._shader.colorMe.color) + "\n"; - else - exportStr += "color: " + this.getColor() + "\n"; + exportStr += "color: " + String(this._propValues["color"]) + "\n"; exportStr += "endMaterial\n"; return exportStr; diff --git a/js/helper-classes/backup-delete/Materials/FlyMaterial.js b/js/helper-classes/backup-delete/Materials/FlyMaterial.js index 4a44e2e5..a70b53e8 100644 --- a/js/helper-classes/backup-delete/Materials/FlyMaterial.js +++ b/js/helper-classes/backup-delete/Materials/FlyMaterial.js @@ -71,7 +71,7 @@ function FlyMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("flyMaterial"); + this._materialNode = createMaterialNode("flyMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; diff --git a/js/helper-classes/backup-delete/Materials/JuliaMaterial.js b/js/helper-classes/backup-delete/Materials/JuliaMaterial.js index f95263f4..9b5d588c 100644 --- a/js/helper-classes/backup-delete/Materials/JuliaMaterial.js +++ b/js/helper-classes/backup-delete/Materials/JuliaMaterial.js @@ -73,7 +73,7 @@ function JuliaMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("juliaMaterial"); + this._materialNode = createMaterialNode("juliaMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; diff --git a/js/helper-classes/backup-delete/Materials/KeleidoscopeMaterial.js b/js/helper-classes/backup-delete/Materials/KeleidoscopeMaterial.js index 1547aca9..af7ce97c 100644 --- a/js/helper-classes/backup-delete/Materials/KeleidoscopeMaterial.js +++ b/js/helper-classes/backup-delete/Materials/KeleidoscopeMaterial.js @@ -71,7 +71,7 @@ function KeleidoscopeMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("keleidoscopeMaterial"); + this._materialNode = createMaterialNode("keleidoscopeMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; diff --git a/js/helper-classes/backup-delete/Materials/LinearGradientMaterial.js b/js/helper-classes/backup-delete/Materials/LinearGradientMaterial.js index 7fe2be0c..2f900894 100755 --- a/js/helper-classes/backup-delete/Materials/LinearGradientMaterial.js +++ b/js/helper-classes/backup-delete/Materials/LinearGradientMaterial.js @@ -159,7 +159,7 @@ function LinearGradientMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode( this.getShaderName() ); + this._materialNode = createMaterialNode( this.getShaderName() + world.generateUniqueNodeID() ); this._materialNode.setShader(this._shader); // send the current values to the shader diff --git a/js/helper-classes/backup-delete/Materials/MandelMaterial.js b/js/helper-classes/backup-delete/Materials/MandelMaterial.js index 25b08404..df732ed2 100644 --- a/js/helper-classes/backup-delete/Materials/MandelMaterial.js +++ b/js/helper-classes/backup-delete/Materials/MandelMaterial.js @@ -74,7 +74,7 @@ function MandelMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("mandelMaterial"); + this._materialNode = createMaterialNode("mandelMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; diff --git a/js/helper-classes/backup-delete/Materials/PlasmaMaterial.js b/js/helper-classes/backup-delete/Materials/PlasmaMaterial.js index a65f3a33..4e60df9f 100644 --- a/js/helper-classes/backup-delete/Materials/PlasmaMaterial.js +++ b/js/helper-classes/backup-delete/Materials/PlasmaMaterial.js @@ -74,7 +74,7 @@ function PlasmaMaterial() this.setProperty( "color", [this._time, 0, 0, 1] ); // set up the material node - this._materialNode = createMaterialNode("plasmaMaterial"); + this._materialNode = createMaterialNode("plasmaMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); } diff --git a/js/helper-classes/backup-delete/Materials/PulseMaterial.js b/js/helper-classes/backup-delete/Materials/PulseMaterial.js index d76b9966..e55798b7 100644 --- a/js/helper-classes/backup-delete/Materials/PulseMaterial.js +++ b/js/helper-classes/backup-delete/Materials/PulseMaterial.js @@ -105,7 +105,7 @@ function PulseMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("pulseMaterial"); + this._materialNode = createMaterialNode("pulseMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; @@ -185,6 +185,9 @@ function PulseMaterial() // every material needs the base type and instance name var exportStr = "material: " + this.getShaderName() + "\n"; exportStr += "name: " + this.getName() + "\n"; + + var texMapName = this._propValues[this._propNames[0]]; + exportStr += "texture: " + texMapName + "\n"; // every material needs to terminate like this exportStr += "endMaterial\n"; diff --git a/js/helper-classes/backup-delete/Materials/RadialBlurMaterial.js b/js/helper-classes/backup-delete/Materials/RadialBlurMaterial.js index a5fb134c..471ff3c3 100644 --- a/js/helper-classes/backup-delete/Materials/RadialBlurMaterial.js +++ b/js/helper-classes/backup-delete/Materials/RadialBlurMaterial.js @@ -103,7 +103,7 @@ function RadialBlurMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("radialBlurMaterial"); + this._materialNode = createMaterialNode("radialBlurMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; diff --git a/js/helper-classes/backup-delete/Materials/RadialGradientMaterial.js b/js/helper-classes/backup-delete/Materials/RadialGradientMaterial.js index 12842798..45b260ef 100755 --- a/js/helper-classes/backup-delete/Materials/RadialGradientMaterial.js +++ b/js/helper-classes/backup-delete/Materials/RadialGradientMaterial.js @@ -146,15 +146,17 @@ function RadialGradientMaterial() // duplcate method requirde this.dup = function() { return new RadialGradientMaterial(); } - this.init = function() + this.init = function( world ) { + this.setWorld( world ); + // set up the shader this._shader = new jshader(); this._shader.def = radialGradientMaterialDef; this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("radialGradientMaterial"); + this._materialNode = createMaterialNode("radialGradientMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); // set the shader values in the shader diff --git a/js/helper-classes/backup-delete/Materials/ReliefTunnelMaterial.js b/js/helper-classes/backup-delete/Materials/ReliefTunnelMaterial.js index 6540c3e9..ba938806 100644 --- a/js/helper-classes/backup-delete/Materials/ReliefTunnelMaterial.js +++ b/js/helper-classes/backup-delete/Materials/ReliefTunnelMaterial.js @@ -71,7 +71,7 @@ function ReliefTunnelMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("reliefTunnelMaterial"); + this._materialNode = createMaterialNode("reliefTunnelMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; diff --git a/js/helper-classes/backup-delete/Materials/SquareTunnelMaterial.js b/js/helper-classes/backup-delete/Materials/SquareTunnelMaterial.js index 8238b651..3a8afd18 100644 --- a/js/helper-classes/backup-delete/Materials/SquareTunnelMaterial.js +++ b/js/helper-classes/backup-delete/Materials/SquareTunnelMaterial.js @@ -71,7 +71,7 @@ function SquareTunnelMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("squareTunnelMaterial"); + this._materialNode = createMaterialNode("squareTunnelMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; diff --git a/js/helper-classes/backup-delete/Materials/StarMaterial.js b/js/helper-classes/backup-delete/Materials/StarMaterial.js index a5f188a1..ea8e4edb 100644 --- a/js/helper-classes/backup-delete/Materials/StarMaterial.js +++ b/js/helper-classes/backup-delete/Materials/StarMaterial.js @@ -71,7 +71,7 @@ function StarMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("starMaterial"); + this._materialNode = createMaterialNode("starMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; diff --git a/js/helper-classes/backup-delete/Materials/TaperMaterial.js b/js/helper-classes/backup-delete/Materials/TaperMaterial.js index e8cc7a49..eea3f699 100644 --- a/js/helper-classes/backup-delete/Materials/TaperMaterial.js +++ b/js/helper-classes/backup-delete/Materials/TaperMaterial.js @@ -42,7 +42,7 @@ function TaperMaterial() // duplcate method requirde this.dup = function() { return new TaperMaterial(); } - this.init = function() + this.init = function( world ) { // set up the shader this._shader = new jshader(); @@ -53,7 +53,7 @@ function TaperMaterial() this._shader.colorMe.color.set( this.getColor() ); // set up the material node - this._materialNode = createMaterialNode("taperMaterial"); + this._materialNode = createMaterialNode("taperMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); // initialize the taper properties diff --git a/js/helper-classes/backup-delete/Materials/TunnelMaterial.js b/js/helper-classes/backup-delete/Materials/TunnelMaterial.js index 853a6a8d..ab69fec0 100644 --- a/js/helper-classes/backup-delete/Materials/TunnelMaterial.js +++ b/js/helper-classes/backup-delete/Materials/TunnelMaterial.js @@ -71,7 +71,7 @@ function TunnelMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("tunnelMaterial"); + this._materialNode = createMaterialNode("tunnelMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; diff --git a/js/helper-classes/backup-delete/Materials/TwistMaterial.js b/js/helper-classes/backup-delete/Materials/TwistMaterial.js index b113965b..a52440e9 100644 --- a/js/helper-classes/backup-delete/Materials/TwistMaterial.js +++ b/js/helper-classes/backup-delete/Materials/TwistMaterial.js @@ -71,7 +71,7 @@ function TwistMaterial() this._shader.init(); // set up the material node - this._materialNode = createMaterialNode("twistMaterial"); + this._materialNode = createMaterialNode("twistMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); this._time = 0; diff --git a/js/helper-classes/backup-delete/Materials/TwistVertMaterial.js b/js/helper-classes/backup-delete/Materials/TwistVertMaterial.js index 853e895c..dd49555c 100644 --- a/js/helper-classes/backup-delete/Materials/TwistVertMaterial.js +++ b/js/helper-classes/backup-delete/Materials/TwistVertMaterial.js @@ -57,7 +57,7 @@ function TwistVertMaterial() this._shader.twistMe.color.set( this.getColor() ); // set up the material node - this._materialNode = createMaterialNode("twistVertMaterial"); + this._materialNode = createMaterialNode("twistVertMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); // initialize the twist vert properties diff --git a/js/helper-classes/backup-delete/Materials/UberMaterial.js b/js/helper-classes/backup-delete/Materials/UberMaterial.js index c7855c95..1652b4c9 100755 --- a/js/helper-classes/backup-delete/Materials/UberMaterial.js +++ b/js/helper-classes/backup-delete/Materials/UberMaterial.js @@ -30,6 +30,8 @@ function UberMaterial() this._specularPower = 32.0; this._environmentAmount = 0.2; // 0 .. 1 + this._MAX_LIGHTS = 4; + // set the default maps this._diffuseMapOb = { 'texture' : 'assets/images/rocky-diffuse.jpg', 'wrap' : 'REPEAT' }; this._normalMapOb = { 'texture' : 'assets/images/rocky-normal.jpg', 'wrap' : 'REPEAT' }; @@ -424,10 +426,79 @@ function UberMaterial() this._shader = this.buildUberShader( this._ubershaderCaps ); // set up the material node - this._materialNode = createMaterialNode("uberMaterial"); + this._materialNode = createMaterialNode("uberMaterial_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); }; + this.import = function( importStr ) + { + // limit the key searches to this material + var endKey = "endMaterial\n"; + var index = importStr.indexOf( endKey ); + index += endKey.length; + importStr = importStr.substr( index ); + } + + this.export = function() + { + // every material needs the base type and instance name + var exportStr = "material: " + this.getShaderName() + "\n"; + exportStr += "name: " + this.getName() + "\n"; + + var caps = this._ubershaderCaps; + + // export the material properties + if (typeof caps.material != 'undefined') + { + exportStr += "material: true\n"; + exportStr += "ambientColor: " + caps.material.ambientColor + "\n"; + exportStr += "diffuseColor: " + caps.material.diffuseColor + "\n"; + exportStr += "specularColor: " + caps.material.specularColor + "\n"; + exportStr += "specularPower: " + caps.material.specularPower + "\n"; + } + + if (typeof caps.lighting != 'undefined') + { + var light = caps.lighting['light' + i]; + var t; + for (var i=0; i