aboutsummaryrefslogtreecommitdiffstats
path: root/shaders/main/frag.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'shaders/main/frag.glsl')
-rw-r--r--shaders/main/frag.glsl20
1 files changed, 11 insertions, 9 deletions
diff --git a/shaders/main/frag.glsl b/shaders/main/frag.glsl
index 8aa9a6a..f6ed7c3 100644
--- a/shaders/main/frag.glsl
+++ b/shaders/main/frag.glsl
@@ -2,25 +2,27 @@
* Copyright (C) 2018 Tomasz Kramkowski <tk@the-tk.com>
* SPDX-License-Identifier: MIT
*/
-in vec3 fnorm;
-in vec3 fpos;
-in vec2 fuv;
-in vec3 lipos;
+in iface {
+ vec3 norm;
+ vec3 pos;
+ vec2 uv;
+ vec3 lipos;
+} i;
void main()
{
- vec3 fdiff = vec3(texture(tdiff, fuv));
- vec3 fspec = vec3(texture(tspec, fuv));
+ vec3 fdiff = vec3(texture(tdiff, i.uv));
+ vec3 fspec = vec3(texture(tspec, i.uv));
vec3 lico = vec3(1.0, 1.0, 1.0);
vec3 amb = vec3(0.1, 0.1, 0.1);
- vec3 norm = normalize(fnorm);
- vec3 lidir = normalize(lipos - fpos);
+ vec3 norm = normalize(i.norm);
+ vec3 lidir = normalize(i.lipos - i.pos);
vec3 diff = max(dot(norm, lidir), 0.0) * fdiff;
float specen = max(sign(dot(lidir, norm)), 0.0);
- vec3 vwdir = normalize(-fpos);
+ vec3 vwdir = normalize(-i.pos);
vec3 mid = normalize(lidir + vwdir);
vec3 spec = pow(max(dot(norm, mid), 0.0), 256) * specen * fspec;