From 5f935f7ed223f5b31c5fd2d6ff33ee88d545360c Mon Sep 17 00:00:00 2001 From: codeanticode Date: Thu, 3 May 2012 21:45:29 +0000 Subject: [PATCH] Updated shaders --- .../opengl/FillShaderFragNoTex.glsl | 31 ---- .../processing/opengl/FillShaderFragTex.glsl | 36 ----- .../processing/opengl/FillShaderVertFull.glsl | 141 ------------------ .../processing/opengl/FillShaderVertLit.glsl | 136 ----------------- .../opengl/FillShaderVertSimple.glsl | 33 ---- .../processing/opengl/FillShaderVertTex.glsl | 37 ----- .../src/processing/opengl/LineShaderFrag.glsl | 31 ---- .../src/processing/opengl/LineShaderVert.glsl | 79 ---------- .../processing/opengl/PointShaderFrag.glsl | 31 ---- .../processing/opengl/PointShaderVert.glsl | 37 ----- 10 files changed, 592 deletions(-) delete mode 100644 android/core/src/processing/opengl/FillShaderFragNoTex.glsl delete mode 100644 android/core/src/processing/opengl/FillShaderFragTex.glsl delete mode 100644 android/core/src/processing/opengl/FillShaderVertFull.glsl delete mode 100644 android/core/src/processing/opengl/FillShaderVertLit.glsl delete mode 100644 android/core/src/processing/opengl/FillShaderVertSimple.glsl delete mode 100644 android/core/src/processing/opengl/FillShaderVertTex.glsl delete mode 100644 android/core/src/processing/opengl/LineShaderFrag.glsl delete mode 100644 android/core/src/processing/opengl/LineShaderVert.glsl delete mode 100644 android/core/src/processing/opengl/PointShaderFrag.glsl delete mode 100644 android/core/src/processing/opengl/PointShaderVert.glsl diff --git a/android/core/src/processing/opengl/FillShaderFragNoTex.glsl b/android/core/src/processing/opengl/FillShaderFragNoTex.glsl deleted file mode 100644 index 8c22a6ac5..000000000 --- a/android/core/src/processing/opengl/FillShaderFragNoTex.glsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - Part of the Processing project - http://processing.org - - Copyright (c) 2011 Andres Colubri - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA -*/ - -#ifdef GL_ES -precision mediump float; -precision mediump int; -#endif - -varying vec4 vertColor; - -void main() { - gl_FragColor = vertColor; -} \ No newline at end of file diff --git a/android/core/src/processing/opengl/FillShaderFragTex.glsl b/android/core/src/processing/opengl/FillShaderFragTex.glsl deleted file mode 100644 index d20d96d2a..000000000 --- a/android/core/src/processing/opengl/FillShaderFragTex.glsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - Part of the Processing project - http://processing.org - - Copyright (c) 2011 Andres Colubri - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA -*/ - -#ifdef GL_ES -precision mediump float; -precision mediump int; -#endif - -uniform sampler2D textureSampler; - -uniform vec2 texcoordOffset; - -varying vec4 vertColor; -varying vec4 vertTexcoord; - -void main() { - gl_FragColor = texture2D(textureSampler, vertTexcoord.st) * vertColor; -} \ No newline at end of file diff --git a/android/core/src/processing/opengl/FillShaderVertFull.glsl b/android/core/src/processing/opengl/FillShaderVertFull.glsl deleted file mode 100644 index cd6f6ce7f..000000000 --- a/android/core/src/processing/opengl/FillShaderVertFull.glsl +++ /dev/null @@ -1,141 +0,0 @@ -/* - Part of the Processing project - http://processing.org - - Copyright (c) 2011 Andres Colubri - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA -*/ - -uniform mat4 modelviewMatrix; -uniform mat4 projmodelviewMatrix; -uniform mat3 normalMatrix; -uniform mat4 texcoordMatrix; - -uniform int lightCount; -uniform vec4 lightPosition[8]; -uniform vec3 lightNormal[8]; -uniform vec3 lightAmbient[8]; -uniform vec3 lightDiffuse[8]; -uniform vec3 lightSpecular[8]; -uniform vec3 lightFalloffCoefficients[8]; -uniform vec2 lightSpotParameters[8]; - -attribute vec4 inVertex; -attribute vec4 inColor; -attribute vec3 inNormal; -attribute vec2 inTexcoord; - -attribute vec4 inAmbient; -attribute vec4 inSpecular; -attribute vec4 inEmissive; -attribute float inShine; - -varying vec4 vertColor; -varying vec4 vertTexcoord; - -const float zero_float = 0.0; -const float one_float = 1.0; -const vec3 zero_vec3 = vec3(0); - -float falloffFactor(vec3 lightPos, vec3 vertPos, vec3 coeff) { - vec3 lpv = lightPos - vertPos; - vec3 dist = vec3(one_float); - dist.z = dot(lpv, lpv); - dist.y = sqrt(dist.z); - return one_float / dot(dist, coeff); -} - -float spotFactor(vec3 lightPos, vec3 vertPos, vec3 lightNorm, float minCos, float spotExp) { - vec3 lpv = normalize(lightPos - vertPos); - float spotCos = dot(-lightNorm, lpv); - return spotCos <= minCos ? zero_float : pow(spotCos, spotExp); -} - -float lambertFactor(vec3 lightDir, vec3 vecNormal) { - return max(zero_float, dot(lightDir, vecNormal)); -} - -float blinnPhongFactor(vec3 lightDir, vec3 lightPos, vec3 vecNormal, float shine) { - vec3 ldp = normalize(lightDir - lightPos); - return pow(max(zero_float, dot(ldp, vecNormal)), shine); -} - -void main() { - // Vertex in clip coordinates - gl_Position = projmodelviewMatrix * inVertex; - - // Vertex in eye coordinates - vec3 ecVertex = vec3(modelviewMatrix * inVertex); - - // Normal vector in eye coordinates - vec3 ecNormal = normalize(normalMatrix * inNormal); - - if (dot(-ecVertex, ecNormal) < zero_float) { - // If normal is away from camera, choose its opposite. - // If we add backface culling, this will be backfacing - ecNormal *= -one_float; - } - - // Light calculations - vec3 totalAmbient = vec3(0, 0, 0); - vec3 totalDiffuse = vec3(0, 0, 0); - vec3 totalSpecular = vec3(0, 0, 0); - for (int i = 0; i < lightCount; i++) { - vec3 lightPos = lightPosition[i].xyz; - bool isDir = zero_float < lightPosition[i].w; - float spotCos = lightSpotParameters[i].x; - float spotExp = lightSpotParameters[i].y; - - vec3 lightDir; - float falloff; - float spotf; - - if (isDir) { - falloff = one_float; - lightDir = -lightNormal[i]; - } else { - falloff = falloffFactor(lightPos, ecVertex, lightFalloffCoefficients[i]); - lightDir = normalize(lightPos - ecVertex); - } - - spotf = spotExp > zero_float ? spotFactor(lightPos, ecVertex, lightNormal[i], - spotCos, spotExp) - : one_float; - - if (any(greaterThan(lightAmbient[i], zero_vec3))) { - totalAmbient += lightAmbient[i] * falloff; - } - - if (any(greaterThan(lightDiffuse[i], zero_vec3))) { - totalDiffuse += lightDiffuse[i] * falloff * spotf * - lambertFactor(lightDir, ecNormal); - } - - if (any(greaterThan(lightSpecular[i], zero_vec3))) { - totalSpecular += lightSpecular[i] * falloff * spotf * - blinnPhongFactor(lightDir, lightPos, ecNormal, inShine); - } - } - - // Calculating final color as result of all lights (plus emissive term) - vertColor = vec4(totalAmbient, 1) * inAmbient + - vec4(totalDiffuse, 1) * inColor + - vec4(totalSpecular, 1) * inSpecular + - inEmissive; - - // Calculating texture coordinates, with r and q set both to one - vertTexcoord = texcoordMatrix * vec4(inTexcoord, 1.0, 1.0); -} diff --git a/android/core/src/processing/opengl/FillShaderVertLit.glsl b/android/core/src/processing/opengl/FillShaderVertLit.glsl deleted file mode 100644 index 7c184a807..000000000 --- a/android/core/src/processing/opengl/FillShaderVertLit.glsl +++ /dev/null @@ -1,136 +0,0 @@ -/* - Part of the Processing project - http://processing.org - - Copyright (c) 2011 Andres Colubri - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA -*/ - -uniform mat4 modelviewMatrix; -uniform mat4 projmodelviewMatrix; -uniform mat3 normalMatrix; - -uniform int lightCount; -uniform vec4 lightPosition[8]; -uniform vec3 lightNormal[8]; -uniform vec3 lightAmbient[8]; -uniform vec3 lightDiffuse[8]; -uniform vec3 lightSpecular[8]; -uniform vec3 lightFalloffCoefficients[8]; -uniform vec2 lightSpotParameters[8]; - -attribute vec4 inVertex; -attribute vec4 inColor; -attribute vec3 inNormal; - -attribute vec4 inAmbient; -attribute vec4 inSpecular; -attribute vec4 inEmissive; -attribute float inShine; - -varying vec4 vertColor; - -const float zero_float = 0.0; -const float one_float = 1.0; -const vec3 zero_vec3 = vec3(0); - -float falloffFactor(vec3 lightPos, vec3 vertPos, vec3 coeff) { - vec3 lpv = lightPos - vertPos; - vec3 dist = vec3(one_float); - dist.z = dot(lpv, lpv); - dist.y = sqrt(dist.z); - return one_float / dot(dist, coeff); -} - -float spotFactor(vec3 lightPos, vec3 vertPos, vec3 lightNorm, float minCos, float spotExp) { - vec3 lpv = normalize(lightPos - vertPos); - float spotCos = dot(-lightNorm, lpv); - return spotCos <= minCos ? zero_float : pow(spotCos, spotExp); -} - -float lambertFactor(vec3 lightDir, vec3 vecNormal) { - return max(zero_float, dot(lightDir, vecNormal)); -} - -float blinnPhongFactor(vec3 lightDir, vec3 lightPos, vec3 vecNormal, float shine) { - vec3 ldp = normalize(lightDir - lightPos); - return pow(max(zero_float, dot(ldp, vecNormal)), shine); -} - -void main() { - // Vertex in clip coordinates - gl_Position = projmodelviewMatrix * inVertex; - - // Vertex in eye coordinates - vec3 ecVertex = vec3(modelviewMatrix * inVertex); - - // Normal vector in eye coordinates - vec3 ecNormal = normalize(normalMatrix * inNormal); - - if (dot(-ecVertex, ecNormal) < zero_float) { - // If normal is away from camera, choose its opposite. - // If we add backface culling, this will be backfacing - ecNormal *= -one_float; - } - - // Light calculations - vec3 totalAmbient = vec3(0, 0, 0); - vec3 totalDiffuse = vec3(0, 0, 0); - vec3 totalSpecular = vec3(0, 0, 0); - for (int i = 0; i < lightCount; i++) { - vec3 lightPos = lightPosition[i].xyz; - bool isDir = zero_float < lightPosition[i].w; - float spotCos = lightSpotParameters[i].x; - float spotExp = lightSpotParameters[i].y; - - vec3 lightDir; - float falloff; - float spotf; - - if (isDir) { - falloff = one_float; - lightDir = -lightNormal[i]; - } else { - falloff = falloffFactor(lightPos, ecVertex, lightFalloffCoefficients[i]); - lightDir = normalize(lightPos - ecVertex); - } - - spotf = spotExp > zero_float ? spotFactor(lightPos, ecVertex, lightNormal[i], - spotCos, spotExp) - : one_float; - - if (any(greaterThan(lightAmbient[i], zero_vec3))) { - totalAmbient += lightAmbient[i] * falloff; - } - - if (any(greaterThan(lightDiffuse[i], zero_vec3))) { - totalDiffuse += lightDiffuse[i] * falloff * spotf * - lambertFactor(lightDir, ecNormal); - } - - if (any(greaterThan(lightSpecular[i], zero_vec3))) { - totalSpecular += lightSpecular[i] * falloff * spotf * - blinnPhongFactor(lightDir, lightPos, ecNormal, inShine); - } - - } - - // Calculating final color as result of all lights (plus emissive term) - vertColor = vec4(totalAmbient, 1) * inAmbient + - vec4(totalDiffuse, 1) * inColor + - vec4(totalSpecular, 1) * inSpecular + - inEmissive; -} \ No newline at end of file diff --git a/android/core/src/processing/opengl/FillShaderVertSimple.glsl b/android/core/src/processing/opengl/FillShaderVertSimple.glsl deleted file mode 100644 index 9dd5d2b07..000000000 --- a/android/core/src/processing/opengl/FillShaderVertSimple.glsl +++ /dev/null @@ -1,33 +0,0 @@ -/* - Part of the Processing project - http://processing.org - - Copyright (c) 2011 Andres Colubri - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA -*/ - -uniform mat4 projmodelviewMatrix; - -attribute vec4 inVertex; -attribute vec4 inColor; - -varying vec4 vertColor; - -void main() { - gl_Position = projmodelviewMatrix * inVertex; - - vertColor = inColor; -} \ No newline at end of file diff --git a/android/core/src/processing/opengl/FillShaderVertTex.glsl b/android/core/src/processing/opengl/FillShaderVertTex.glsl deleted file mode 100644 index 233422d87..000000000 --- a/android/core/src/processing/opengl/FillShaderVertTex.glsl +++ /dev/null @@ -1,37 +0,0 @@ -/* - Part of the Processing project - http://processing.org - - Copyright (c) 2011 Andres Colubri - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA -*/ - -uniform mat4 projmodelviewMatrix; -uniform mat4 texcoordMatrix; - -attribute vec4 inVertex; -attribute vec4 inColor; -attribute vec2 inTexcoord; - -varying vec4 vertColor; -varying vec4 vertTexcoord; - -void main() { - gl_Position = projmodelviewMatrix * inVertex; - - vertColor = inColor; - vertTexcoord = texcoordMatrix * vec4(inTexcoord, 1.0, 1.0); -} \ No newline at end of file diff --git a/android/core/src/processing/opengl/LineShaderFrag.glsl b/android/core/src/processing/opengl/LineShaderFrag.glsl deleted file mode 100644 index 8c22a6ac5..000000000 --- a/android/core/src/processing/opengl/LineShaderFrag.glsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - Part of the Processing project - http://processing.org - - Copyright (c) 2011 Andres Colubri - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA -*/ - -#ifdef GL_ES -precision mediump float; -precision mediump int; -#endif - -varying vec4 vertColor; - -void main() { - gl_FragColor = vertColor; -} \ No newline at end of file diff --git a/android/core/src/processing/opengl/LineShaderVert.glsl b/android/core/src/processing/opengl/LineShaderVert.glsl deleted file mode 100644 index 650d7ed37..000000000 --- a/android/core/src/processing/opengl/LineShaderVert.glsl +++ /dev/null @@ -1,79 +0,0 @@ -/* - Part of the Processing project - http://processing.org - - Copyright (c) 2011 Andres Colubri - Based on glsl code from the dpix library: - http://gfx.cs.princeton.edu/proj/dpix/ - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA -*/ - -uniform mat4 modelviewMatrix; -uniform mat4 projectionMatrix; - -uniform vec4 viewport; -uniform int perspective; - -attribute vec4 inVertex; -attribute vec4 inColor; -attribute vec4 inDirWidth; - -varying vec4 vertColor; - -vec3 clipToWindow(vec4 clip, vec4 viewport) { - vec3 post_div = clip.xyz / clip.w; - vec2 xypos = (post_div.xy + vec2(1.0, 1.0)) * 0.5 * viewport.zw; - return vec3(xypos, post_div.z * 0.5 + 0.5); -} - -vec4 windowToClipVector(vec2 window, vec4 viewport, float clip_w) { - vec2 xypos = (window / viewport.zw) * 2.0; - return vec4(xypos, 0.0, 0.0) * clip_w; -} - -void main() { - vec4 pos_p = inVertex; - vec4 pos_q = vec4(inDirWidth.xyz, 1); - - vec4 v_p = modelviewMatrix * pos_p; - vec4 clip_p = projectionMatrix * v_p; - - vec4 v_q = modelviewMatrix * pos_q; - vec4 clip_q = projectionMatrix * v_q; - - vec3 window_p = clipToWindow(clip_p, viewport); - vec3 window_q = clipToWindow(clip_q, viewport); - vec3 tangent = window_q - window_p; - - float segment_length = length(tangent.xy); - vec2 perp = normalize(vec2(-tangent.y, tangent.x)); - float thickness = inDirWidth.w; - vec2 window_offset = perp * thickness; - - if (0 < perspective) { - // Perspective correction (lines will look thiner as they move away - // from the view position). - gl_Position.xy = clip_p.xy + window_offset.xy; - gl_Position.zw = clip_p.zw; - } else { - // No perspective correction. - float clip_p_w = clip_p.w; - vec4 offset_p = windowToClipVector(window_offset, viewport, clip_p_w); - gl_Position = clip_p + offset_p; - } - - vertColor = inColor; -} \ No newline at end of file diff --git a/android/core/src/processing/opengl/PointShaderFrag.glsl b/android/core/src/processing/opengl/PointShaderFrag.glsl deleted file mode 100644 index 8c22a6ac5..000000000 --- a/android/core/src/processing/opengl/PointShaderFrag.glsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - Part of the Processing project - http://processing.org - - Copyright (c) 2011 Andres Colubri - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA -*/ - -#ifdef GL_ES -precision mediump float; -precision mediump int; -#endif - -varying vec4 vertColor; - -void main() { - gl_FragColor = vertColor; -} \ No newline at end of file diff --git a/android/core/src/processing/opengl/PointShaderVert.glsl b/android/core/src/processing/opengl/PointShaderVert.glsl deleted file mode 100644 index 9e2195306..000000000 --- a/android/core/src/processing/opengl/PointShaderVert.glsl +++ /dev/null @@ -1,37 +0,0 @@ -/* - Part of the Processing project - http://processing.org - - Copyright (c) 2011 Andres Colubri - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA -*/ - -uniform mat4 projectionMatrix; -uniform mat4 modelviewMatrix; - -attribute vec4 inVertex; -attribute vec4 inColor; -attribute vec2 inSize; - -varying vec4 vertColor; - -void main() { - vec4 pos = modelviewMatrix * inVertex; - pos.xy += inSize.xy; - gl_Position = projectionMatrix * pos; - - vertColor = inColor; -} \ No newline at end of file