aboutsummaryrefslogtreecommitdiff
path: root/js/lib/rdge/materials/bump-metal-material.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/lib/rdge/materials/bump-metal-material.js')
-rwxr-xr-xjs/lib/rdge/materials/bump-metal-material.js35
1 files changed, 32 insertions, 3 deletions
diff --git a/js/lib/rdge/materials/bump-metal-material.js b/js/lib/rdge/materials/bump-metal-material.js
index 2ef83227..a3ef9d37 100755
--- a/js/lib/rdge/materials/bump-metal-material.js
+++ b/js/lib/rdge/materials/bump-metal-material.js
@@ -6,6 +6,8 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
6 6
7var MaterialParser = require("js/lib/rdge/materials/material-parser").MaterialParser; 7var MaterialParser = require("js/lib/rdge/materials/material-parser").MaterialParser;
8var Material = require("js/lib/rdge/materials/material").Material; 8var Material = require("js/lib/rdge/materials/material").Material;
9var Texture = require("js/lib/rdge/texture").Texture;
10
9/////////////////////////////////////////////////////////////////////// 11///////////////////////////////////////////////////////////////////////
10// Class GLMaterial 12// Class GLMaterial
11// RDGE representation of a material. 13// RDGE representation of a material.
@@ -18,8 +20,13 @@ var BumpMetalMaterial = function BumpMetalMaterial() {
18 this._shaderName = "bumpMetal"; 20 this._shaderName = "bumpMetal";
19 21
20 this._lightDiff = [0.3, 0.3, 0.3, 1.0]; 22 this._lightDiff = [0.3, 0.3, 0.3, 1.0];
21 this._diffuseTexture = "assets/images/metal.png"; 23
22 this._specularTexture = "assets/images/silver.png"; 24 //this._diffuseTexture = "assets/images/metal.png";
25 this._diffuseTexture = "texture";
26 this._diffuseWorld = null; // the world that the texture is derived from (if there is one).
27 this._diffuseTextureObj = null;
28
29 this._specularTexture = "assets/images/silver.png";
23 this._normalTexture = "assets/images/normalMap.png"; 30 this._normalTexture = "assets/images/normalMap.png";
24 31
25 /////////////////////////////////////////////////////////////////////// 32 ///////////////////////////////////////////////////////////////////////
@@ -119,12 +126,30 @@ var BumpMetalMaterial = function BumpMetalMaterial() {
119 this._materialNode = createMaterialNode( this.getShaderName() + "_" + world.generateUniqueNodeID() ); 126 this._materialNode = createMaterialNode( this.getShaderName() + "_" + world.generateUniqueNodeID() );
120 this._materialNode.setShader(this._shader); 127 this._materialNode.setShader(this._shader);
121 128
129 // DEBUG CODE
130 this.initWorldTextures();
131
122 // set some image maps 132 // set some image maps
123 this.updateTexture(1); 133 this.updateTexture(1);
124 this.updateTexture(2); 134 this.updateTexture(2);
125 this.updateTexture(3); 135 this.updateTexture(3);
126 }; 136 };
127 137
138 this.initWorldTextures = function()
139 {
140 // find the world with the given id
141 var viewUtils = require("js/helper-classes/3D/view-utils").ViewUtils;
142 var root = viewUtils.application.ninja.currentDocument.documentRoot;
143 this._diffuseWorld = this.findWorld( this._diffuseTexture, root );
144 if (this._diffuseWorld)
145 {
146 var world = this.getWorld();
147 var tex = new Texture( world );
148 this._diffuseTextureObj = tex;
149 tex.loadFromCanvas( this._diffuseWorld.getCanvas() );
150 }
151 }
152
128 this.updateTexture = function( index ) 153 this.updateTexture = function( index )
129 { 154 {
130 var material = this._materialNode; 155 var material = this._materialNode;
@@ -136,7 +161,11 @@ var BumpMetalMaterial = function BumpMetalMaterial() {
136 { 161 {
137 var texMapName = this._propValues[this._propNames[index]]; 162 var texMapName = this._propValues[this._propNames[index]];
138 var wrap = 'REPEAT', mips = true; 163 var wrap = 'REPEAT', mips = true;
139 var tex = this.loadTexture( texMapName, wrap, mips ); 164 var tex;
165 if ((index === 1) && this._diffuseTextureObj)
166 tex = this._diffuseTextureObj.getTexture();
167 else
168 tex = this.loadTexture( texMapName, wrap, mips );
140 169
141 if (tex) 170 if (tex)
142 { 171 {