diff options
author | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-06-21 14:59:06 -0400 |
---|---|---|
committer | Ehsan Akhgari <ehsan.akhgari@gmail.com> | 2012-06-21 15:43:35 -0400 |
commit | de30f4b06444135ae55077054f572fa8bca84aff (patch) | |
tree | 6bebe741a64b0a14de4c57ea3dcb56f96e0dfa47 /src | |
parent | 8058ce6b85b60c737f21d215da128282d914eba7 (diff) |
Add support for fog density
Diffstat (limited to 'src')
-rw-r--r-- | src/library_gl.js | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/library_gl.js b/src/library_gl.js index 5f86669b..dd585f2d 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -909,6 +909,7 @@ var LibraryGL = { // Fog support. Partial, we assume shaders are used that implement fog. We just pass them uniforms fogStart: 0, fogEnd: 1, + fogDensity: 1.0, fogColor: null, fogEnabled: false, @@ -1202,6 +1203,8 @@ var LibraryGL = { {{{ makeSetValue('params', '0', 'GLEmulation.fogStart', 'float') }}}; } else if (pname == 0x0B64) { // GL_FOG_END {{{ makeSetValue('params', '0', 'GLEmulation.fogEnd', 'float') }}}; + } else if (pname == 0x0B62) { // GL_FOG_DENSITY + {{{ makeSetValue('params', '0', 'GLEmulation.fogDensity', 'float') }}}; } else { glGetFloatv(pname, params); } @@ -1558,7 +1561,7 @@ var LibraryGL = { 'float ffog(in float ecDistance) { \n' + // GL_EXP implementation. TODO: implement other fog modes // fog = exp2(-gl_Fog.density * gl_FogFragCoord * LOG2E) - ' float density = 1.0; \n' + // TODO: support density + ' float density = float(' + GLEmulation.fogDensity + '); \n' + ' float fog = exp2(-density * ecDistance * ' + Math.LOG2E + '); \n' + ' fog = clamp(fog, 0.0, 1.0); \n' + ' return fog; \n' + @@ -2085,6 +2088,8 @@ var LibraryGL = { GLEmulation.fogStart = param; break; case 0x0B64: // GL_FOG_END GLEmulation.fogEnd = param; break; + case 0x0B62: // GL_FOG_DENSITY + GLEmulation.fogDensity = param; break; } }, glFogi__deps: ['glFogf'], |