diff options
Diffstat (limited to 'assets/shaders/test_vshader.glsl')
-rwxr-xr-x | assets/shaders/test_vshader.glsl | 85 |
1 files changed, 43 insertions, 42 deletions
diff --git a/assets/shaders/test_vshader.glsl b/assets/shaders/test_vshader.glsl index 8bf9ee74..39e3f6ff 100755 --- a/assets/shaders/test_vshader.glsl +++ b/assets/shaders/test_vshader.glsl | |||
@@ -1,24 +1,25 @@ | |||
1 | /* <copyright> | 1 | /* <copyright> |
2 | Copyright (c) 2012, Motorola Mobility, Inc | 2 | Copyright (c) 2012, Motorola Mobility LLC. |
3 | All Rights Reserved. | 3 | All Rights Reserved. |
4 | BSD License. | ||
5 | 4 | ||
6 | Redistribution and use in source and binary forms, with or without | 5 | Redistribution and use in source and binary forms, with or without |
7 | modification, are permitted provided that the following conditions are met: | 6 | modification, are permitted provided that the following conditions are met: |
8 | 7 | ||
9 | - Redistributions of source code must retain the above copyright notice, | 8 | * Redistributions of source code must retain the above copyright notice, |
10 | this list of conditions and the following disclaimer. | 9 | this list of conditions and the following disclaimer. |
11 | - Redistributions in binary form must reproduce the above copyright | 10 | |
12 | notice, this list of conditions and the following disclaimer in the | 11 | * Redistributions in binary form must reproduce the above copyright notice, |
13 | documentation and/or other materials provided with the distribution. | 12 | this list of conditions and the following disclaimer in the documentation |
14 | - Neither the name of Motorola Mobility nor the names of its contributors | 13 | and/or other materials provided with the distribution. |
15 | may be used to endorse or promote products derived from this software | 14 | |
16 | without specific prior written permission. | 15 | * Neither the name of Motorola Mobility LLC nor the names of its |
16 | contributors may be used to endorse or promote products derived from this | ||
17 | software without specific prior written permission. | ||
17 | 18 | ||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | 22 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 23 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 24 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 25 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
@@ -46,8 +47,8 @@ uniform mat4 u_vShadowLight; | |||
46 | uniform vec3 u_lightPos; | 47 | uniform vec3 u_lightPos; |
47 | 48 | ||
48 | // varyings | 49 | // varyings |
49 | varying vec4 vNormal; // w = texcoord.x | 50 | varying vec4 vNormal; // w = texcoord.x |
50 | varying vec4 vECPos; // w = texcoord.y | 51 | varying vec4 vECPos; // w = texcoord.y |
51 | varying vec3 vEyePos; | 52 | varying vec3 vEyePos; |
52 | varying vec4 vShadowCoord; | 53 | varying vec4 vShadowCoord; |
53 | varying vec2 vEnvTexCoord; | 54 | varying vec2 vEnvTexCoord; |
@@ -56,18 +57,18 @@ varying float vDiffuseIntensity; | |||
56 | #ifdef PC | 57 | #ifdef PC |
57 | void main() | 58 | void main() |
58 | { | 59 | { |
59 | vNormal.w = texcoord.x; | 60 | vNormal.w = texcoord.x; |
60 | vECPos.w = texcoord.y; | 61 | vECPos.w = texcoord.y; |
61 | vEyePos = u_eye; | 62 | vEyePos = u_eye; |
62 | 63 | ||
63 | // position normals and vert | 64 | // position normals and vert |
64 | vECPos.xyz = (u_mvMatrix*vec4(vert, 1.0)).xyz; | 65 | vECPos.xyz = (u_mvMatrix*vec4(vert, 1.0)).xyz; |
65 | vNormal.xyz = (u_normalMatrix*vec4(normal, 0.0)).xyz; | 66 | vNormal.xyz = (u_normalMatrix*vec4(normal, 0.0)).xyz; |
66 | 67 | ||
67 | // pass along the geo | 68 | // pass along the geo |
68 | gl_Position = u_projMatrix * vec4(vECPos.xyz, 1.0); | 69 | gl_Position = u_projMatrix * vec4(vECPos.xyz, 1.0); |
69 | 70 | ||
70 | mat4 shadowMat = u_shadowBiasMatrix*u_projMatrix*u_vShadowLight*u_worldMatrix; | 71 | mat4 shadowMat = u_shadowBiasMatrix*u_projMatrix*u_vShadowLight*u_worldMatrix; |
71 | vShadowCoord = shadowMat * vec4(vert, 1.0); | 72 | vShadowCoord = shadowMat * vec4(vert, 1.0); |
72 | } | 73 | } |
73 | #endif | 74 | #endif |
@@ -76,31 +77,31 @@ void main() | |||
76 | 77 | ||
77 | void main() | 78 | void main() |
78 | { | 79 | { |
79 | vNormal.w = texcoord.x; | 80 | vNormal.w = texcoord.x; |
80 | vECPos.w = texcoord.y; | 81 | vECPos.w = texcoord.y; |
81 | vEyePos = u_eye; | 82 | vEyePos = u_eye; |
82 | 83 | ||
83 | // position normals and vert | 84 | // position normals and vert |
84 | vECPos.xyz = (u_mvMatrix*vec4(vert, 1.0)).xyz; | 85 | vECPos.xyz = (u_mvMatrix*vec4(vert, 1.0)).xyz; |
85 | vNormal.xyz = (u_normalMatrix*vec4(normal, 0.0)).xyz; | 86 | vNormal.xyz = (u_normalMatrix*vec4(normal, 0.0)).xyz; |
87 | |||
88 | // pass along the geo | ||
89 | gl_Position = u_projMatrix * vec4(vECPos.xyz, 1.0); | ||
86 | 90 | ||
87 | // pass along the geo | 91 | //mat4 shadowMat = u_shadowBiasMatrix*u_projMatrix*u_vShadowLight*u_worldMatrix; |
88 | gl_Position = u_projMatrix * vec4(vECPos.xyz, 1.0); | ||
89 | |||
90 | //mat4 shadowMat = u_shadowBiasMatrix*u_projMatrix*u_vShadowLight*u_worldMatrix; | ||
91 | //vShadowCoord = shadowMat * vec4(vert, 1.0); | 92 | //vShadowCoord = shadowMat * vec4(vert, 1.0); |
92 | 93 | ||
93 | // normal mapping | 94 | // normal mapping |
94 | vec3 normal = normalize(vNormal.xyz); | 95 | vec3 normal = normalize(vNormal.xyz); |
95 | 96 | ||
96 | // create envmap coordinates | 97 | // create envmap coordinates |
97 | vec3 r = reflect( vec3(vECPos.xyz - u_eye.xyz), normal); | 98 | vec3 r = reflect( vec3(vECPos.xyz - u_eye.xyz), normal); |
98 | float m = 2.0 * length(r); | 99 | float m = 2.0 * length(r); |
99 | vEnvTexCoord = vec2(r.x/m + 0.5, r.y/m + 0.5); | 100 | vEnvTexCoord = vec2(r.x/m + 0.5, r.y/m + 0.5); |
100 | 101 | ||
101 | vec3 lightDirection = normalize(u_lightPos - vECPos.xyz); | 102 | vec3 lightDirection = normalize(u_lightPos - vECPos.xyz); |
102 | vDiffuseIntensity = max(0.0, dot(normal, lightDirection)); | 103 | vDiffuseIntensity = max(0.0, dot(normal, lightDirection)); |
103 | 104 | ||
104 | } | 105 | } |
105 | 106 | ||
106 | #endif | 107 | #endif |