@@ -6,6 +6,7 @@ var Render = require('./LightLayerRender');
66var Light = require ( './Light' ) ;
77var SpriteNormalPair = require ( './SpriteNormalPair' ) ;
88var WebGLSupportedExtensions = require ( '../../renderer/webgl/WebGLSupportedExtensions' ) ;
9+ var TexturedAndNormalizedTintedShader = require ( '../../renderer/webgl/shaders/TexturedAndNormalizedTintedShader' ) ;
910var Const = require ( './Const' ) ;
1011
1112var LightLayer = new Class ( {
@@ -51,29 +52,7 @@ var LightLayer = new Class({
5152 if ( resourceManager !== undefined && ! this . deferred )
5253 {
5354 this . gl = scene . game . renderer . gl ;
54- this . passShader = resourceManager . createShader ( 'Phong2DShaderForward' , { vert : `
55- precision mediump float;
56-
57- uniform mat4 uProjection;
58-
59- attribute vec2 vertPosition;
60- attribute vec2 vertTexCoord;
61- attribute vec3 vertColor;
62- attribute float vertAlpha;
63-
64- varying vec2 fragTexCoord;
65- varying vec3 fragColor;
66- varying float fragAlpha;
67-
68- void main()
69- {
70- fragTexCoord = vertTexCoord;
71- fragColor = vertColor;
72- fragAlpha = vertAlpha;
73-
74- gl_Position = uProjection * vec4(vertPosition, 0.0, 1.0);
75- }
76- ` , frag : `
55+ this . passShader = resourceManager . createShader ( 'Phong2DShaderForward' , { vert : TexturedAndNormalizedTintedShader . vert , frag : `
7756 precision mediump float;
7857
7958 struct Light
@@ -88,17 +67,29 @@ var LightLayer = new Class({
8867 uniform vec3 uAmbientLightColor;
8968 uniform Light uLights[` + Const . MAX_LIGHTS + `];
9069
91- varying vec2 fragTexCoord ;
92- varying vec3 fragColor ;
93- varying float fragAlpha ;
70+ varying vec2 v_tex_coord ;
71+ varying vec3 v_color ;
72+ varying float v_alpha ;
9473
9574 void main()
9675 {
9776 /* Just Pass through for now */
98- gl_FragColor = texture2D(uMainTexture, fragTexCoord) * vec4(fragColor, fragAlpha);
77+ vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);
78+ vec4 normal = texture2D(uNormTexture, v_tex_coord);
79+ vec4 color = texture2D(uMainTexture, v_tex_coord);
80+
81+ finalColor = color * normal;
82+
83+ gl_FragColor = finalColor * vec4(v_color, v_alpha);
9984 }
10085 ` } ) ;
10186 this . ambientLightColorLoc = this . passShader . getUniformLocation ( 'uAmbientLightColor' ) ;
87+ this . uMainTextureLoc = this . passShader . getUniformLocation ( 'uMainTexture' ) ;
88+ this . uNormTextureLoc = this . passShader . getUniformLocation ( 'uNormTexture' ) ;
89+
90+ this . passShader . setConstantInt1 ( this . uMainTextureLoc , 0 ) ;
91+ this . passShader . setConstantInt1 ( this . uNormTextureLoc , 1 ) ;
92+
10293 for ( var index = 0 ; index < Const . MAX_LIGHTS ; ++ index )
10394 {
10495 this . lightsLocations [ index ] = {
@@ -135,6 +126,7 @@ var LightLayer = new Class({
135126 {
136127 spriteNormalPair = new SpriteNormalPair ( sprite , normalTexture ) ;
137128 }
129+ this . scene . sys . displayList . remove ( sprite ) ;
138130 this . sprites . push ( spriteNormalPair ) ;
139131 } ,
140132
0 commit comments