From d4ca478ad313c6c20834e410ba14ad3a5e7b20bf Mon Sep 17 00:00:00 2001 From: hwc487 Date: Tue, 12 Jun 2012 10:28:26 -0700 Subject: Material cleanup & bug fixes. --- js/lib/rdge/materials/plasma-material.js | 109 ++----------------------------- 1 file changed, 7 insertions(+), 102 deletions(-) (limited to 'js/lib/rdge/materials/plasma-material.js') diff --git a/js/lib/rdge/materials/plasma-material.js b/js/lib/rdge/materials/plasma-material.js index 1db207d6..c1e5524c 100644 --- a/js/lib/rdge/materials/plasma-material.js +++ b/js/lib/rdge/materials/plasma-material.js @@ -24,7 +24,7 @@ var PlasmaMaterial = function PlasmaMaterial() { /////////////////////////////////////////////////////////////////////// // Properties /////////////////////////////////////////////////////////////////////// - this._propNames = ["wave", "wave1", "wave2", "speed"]; + this._propNames = ["u_wave", "u_wave1", "u_wave2", "u_speed"]; this._propLabels = ["Wave", "Wave 1", "Wave 2", "Speed"]; this._propTypes = ["float", "float", "float", "float"]; @@ -39,68 +39,17 @@ var PlasmaMaterial = function PlasmaMaterial() { // Property Accessors /////////////////////////////////////////////////////////////////////// this.getShaderName = function() { return this._shaderName; }; - this.isAnimated = function() { return true; }; + this.getShaderDef = function() { return plasmaShaderDef; }; /////////////////////////////////////////////////////////////////////// // Material Property Accessors /////////////////////////////////////////////////////////////////////// - // duplcate method requirde - this.dup = function (world) { - // get the current values; - var propNames = [], propValues = [], propTypes = [], propLabels = []; - this.getAllProperties(propNames, propValues, propTypes, propLabels); - - // allocate a new material - var newMat = new PlasmaMaterial(); - - // copy over the current values; - var n = propNames.length; - for (var i = 0; i < n; i++) - newMat.setProperty(propNames[i], propValues[i]); - - return newMat; - }; - - this.setProperty = function( prop, value ) - { - // make sure we have legitimate imput - var ok = this.validateProperty( prop, value ); - if (!ok) { - console.log( "invalid property in Water Material:" + prop + " : " + value ); - } - - switch (prop) - { - case "wave": - this._wave = value; - break; - - case "wave1": - this._wave1 = value; - break; - - case "wave2": - this._wave2 = value; - break; - - case "speed": - this._speed = value; - break; - } - - this.updateParameters(); - }; - - /////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// // Methods /////////////////////////////////////////////////////////////////////// // duplcate method requirde - this.dup = function() { - return new PlasmaMaterial(); - }; this.init = function( world) { @@ -114,67 +63,23 @@ var PlasmaMaterial = function PlasmaMaterial() { // set the default value this._time = 0; this._shader['default'].u_time.set( [this._time] ); - this._shader['default'].u_speed.set( [this._speed] ); - - this._shader['default'].u_wave.set( [this._wave] ); - this._shader['default'].u_wave1.set( [this._wave1] ); - this._shader['default'].u_wave2.set( [this._wave2] ); // set up the material node this._materialNode = RDGE.createMaterialNode("plasmaMaterial" + "_" + world.generateUniqueNodeID()); this._materialNode.setShader(this._shader); - }; - this.updateParameters = function() - { - this._propValues[ this._propNames[0] ] = this._wave; - this._propValues[ this._propNames[1] ] = this._wave1; - this._propValues[ this._propNames[2] ] = this._wave2; - this._propValues[ this._propNames[3] ] = this._speed; - - var material = this._materialNode; - if (material) { - var technique = material.shaderProgram['default']; - var renderer = RDGE.globals.engine.getContext().renderer; - if (renderer && technique) { - technique.u_wave.set( [this._wave] ); - technique.u_wave1.set( [this._wave1] ); - technique.u_wave2.set( [this._wave2] ); - technique.u_speed.set( [this._speed] ); - } + this._time = 0; + if (this._shader && this._shader['default']) { + this._shader['default'].u_time.set( [this._time] ); } + + this.setShaderValues(); }; this.update = function( time ) { this._shader['default'].u_time.set( [this._time] ); this._time += this._dTime; }; - - this.exportJSON = function() - { - var jObj = - { - 'material' : this.getShaderName(), - 'name' : this.getName(), - 'speed' : this._speed, - 'dTime' : this._dTime, - 'wave' : this._wave, - 'wave1' : this._wave1, - 'wave2' : this._wave2 - }; - - return jObj; - }; - - this.importJSON = function( jObj ) - { - this._speed = jObj.speed; - this._dTime = jObj.dTime; - - this._wave = jObj.wave; - this._wave1 = jObj.wave1; - this._wave2 = jObj.wave2; - }; }; /////////////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3