Skip to content

Commit 7fe23d9

Browse files
committed
Split Forward and Deferred max counts up.
1 parent 5a939da commit 7fe23d9

3 files changed

Lines changed: 25 additions & 23 deletions

File tree

v3/src/checksum.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
var CHECKSUM = {
2-
build: '382f15a0-80e7-11e7-8972-194766e6f4cf'
2+
build: 'eb7dc200-8100-11e7-b353-1b576d4fdd2c'
33
};
44
module.exports = CHECKSUM;
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
module.exports = {
2-
MAX_LIGHTS: 10
3-
};
2+
3+
MAX_LIGHTS: 10,
4+
DEFERRED_MAX_LIGHTS: 100
5+
6+
};

v3/src/gameobjects/lightlayer/LightLayer.js

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ var LightLayer = new Class({
3434
GameObject.call(this, scene, 'LightLayer');
3535

3636
var resourceManager = scene.game.renderer.resourceManager;
37-
var deferred = WebGLSupportedExtensions.has('WEBGL_draw_buffers');
37+
this._isDeferred = WebGLSupportedExtensions.has('WEBGL_draw_buffers');
3838

3939
this.renderer = scene.game.renderer;
4040
this.passShader = null;
@@ -49,7 +49,7 @@ var LightLayer = new Class({
4949
this.lightsLocations = [];
5050
this._z = 0;
5151

52-
if (resourceManager !== undefined && !deferred)
52+
if (resourceManager !== undefined && !this._isDeferred)
5353
{
5454
this.gl = scene.game.renderer.gl;
5555
this.passShader = resourceManager.createShader('Phong2DShaderForward', {vert: TexturedAndNormalizedTintedShader.vert, frag: `
@@ -116,7 +116,7 @@ var LightLayer = new Class({
116116
{
117117
var gl = this.gl = scene.game.renderer.gl;
118118
this.ext = scene.game.renderer.getExtension('WEBGL_draw_buffers');
119-
this.gBufferShaderPass = resourceManager.createShader('GBufferShader', {vert: TexturedAndNormalizedTintedShader.vert, frag: `
119+
this.gBufferShaderPass = resourceManager.createShader('GBufferShader', { vert: TexturedAndNormalizedTintedShader.vert, frag: `
120120
#extension GL_EXT_draw_buffers : require
121121
122122
precision mediump float;
@@ -161,7 +161,7 @@ var LightLayer = new Class({
161161
uniform sampler2D uGbufferColor;
162162
uniform sampler2D uGbufferNormal;
163163
uniform vec3 uAmbientLightColor;
164-
uniform Light uLights[` + Const.MAX_LIGHTS + `];
164+
uniform Light uLights[` + Const.DEFERRED_MAX_LIGHTS + `];
165165
166166
void main()
167167
{
@@ -171,7 +171,7 @@ var LightLayer = new Class({
171171
vec3 gbNormal = texture2D(uGbufferNormal, uv).rgb;
172172
vec3 normal = normalize(vec3(gbNormal * 2.0 - 1.0));
173173
174-
for (int index = 0; index < ` + Const.MAX_LIGHTS + `; ++index)
174+
for (int index = 0; index < ` + Const.DEFERRED_MAX_LIGHTS + `; ++index)
175175
{
176176
Light light = uLights[index];
177177
float lightY = uResolution.y - light.position.y;
@@ -189,7 +189,7 @@ var LightLayer = new Class({
189189
`});
190190
this.lightPassVBO = gl.createBuffer();
191191
gl.bindBuffer(gl.ARRAY_BUFFER, this.lightPassVBO);
192-
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, 7, -1, -1, 7, -1]), gl.STATIC_DRAW);
192+
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([ -1, 7, -1, -1, 7, -1 ]), gl.STATIC_DRAW);
193193

194194
this.uMainTextureLoc = this.gBufferShaderPass.getUniformLocation('uMainTexture');
195195
this.uNormTextureLoc = this.gBufferShaderPass.getUniformLocation('uNormTexture');
@@ -210,7 +210,7 @@ var LightLayer = new Class({
210210
this.gBufferShaderPass.bindAttribLocation(2, 'v_alpha');
211211
this.lightPassShader.bindAttribLocation(0, 'vertexPosition');
212212

213-
for (var index = 0; index < Const.MAX_LIGHTS; ++index)
213+
for (var index = 0; index < Const.DEFERRED_MAX_LIGHTS; ++index)
214214
{
215215
this.lightsLocations[index] = {
216216
position: this.lightPassShader.getUniformLocation('uLights[' + index + '].position'),
@@ -242,7 +242,7 @@ var LightLayer = new Class({
242242
gl.framebufferTexture2D(gl.FRAMEBUFFER, this.ext.COLOR_ATTACHMENT0_WEBGL, gl.TEXTURE_2D, this.gBufferColorTex, 0);
243243
gl.framebufferTexture2D(gl.FRAMEBUFFER, this.ext.COLOR_ATTACHMENT1_WEBGL, gl.TEXTURE_2D, this.gBufferNormalTex, 0);
244244

245-
this.ext.drawBuffersWEBGL([this.ext.COLOR_ATTACHMENT0_WEBGL, this.ext.COLOR_ATTACHMENT1_WEBGL]);
245+
this.ext.drawBuffersWEBGL([ this.ext.COLOR_ATTACHMENT0_WEBGL, this.ext.COLOR_ATTACHMENT1_WEBGL ]);
246246

247247
var complete = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
248248

@@ -263,26 +263,26 @@ var LightLayer = new Class({
263263
this.setOrigin(0, 0);
264264
},
265265

266-
get z()
266+
get z ()
267267
{
268268
return this._z;
269269
},
270270

271-
set z(newZ)
271+
set z (newZ)
272272
{
273273
this._z = newZ;
274-
},
274+
},
275275

276-
setAmbientLightColor: function (r, g, b)
276+
setAmbientLightColor: function (r, g, b)
277277
{
278-
this.ambientLightColorR = r;
279-
this.ambientLightColorG = g;
280-
this.ambientLightColorB = b;
278+
this.ambientLightColorR = r;
279+
this.ambientLightColorG = g;
280+
this.ambientLightColorB = b;
281281
},
282282

283283
getMaxLights: function ()
284284
{
285-
return Const.MAX_LIGHTS;
285+
return (this._isDeferred) ? Const.DEFERRED_MAX_LIGHTS : Const.MAX_LIGHTS;
286286
},
287287

288288
getLightCount: function ()
@@ -292,7 +292,7 @@ var LightLayer = new Class({
292292

293293
isDeferred: function ()
294294
{
295-
return WebGLSupportedExtensions.has('WEBGL_draw_buffers');
295+
return this._isDeferred;
296296
},
297297

298298
/* This will probably be removed later */
@@ -330,7 +330,7 @@ var LightLayer = new Class({
330330

331331
addLight: function (x, y, z, r, g, b, attenuation)
332332
{
333-
if (this.lights.length < Const.MAX_LIGHTS)
333+
if (this.lights.length < this.getMaxLights())
334334
{
335335
var light = null;
336336
if (this.lightPool.length > 0)
@@ -359,14 +359,13 @@ var LightLayer = new Class({
359359
}
360360
},
361361

362-
updateLights: function(renderer, camera, shader)
362+
updateLights: function (renderer, camera, shader)
363363
{
364364
if (this.gl !== null)
365365
{
366366
var locations = this.lightsLocations;
367367
var lights = this.lights;
368368
var length = lights.length;
369-
var gl = this.gl;
370369
var point = {x: 0, y: 0};
371370

372371
shader.setConstantFloat2(this.uResolutionLoc, renderer.width, renderer.height);

0 commit comments

Comments
 (0)