From 04343eda8c2f870b0da55cfdc8003c99fe1cc4de Mon Sep 17 00:00:00 2001
From: Kris Kowal
Date: Fri, 6 Jul 2012 11:53:10 -0700
Subject: Remove trailing spaces
---
js/helper-classes/RDGE/src/core/script/fx/blur.js | 8 ++++----
js/helper-classes/RDGE/src/core/script/fx/ssao.js | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
(limited to 'js/helper-classes/RDGE/src/core/script/fx')
diff --git a/js/helper-classes/RDGE/src/core/script/fx/blur.js b/js/helper-classes/RDGE/src/core/script/fx/blur.js
index f105a391..a8788968 100755
--- a/js/helper-classes/RDGE/src/core/script/fx/blur.js
+++ b/js/helper-classes/RDGE/src/core/script/fx/blur.js
@@ -38,7 +38,7 @@ RDGE.fx = RDGE.fx || {};
* See http://prideout.net/archive/bloom/
* @param mipSizes - up to three pow2 mip sizes to be separately blurred
* and combined with the src image, e.g. [256,128,64]
-* @param enAuxTexture - true to enable an extra texture to be added to
+* @param enAuxTexture - true to enable an extra texture to be added to
* the weighted blur mips (see doBlur)
*/
RDGE.fx.fxBlur = function (mipSizes, enAuxTexture) {
@@ -140,10 +140,10 @@ RDGE.fx.fxBlur = function (mipSizes, enAuxTexture) {
* See http://prideout.net/archive/bloom/
* @param srcTexture - source image to blur
* @param dstRenderTarget - where to put the result of the blur
-* @param weights - array of 4 blend weights for the blurred mip levels
-* levels in the form [srcTexture-weight, mip0-weight,
+* @param weights - array of 4 blend weights for the blurred mip levels
+* levels in the form [srcTexture-weight, mip0-weight,
* mip1-weight, mip2-weight]
-* @param auxTexture - null, else an extra texture to be added to the
+* @param auxTexture - null, else an extra texture to be added to the
* weighted blur mips
*/
RDGE.fx.fxBlur.prototype.doBlur = function (srcTexture, dstRenderTarget, weights, auxTexture) {
diff --git a/js/helper-classes/RDGE/src/core/script/fx/ssao.js b/js/helper-classes/RDGE/src/core/script/fx/ssao.js
index e88beef5..39abf523 100755
--- a/js/helper-classes/RDGE/src/core/script/fx/ssao.js
+++ b/js/helper-classes/RDGE/src/core/script/fx/ssao.js
@@ -90,10 +90,10 @@ RDGE.fx.fxSSAO = function (enHRDepth) {
* @param srcTexColor - color surface of rendered scene
* @param srcTexNormDepth - screenspace normal+depth surface for scene; {nx, ny, nz, depth}
* @param dstRenderTarget - where to put the result of SSAO
-* @param sampleRadius -
-* @param intensity -
-* @param distScale -
-* @param bias -
+* @param sampleRadius -
+* @param intensity -
+* @param distScale -
+* @param bias -
*/
RDGE.fx.fxSSAO.prototype.doSSAO = function (srcTexColor, srcTexNormDepth, srcTexHRDepth, dstRenderTarget, sampleRadius, intensity, distScale, bias) {
// Set art params and other uniforms
--
cgit v1.2.3
From 3644cb6def4f681c99959e5729e78ea353441fad Mon Sep 17 00:00:00 2001
From: Kris Kowal
Date: Fri, 6 Jul 2012 12:34:53 -0700
Subject: Normalize to unix line terminators
---
js/helper-classes/RDGE/src/core/script/fx/blur.js | 434 +++++++++++-----------
js/helper-classes/RDGE/src/core/script/fx/ssao.js | 278 +++++++-------
2 files changed, 356 insertions(+), 356 deletions(-)
(limited to 'js/helper-classes/RDGE/src/core/script/fx')
diff --git a/js/helper-classes/RDGE/src/core/script/fx/blur.js b/js/helper-classes/RDGE/src/core/script/fx/blur.js
index a8788968..aa76b9ad 100755
--- a/js/helper-classes/RDGE/src/core/script/fx/blur.js
+++ b/js/helper-classes/RDGE/src/core/script/fx/blur.js
@@ -1,217 +1,217 @@
-/*
-Copyright (c) 2012, Motorola Mobility, Inc
-All Rights Reserved.
-BSD License.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- - Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- - Neither the name of Motorola Mobility nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-// RDGE namespaces
-var RDGE = RDGE || {};
-RDGE.fx = RDGE.fx || {};
-
-/**
-* Implements a 5x5 blur.
-* See http://prideout.net/archive/bloom/
-* @param mipSizes - up to three pow2 mip sizes to be separately blurred
-* and combined with the src image, e.g. [256,128,64]
-* @param enAuxTexture - true to enable an extra texture to be added to
-* the weighted blur mips (see doBlur)
-*/
-RDGE.fx.fxBlur = function (mipSizes, enAuxTexture) {
- var separableBlurCombine_fshader = [
- "#ifdef GL_ES",
- "precision highp float;",
- "#endif",
-
- "varying vec2 vTexcoord;", // base tex coord
- "uniform vec4 vWeights;", // blend weights
-
- enAuxTexture ? "uniform sampler2D sTextureAux;" : "", // aux image (unweighted)
- "uniform sampler2D sTexture1;", // source texture #1
- mipSizes[0] ? "uniform sampler2D sTexture2;" : "", // source texture #2
- mipSizes[1] ? "uniform sampler2D sTexture3;" : "", // source texture #3
- mipSizes[2] ? "uniform sampler2D sTexture4;" : "", // source texture #4
-
- "void main()",
- "{",
- "vec4 blurCol = vWeights.x * texture2D(sTexture1, vTexcoord, -32.0);",
- mipSizes[0] ? "blurCol += vWeights.y * texture2D(sTexture2, vTexcoord, -32.0);" : "",
- mipSizes[1] ? "blurCol += vWeights.z * texture2D(sTexture3, vTexcoord, -32.0);" : "",
- mipSizes[2] ? "blurCol += vWeights.w * texture2D(sTexture4, vTexcoord, -32.0);" : "",
-
- enAuxTexture ? "gl_FragColor = texture2D(sTextureAux, vTexcoord, -32.0) + blurCol;" : "gl_FragColor = blurCol;",
- "}"
-
- ].join("\n");
-
-
- function renderInitBlur(quad) {
- quad.shader = RDGE.createShader(gl, 'separableBlur_vshader', 'separableBlur_fshader', ["vert", "texcoord"]);
- quad.renderObj = new RDGE.RenderObject(quad.shader);
-
- quad.vertBuffer = quadBuf.vertexObject;
- quad.uvBuffer = quadBuf.texCoordObject;
-
- quad.renderObj.addTexture("sTexture", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
-
- quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
- quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
- };
-
- function renderInitCombine(quad) {
- quad.shader = RDGE.createShader(gl, 'separableBlur_vshader', separableBlurCombine_fshader, ["vert", "texcoord"]);
- quad.renderObj = new RDGE.RenderObject(quad.shader);
-
- quad.vertBuffer = quadBuf.vertexObject;
- quad.uvBuffer = quadBuf.texCoordObject;
-
- quad.renderObj.addTexture("sTexture1", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
- quad.renderObj.addTexture("sTexture2", 1, RDGE.UNIFORMTYPE.TEXTURE2D);
- quad.renderObj.addTexture("sTexture3", 2, RDGE.UNIFORMTYPE.TEXTURE2D);
- quad.renderObj.addTexture("sTexture4", 3, RDGE.UNIFORMTYPE.TEXTURE2D);
- quad.renderObj.addTexture("sTextureAux", 4, RDGE.UNIFORMTYPE.TEXTURE2D);
-
- quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
- quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
- };
-
- // Screen aligned quad geometry
- var quadBuf = getScreenAlignedQuad();
-
- // Fbos for each mip level; two sets are used to pingpong horizontal and vertical blur
- mipSizes = mipSizes || [128, 64, 32];
-
- this.fboSet1 = [];
- this.fboSet2 = [];
-
- for (var i in mipSizes) {
- this.fboSet1.push(createRenderTargetTexture(mipSizes[i], mipSizes[i]));
- this.fboSet2.push(createRenderTargetTexture(mipSizes[i], mipSizes[i]));
- };
-
- // Blitter for downsampling
- this.blitQuad = new RDGE.ScreenQuad(null);
- this.blitQuad.initialize(RDGE.renderInitScreenQuad);
-
- // Blur shader
- this.blurQuad = new RDGE.ScreenQuad(null);
- this.blurQuad.initialize(renderInitBlur);
-
- this.v3Kernel = [5.0 / 16.0, 6.0 / 16.0, 5.0 / 16.0];
- this.blurQuad.renderObj.addUniform("vCoeffs", this.v3Kernel, RDGE.UNIFORMTYPE.FLOAT3);
-
- this.v2Offset = RDGE.vec2.zero();
- this.blurQuad.renderObj.addUniform("vOffset", this.v2Offset, RDGE.UNIFORMTYPE.FLOAT2);
-
- // Combine/blend shader
- this.combineQuad = new RDGE.ScreenQuad(null);
- this.combineQuad.initialize(renderInitCombine);
-
- this.v4Weights = [0.25, 0.25, 0.25, 0.25];
- this.combineQuad.renderObj.addUniform("vWeights", this.v4Weights, RDGE.UNIFORMTYPE.FLOAT4);
-};
-
-/**
-* Blurs the passed render target.
-* See http://prideout.net/archive/bloom/
-* @param srcTexture - source image to blur
-* @param dstRenderTarget - where to put the result of the blur
-* @param weights - array of 4 blend weights for the blurred mip levels
-* levels in the form [srcTexture-weight, mip0-weight,
-* mip1-weight, mip2-weight]
-* @param auxTexture - null, else an extra texture to be added to the
-* weighted blur mips
-*/
-RDGE.fx.fxBlur.prototype.doBlur = function (srcTexture, dstRenderTarget, weights, auxTexture) {
- // Set weights
- this.v4Weights[0] = (weights == undefined) ? 0.25 : weights[0];
- this.v4Weights[1] = (weights == undefined) ? 0.25 : weights[1];
- this.v4Weights[2] = (weights == undefined) ? 0.25 : weights[2];
- this.v4Weights[3] = (weights == undefined) ? 0.25 : weights[3];
-
- // Do horizontal blur of fbo set 1 into fbo set 2
- for (var i = 0, fboSrc, fboDst; (fboSrc = srcTexture) && (fboDst = this.fboSet2[i]); i++) {
- gl.bindFramebuffer(gl.FRAMEBUFFER, fboDst.frameBuffer);
- gl.viewport(0, 0, fboDst.frameBuffer.width, fboDst.frameBuffer.height);
- gl.clear(gl.COLOR_BUFFER_BIT);
- gl.disable(gl.DEPTH_TEST);
-
- this.v2Offset[0] = 0.0;
- this.v2Offset[1] = 1.2 / fboDst.frameBuffer.width;
-
- this.blurQuad.texture = fboSrc;
-
- RDGE.renderProcScreenQuad(this.blurQuad);
- }
-
- // Do vertical blur of fbo set 2 into fbo set 1
- for (var i = 0, fboSrc, fboDst; (fboSrc = this.fboSet2[i]) && (fboDst = this.fboSet1[i]); i++) {
- gl.bindFramebuffer(gl.FRAMEBUFFER, fboDst.frameBuffer);
- gl.viewport(0, 0, fboDst.frameBuffer.width, fboDst.frameBuffer.height);
- gl.clear(gl.COLOR_BUFFER_BIT);
- gl.disable(gl.DEPTH_TEST);
-
- this.v2Offset[0] = 1.2 / fboDst.frameBuffer.width;
- this.v2Offset[1] = 0.0;
-
- this.blurQuad.texture = fboSrc;
-
- RDGE.renderProcScreenQuad(this.blurQuad);
- }
-
- // Do a weighted combine of the textures in fbo set 1
- gl.bindFramebuffer(gl.FRAMEBUFFER, dstRenderTarget ? dstRenderTarget.frameBuffer : null);
- gl.viewport(0, 0, RDGE.globals.width, RDGE.globals.height);
- gl.clear(gl.COLOR_BUFFER_BIT);
-
- gl.disable(gl.DEPTH_TEST);
-
- gl.useProgram(this.combineQuad.shader);
-
- this.combineQuad.renderObj.bindBuffers();
- this.combineQuad.renderObj.bindTextures();
- this.combineQuad.renderObj.bindUniforms();
-
- gl.activeTexture(gl.TEXTURE0);
- gl.bindTexture(gl.TEXTURE_2D, srcTexture);
- gl.activeTexture(gl.TEXTURE1);
- gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[0]);
- gl.activeTexture(gl.TEXTURE2);
- gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[1]);
- gl.activeTexture(gl.TEXTURE3);
- gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[2]);
- gl.activeTexture(gl.TEXTURE4);
- gl.bindTexture(gl.TEXTURE_2D, auxTexture);
- gl.activeTexture(gl.TEXTURE0);
-
- gl.drawArrays(gl.TRIANGLES, 0, 6);
-
- gl.enable(gl.DEPTH_TEST);
- gl.useProgram(null);
-
- return dstRenderTarget;
-};
+/*
+Copyright (c) 2012, Motorola Mobility, Inc
+All Rights Reserved.
+BSD License.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ - Neither the name of Motorola Mobility nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+// RDGE namespaces
+var RDGE = RDGE || {};
+RDGE.fx = RDGE.fx || {};
+
+/**
+* Implements a 5x5 blur.
+* See http://prideout.net/archive/bloom/
+* @param mipSizes - up to three pow2 mip sizes to be separately blurred
+* and combined with the src image, e.g. [256,128,64]
+* @param enAuxTexture - true to enable an extra texture to be added to
+* the weighted blur mips (see doBlur)
+*/
+RDGE.fx.fxBlur = function (mipSizes, enAuxTexture) {
+ var separableBlurCombine_fshader = [
+ "#ifdef GL_ES",
+ "precision highp float;",
+ "#endif",
+
+ "varying vec2 vTexcoord;", // base tex coord
+ "uniform vec4 vWeights;", // blend weights
+
+ enAuxTexture ? "uniform sampler2D sTextureAux;" : "", // aux image (unweighted)
+ "uniform sampler2D sTexture1;", // source texture #1
+ mipSizes[0] ? "uniform sampler2D sTexture2;" : "", // source texture #2
+ mipSizes[1] ? "uniform sampler2D sTexture3;" : "", // source texture #3
+ mipSizes[2] ? "uniform sampler2D sTexture4;" : "", // source texture #4
+
+ "void main()",
+ "{",
+ "vec4 blurCol = vWeights.x * texture2D(sTexture1, vTexcoord, -32.0);",
+ mipSizes[0] ? "blurCol += vWeights.y * texture2D(sTexture2, vTexcoord, -32.0);" : "",
+ mipSizes[1] ? "blurCol += vWeights.z * texture2D(sTexture3, vTexcoord, -32.0);" : "",
+ mipSizes[2] ? "blurCol += vWeights.w * texture2D(sTexture4, vTexcoord, -32.0);" : "",
+
+ enAuxTexture ? "gl_FragColor = texture2D(sTextureAux, vTexcoord, -32.0) + blurCol;" : "gl_FragColor = blurCol;",
+ "}"
+
+ ].join("\n");
+
+
+ function renderInitBlur(quad) {
+ quad.shader = RDGE.createShader(gl, 'separableBlur_vshader', 'separableBlur_fshader', ["vert", "texcoord"]);
+ quad.renderObj = new RDGE.RenderObject(quad.shader);
+
+ quad.vertBuffer = quadBuf.vertexObject;
+ quad.uvBuffer = quadBuf.texCoordObject;
+
+ quad.renderObj.addTexture("sTexture", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
+
+ quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
+ quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
+ };
+
+ function renderInitCombine(quad) {
+ quad.shader = RDGE.createShader(gl, 'separableBlur_vshader', separableBlurCombine_fshader, ["vert", "texcoord"]);
+ quad.renderObj = new RDGE.RenderObject(quad.shader);
+
+ quad.vertBuffer = quadBuf.vertexObject;
+ quad.uvBuffer = quadBuf.texCoordObject;
+
+ quad.renderObj.addTexture("sTexture1", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
+ quad.renderObj.addTexture("sTexture2", 1, RDGE.UNIFORMTYPE.TEXTURE2D);
+ quad.renderObj.addTexture("sTexture3", 2, RDGE.UNIFORMTYPE.TEXTURE2D);
+ quad.renderObj.addTexture("sTexture4", 3, RDGE.UNIFORMTYPE.TEXTURE2D);
+ quad.renderObj.addTexture("sTextureAux", 4, RDGE.UNIFORMTYPE.TEXTURE2D);
+
+ quad.renderObj.addBuffers(quad.vertBuffer, gl.ARRAY_BUFFER, 3, 0, gl.FLOAT);
+ quad.renderObj.addBuffers(quad.uvBuffer, gl.ARRAY_BUFFER, 2, 2, gl.FLOAT);
+ };
+
+ // Screen aligned quad geometry
+ var quadBuf = getScreenAlignedQuad();
+
+ // Fbos for each mip level; two sets are used to pingpong horizontal and vertical blur
+ mipSizes = mipSizes || [128, 64, 32];
+
+ this.fboSet1 = [];
+ this.fboSet2 = [];
+
+ for (var i in mipSizes) {
+ this.fboSet1.push(createRenderTargetTexture(mipSizes[i], mipSizes[i]));
+ this.fboSet2.push(createRenderTargetTexture(mipSizes[i], mipSizes[i]));
+ };
+
+ // Blitter for downsampling
+ this.blitQuad = new RDGE.ScreenQuad(null);
+ this.blitQuad.initialize(RDGE.renderInitScreenQuad);
+
+ // Blur shader
+ this.blurQuad = new RDGE.ScreenQuad(null);
+ this.blurQuad.initialize(renderInitBlur);
+
+ this.v3Kernel = [5.0 / 16.0, 6.0 / 16.0, 5.0 / 16.0];
+ this.blurQuad.renderObj.addUniform("vCoeffs", this.v3Kernel, RDGE.UNIFORMTYPE.FLOAT3);
+
+ this.v2Offset = RDGE.vec2.zero();
+ this.blurQuad.renderObj.addUniform("vOffset", this.v2Offset, RDGE.UNIFORMTYPE.FLOAT2);
+
+ // Combine/blend shader
+ this.combineQuad = new RDGE.ScreenQuad(null);
+ this.combineQuad.initialize(renderInitCombine);
+
+ this.v4Weights = [0.25, 0.25, 0.25, 0.25];
+ this.combineQuad.renderObj.addUniform("vWeights", this.v4Weights, RDGE.UNIFORMTYPE.FLOAT4);
+};
+
+/**
+* Blurs the passed render target.
+* See http://prideout.net/archive/bloom/
+* @param srcTexture - source image to blur
+* @param dstRenderTarget - where to put the result of the blur
+* @param weights - array of 4 blend weights for the blurred mip levels
+* levels in the form [srcTexture-weight, mip0-weight,
+* mip1-weight, mip2-weight]
+* @param auxTexture - null, else an extra texture to be added to the
+* weighted blur mips
+*/
+RDGE.fx.fxBlur.prototype.doBlur = function (srcTexture, dstRenderTarget, weights, auxTexture) {
+ // Set weights
+ this.v4Weights[0] = (weights == undefined) ? 0.25 : weights[0];
+ this.v4Weights[1] = (weights == undefined) ? 0.25 : weights[1];
+ this.v4Weights[2] = (weights == undefined) ? 0.25 : weights[2];
+ this.v4Weights[3] = (weights == undefined) ? 0.25 : weights[3];
+
+ // Do horizontal blur of fbo set 1 into fbo set 2
+ for (var i = 0, fboSrc, fboDst; (fboSrc = srcTexture) && (fboDst = this.fboSet2[i]); i++) {
+ gl.bindFramebuffer(gl.FRAMEBUFFER, fboDst.frameBuffer);
+ gl.viewport(0, 0, fboDst.frameBuffer.width, fboDst.frameBuffer.height);
+ gl.clear(gl.COLOR_BUFFER_BIT);
+ gl.disable(gl.DEPTH_TEST);
+
+ this.v2Offset[0] = 0.0;
+ this.v2Offset[1] = 1.2 / fboDst.frameBuffer.width;
+
+ this.blurQuad.texture = fboSrc;
+
+ RDGE.renderProcScreenQuad(this.blurQuad);
+ }
+
+ // Do vertical blur of fbo set 2 into fbo set 1
+ for (var i = 0, fboSrc, fboDst; (fboSrc = this.fboSet2[i]) && (fboDst = this.fboSet1[i]); i++) {
+ gl.bindFramebuffer(gl.FRAMEBUFFER, fboDst.frameBuffer);
+ gl.viewport(0, 0, fboDst.frameBuffer.width, fboDst.frameBuffer.height);
+ gl.clear(gl.COLOR_BUFFER_BIT);
+ gl.disable(gl.DEPTH_TEST);
+
+ this.v2Offset[0] = 1.2 / fboDst.frameBuffer.width;
+ this.v2Offset[1] = 0.0;
+
+ this.blurQuad.texture = fboSrc;
+
+ RDGE.renderProcScreenQuad(this.blurQuad);
+ }
+
+ // Do a weighted combine of the textures in fbo set 1
+ gl.bindFramebuffer(gl.FRAMEBUFFER, dstRenderTarget ? dstRenderTarget.frameBuffer : null);
+ gl.viewport(0, 0, RDGE.globals.width, RDGE.globals.height);
+ gl.clear(gl.COLOR_BUFFER_BIT);
+
+ gl.disable(gl.DEPTH_TEST);
+
+ gl.useProgram(this.combineQuad.shader);
+
+ this.combineQuad.renderObj.bindBuffers();
+ this.combineQuad.renderObj.bindTextures();
+ this.combineQuad.renderObj.bindUniforms();
+
+ gl.activeTexture(gl.TEXTURE0);
+ gl.bindTexture(gl.TEXTURE_2D, srcTexture);
+ gl.activeTexture(gl.TEXTURE1);
+ gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[0]);
+ gl.activeTexture(gl.TEXTURE2);
+ gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[1]);
+ gl.activeTexture(gl.TEXTURE3);
+ gl.bindTexture(gl.TEXTURE_2D, this.fboSet1[2]);
+ gl.activeTexture(gl.TEXTURE4);
+ gl.bindTexture(gl.TEXTURE_2D, auxTexture);
+ gl.activeTexture(gl.TEXTURE0);
+
+ gl.drawArrays(gl.TRIANGLES, 0, 6);
+
+ gl.enable(gl.DEPTH_TEST);
+ gl.useProgram(null);
+
+ return dstRenderTarget;
+};
diff --git a/js/helper-classes/RDGE/src/core/script/fx/ssao.js b/js/helper-classes/RDGE/src/core/script/fx/ssao.js
index 39abf523..fc72c817 100755
--- a/js/helper-classes/RDGE/src/core/script/fx/ssao.js
+++ b/js/helper-classes/RDGE/src/core/script/fx/ssao.js
@@ -1,139 +1,139 @@
-/*
-Copyright (c) 2012, Motorola Mobility, Inc
-All Rights Reserved.
-BSD License.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- - Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- - Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- - Neither the name of Motorola Mobility nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
- */
-
-var RDGE = RDGE || {};
-RDGE.fx = RDGE.fx || {};
-
-/**
-* Implements SSAO.
-* See http://www.gamedev.net/page/resources/_/reference/programming/140/lighting-and-shading/a-simple-and-practical-approach-to-ssao-r2753
-* @param v2ScreenSize - size of the viewport in window coordinates
-*/
-RDGE.fx.fxSSAO = function (enHRDepth) {
- function renderInitSSAO(quad) {
- quad.shader = RDGE.createShader(RDGE.globals.gl, 'ssao_vshader', enHRDepth ? 'ssaohr_fshader' : 'ssao_fshader', ["vert", "texcoord"]);
- quad.renderObj = new RDGE.RenderObject(quad.shader);
-
- var quadBuf = getScreenAlignedQuad();
- quad.vertBuffer = quadBuf.vertexObject;
- quad.uvBuffer = quadBuf.texCoordObject;
-
- quad.renderObj.addTexture("sColMap", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
- quad.renderObj.addTexture("sNormDepthMap", 1, RDGE.UNIFORMTYPE.TEXTURE2D);
- quad.renderObj.addTexture("sRandMap", 2, RDGE.UNIFORMTYPE.TEXTURE2D);
- if (enHRDepth)
- quad.renderObj.addTexture("sHRDepthMap", 3, RDGE.UNIFORMTYPE.TEXTURE2D);
-
- quad.renderObj.addBuffers(quad.vertBuffer, RDGE.globals.gl.ARRAY_BUFFER, 3, 0, RDGE.globals.gl.FLOAT);
- quad.renderObj.addBuffers(quad.uvBuffer, RDGE.globals.gl.ARRAY_BUFFER, 2, 2, RDGE.globals.gl.FLOAT);
- };
-
- // Load random normal texture
- this.randTexture = createTexture(RDGE.globals.gl, RDGE.globals.engine._assetPath + "images/random_normal.png");
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, this.randTexture);
- RDGE.globals.gl.texParameteri(RDGE.globals.gl.TEXTURE_2D, RDGE.globals.gl.TEXTURE_MIN_FILTER, RDGE.globals.gl.LINEAR);
- RDGE.globals.gl.texParameteri(RDGE.globals.gl.TEXTURE_2D, RDGE.globals.gl.TEXTURE_WRAP_S, RDGE.globals.gl.REPEAT);
- RDGE.globals.gl.texParameteri(RDGE.globals.gl.TEXTURE_2D, RDGE.globals.gl.TEXTURE_WRAP_T, RDGE.globals.gl.REPEAT);
-
- // Whether or not to use a high res depth texture
- this.enHRDepth = enHRDepth;
-
- // Quad for full screen pass
- this.ssaoQuad = new RDGE.ScreenQuad(null);
- this.ssaoQuad.initialize(renderInitSSAO);
-
- // Set up uniforms
- var activeCam = g_cameraManager.getActiveCamera();
- this.v3FrustumFLT = activeCam.getFTR();
- this.ssaoQuad.renderObj.addUniform("u_frustumFLT", this.v3FrustumFLT, RDGE.UNIFORMTYPE.FLOAT3);
-
- this.v4ArtVals = [1.0, 1.0, 1.0, 1.0];
- this.ssaoQuad.renderObj.addUniform("u_artVals", this.v4ArtVals, RDGE.UNIFORMTYPE.FLOAT4);
-
- this.fRandMapSize = 64.0;
- this.ssaoQuad.renderObj.addUniform("u_randMapSize", this.fRandMapSize, RDGE.UNIFORMTYPE.FLOAT);
-
- this.v2ScreenSize = [1024, 1024];
- this.ssaoQuad.renderObj.addUniform("u_screenSize", this.v2ScreenSize, RDGE.UNIFORMTYPE.FLOAT2);
-};
-
-/**
-* Contributes SSAO to the passed offscreen surface, rendering to another surface.
-* See http://www.gamedev.net/page/resources/_/reference/programming/140/lighting-and-shading/a-simple-and-practical-approach-to-ssao-r2753
-* @param srcTexColor - color surface of rendered scene
-* @param srcTexNormDepth - screenspace normal+depth surface for scene; {nx, ny, nz, depth}
-* @param dstRenderTarget - where to put the result of SSAO
-* @param sampleRadius -
-* @param intensity -
-* @param distScale -
-* @param bias -
-*/
-RDGE.fx.fxSSAO.prototype.doSSAO = function (srcTexColor, srcTexNormDepth, srcTexHRDepth, dstRenderTarget, sampleRadius, intensity, distScale, bias) {
- // Set art params and other uniforms
- this.v4ArtVals[0] = sampleRadius;
- this.v4ArtVals[1] = intensity;
- this.v4ArtVals[2] = distScale;
- this.v4ArtVals[3] = bias;
-
- this.v2ScreenSize[0] = dstRenderTarget ? dstRenderTarget.frameBuffer.width : RDGE.globals.width;
- this.v2ScreenSize[1] = dstRenderTarget ? dstRenderTarget.frameBuffer.height : RDGE.globals.height;
-
- // Do ssao
- RDGE.globals.gl.bindFramebuffer(RDGE.globals.gl.FRAMEBUFFER, dstRenderTarget ? dstRenderTarget.frameBuffer : null);
- // gl.viewport(0, 0, 99999, 99999);
- RDGE.globals.gl.clear(RDGE.globals.gl.COLOR_BUFFER_BIT);
-
- RDGE.globals.gl.disable(RDGE.globals.gl.DEPTH_TEST);
-
- RDGE.globals.gl.useProgram(this.ssaoQuad.shader);
-
- this.ssaoQuad.renderObj.bindBuffers();
- this.ssaoQuad.renderObj.bindTextures();
- this.ssaoQuad.renderObj.bindUniforms();
-
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE0);
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, srcTexColor);
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE1);
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, srcTexNormDepth);
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE2);
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, this.randTexture);
- if (this.enHRDepth) {
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE3);
- RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, srcTexHRDepth);
- }
- RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE0);
-
- RDGE.globals.gl.drawArrays(RDGE.globals.gl.TRIANGLES, 0, 6);
-
- RDGE.globals.gl.enable(RDGE.globals.gl.DEPTH_TEST);
- RDGE.globals.gl.useProgram(null);
-
- return dstRenderTarget;
-};
+/*
+Copyright (c) 2012, Motorola Mobility, Inc
+All Rights Reserved.
+BSD License.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ - Neither the name of Motorola Mobility nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+ */
+
+var RDGE = RDGE || {};
+RDGE.fx = RDGE.fx || {};
+
+/**
+* Implements SSAO.
+* See http://www.gamedev.net/page/resources/_/reference/programming/140/lighting-and-shading/a-simple-and-practical-approach-to-ssao-r2753
+* @param v2ScreenSize - size of the viewport in window coordinates
+*/
+RDGE.fx.fxSSAO = function (enHRDepth) {
+ function renderInitSSAO(quad) {
+ quad.shader = RDGE.createShader(RDGE.globals.gl, 'ssao_vshader', enHRDepth ? 'ssaohr_fshader' : 'ssao_fshader', ["vert", "texcoord"]);
+ quad.renderObj = new RDGE.RenderObject(quad.shader);
+
+ var quadBuf = getScreenAlignedQuad();
+ quad.vertBuffer = quadBuf.vertexObject;
+ quad.uvBuffer = quadBuf.texCoordObject;
+
+ quad.renderObj.addTexture("sColMap", 0, RDGE.UNIFORMTYPE.TEXTURE2D);
+ quad.renderObj.addTexture("sNormDepthMap", 1, RDGE.UNIFORMTYPE.TEXTURE2D);
+ quad.renderObj.addTexture("sRandMap", 2, RDGE.UNIFORMTYPE.TEXTURE2D);
+ if (enHRDepth)
+ quad.renderObj.addTexture("sHRDepthMap", 3, RDGE.UNIFORMTYPE.TEXTURE2D);
+
+ quad.renderObj.addBuffers(quad.vertBuffer, RDGE.globals.gl.ARRAY_BUFFER, 3, 0, RDGE.globals.gl.FLOAT);
+ quad.renderObj.addBuffers(quad.uvBuffer, RDGE.globals.gl.ARRAY_BUFFER, 2, 2, RDGE.globals.gl.FLOAT);
+ };
+
+ // Load random normal texture
+ this.randTexture = createTexture(RDGE.globals.gl, RDGE.globals.engine._assetPath + "images/random_normal.png");
+ RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, this.randTexture);
+ RDGE.globals.gl.texParameteri(RDGE.globals.gl.TEXTURE_2D, RDGE.globals.gl.TEXTURE_MIN_FILTER, RDGE.globals.gl.LINEAR);
+ RDGE.globals.gl.texParameteri(RDGE.globals.gl.TEXTURE_2D, RDGE.globals.gl.TEXTURE_WRAP_S, RDGE.globals.gl.REPEAT);
+ RDGE.globals.gl.texParameteri(RDGE.globals.gl.TEXTURE_2D, RDGE.globals.gl.TEXTURE_WRAP_T, RDGE.globals.gl.REPEAT);
+
+ // Whether or not to use a high res depth texture
+ this.enHRDepth = enHRDepth;
+
+ // Quad for full screen pass
+ this.ssaoQuad = new RDGE.ScreenQuad(null);
+ this.ssaoQuad.initialize(renderInitSSAO);
+
+ // Set up uniforms
+ var activeCam = g_cameraManager.getActiveCamera();
+ this.v3FrustumFLT = activeCam.getFTR();
+ this.ssaoQuad.renderObj.addUniform("u_frustumFLT", this.v3FrustumFLT, RDGE.UNIFORMTYPE.FLOAT3);
+
+ this.v4ArtVals = [1.0, 1.0, 1.0, 1.0];
+ this.ssaoQuad.renderObj.addUniform("u_artVals", this.v4ArtVals, RDGE.UNIFORMTYPE.FLOAT4);
+
+ this.fRandMapSize = 64.0;
+ this.ssaoQuad.renderObj.addUniform("u_randMapSize", this.fRandMapSize, RDGE.UNIFORMTYPE.FLOAT);
+
+ this.v2ScreenSize = [1024, 1024];
+ this.ssaoQuad.renderObj.addUniform("u_screenSize", this.v2ScreenSize, RDGE.UNIFORMTYPE.FLOAT2);
+};
+
+/**
+* Contributes SSAO to the passed offscreen surface, rendering to another surface.
+* See http://www.gamedev.net/page/resources/_/reference/programming/140/lighting-and-shading/a-simple-and-practical-approach-to-ssao-r2753
+* @param srcTexColor - color surface of rendered scene
+* @param srcTexNormDepth - screenspace normal+depth surface for scene; {nx, ny, nz, depth}
+* @param dstRenderTarget - where to put the result of SSAO
+* @param sampleRadius -
+* @param intensity -
+* @param distScale -
+* @param bias -
+*/
+RDGE.fx.fxSSAO.prototype.doSSAO = function (srcTexColor, srcTexNormDepth, srcTexHRDepth, dstRenderTarget, sampleRadius, intensity, distScale, bias) {
+ // Set art params and other uniforms
+ this.v4ArtVals[0] = sampleRadius;
+ this.v4ArtVals[1] = intensity;
+ this.v4ArtVals[2] = distScale;
+ this.v4ArtVals[3] = bias;
+
+ this.v2ScreenSize[0] = dstRenderTarget ? dstRenderTarget.frameBuffer.width : RDGE.globals.width;
+ this.v2ScreenSize[1] = dstRenderTarget ? dstRenderTarget.frameBuffer.height : RDGE.globals.height;
+
+ // Do ssao
+ RDGE.globals.gl.bindFramebuffer(RDGE.globals.gl.FRAMEBUFFER, dstRenderTarget ? dstRenderTarget.frameBuffer : null);
+ // gl.viewport(0, 0, 99999, 99999);
+ RDGE.globals.gl.clear(RDGE.globals.gl.COLOR_BUFFER_BIT);
+
+ RDGE.globals.gl.disable(RDGE.globals.gl.DEPTH_TEST);
+
+ RDGE.globals.gl.useProgram(this.ssaoQuad.shader);
+
+ this.ssaoQuad.renderObj.bindBuffers();
+ this.ssaoQuad.renderObj.bindTextures();
+ this.ssaoQuad.renderObj.bindUniforms();
+
+ RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE0);
+ RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, srcTexColor);
+ RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE1);
+ RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, srcTexNormDepth);
+ RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE2);
+ RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, this.randTexture);
+ if (this.enHRDepth) {
+ RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE3);
+ RDGE.globals.gl.bindTexture(RDGE.globals.gl.TEXTURE_2D, srcTexHRDepth);
+ }
+ RDGE.globals.gl.activeTexture(RDGE.globals.gl.TEXTURE0);
+
+ RDGE.globals.gl.drawArrays(RDGE.globals.gl.TRIANGLES, 0, 6);
+
+ RDGE.globals.gl.enable(RDGE.globals.gl.DEPTH_TEST);
+ RDGE.globals.gl.useProgram(null);
+
+ return dstRenderTarget;
+};
--
cgit v1.2.3