diff options
Diffstat (limited to 'data/shaders/lighting.vert')
-rw-r--r-- | data/shaders/lighting.vert | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/data/shaders/lighting.vert b/data/shaders/lighting.vert index 0178530..99e9b37 100644 --- a/data/shaders/lighting.vert +++ b/data/shaders/lighting.vert @@ -9,20 +9,19 @@ * */ -varying vec3 pos; varying vec3 normal; +varying vec3 col_ambi_diff; +varying vec3 col_emit; varying vec3 light0vc; +varying vec3 light0half; varying float light0dist; varying vec3 light1vc; varying vec3 light2vc; -varying vec3 col_ambi_diff; -varying vec3 col_emit; - vec3 v4conv3(vec4 a) { - vec4 div = a/a.w; + vec4 div = a/(a.w); return div.xyz; } @@ -30,15 +29,17 @@ void main() { vec4 vert; vec3 vert_to_light; + vec3 vert_to_eye; vert = gl_ModelViewMatrix * gl_Vertex; - pos = v4conv3(vert); normal = gl_NormalMatrix * gl_Normal; /* Spotlight - positional light */ vert_to_light = v4conv3(gl_LightSource[0].position - vert); light0dist = length(vert_to_light); light0vc = normalize(vert_to_light); + vert_to_eye = v4conv3(-vert); + light0half = normalize(vert_to_eye + vert_to_light); /* Diffuse "background glow" - this can be normalised only once, here, since 'position' * is really 'direction' and is the same for all vertices. */ |