aboutsummaryrefslogtreecommitdiffstats
path: root/shaders
diff options
context:
space:
mode:
authorTomasz Kramkowski <tk@the-tk.com>2018-10-19 23:42:59 +0300
committerTomasz Kramkowski <tk@the-tk.com>2018-10-19 23:42:59 +0300
commita5262a9504d0ad264d93e1761f5a4123e524cc87 (patch)
tree28b147973149f860007f8ef78e5f9af890ea3e33 /shaders
parent63a4ed57bae7a7ff8c497380cd3353badea15806 (diff)
downloadfaqe-a5262a9504d0ad264d93e1761f5a4123e524cc87.tar.gz
faqe-a5262a9504d0ad264d93e1761f5a4123e524cc87.tar.xz
faqe-a5262a9504d0ad264d93e1761f5a4123e524cc87.zip
Implement specular mapping
Diffstat (limited to 'shaders')
-rw-r--r--shaders/data.h3
-rw-r--r--shaders/main/frag.glsl11
2 files changed, 8 insertions, 6 deletions
diff --git a/shaders/data.h b/shaders/data.h
index e1a71c3..0225212 100644
--- a/shaders/data.h
+++ b/shaders/data.h
@@ -24,7 +24,8 @@
#undef SH_UNI
#endif // SH_UNI
#ifdef SH_TEX
- SH_TEX(2D, tex)
+ SH_TEX(2D, tdiff)
+ SH_TEX(2D, tspec)
#undef SH_TEX
#endif // SH_TEX
#ifdef SH_OUT
diff --git a/shaders/main/frag.glsl b/shaders/main/frag.glsl
index 6d7a53e..8aa9a6a 100644
--- a/shaders/main/frag.glsl
+++ b/shaders/main/frag.glsl
@@ -9,20 +9,21 @@ in vec3 lipos;
void main()
{
- vec3 objco = vec3(texture(tex, fuv));
+ vec3 fdiff = vec3(texture(tdiff, fuv));
+ vec3 fspec = vec3(texture(tspec, fuv));
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 dif = max(dot(norm, lidir), 0.0) * objco;
+ vec3 diff = max(dot(norm, lidir), 0.0) * fdiff;
- float speen = max(sign(dot(lidir, norm)), 0.0);
+ float specen = max(sign(dot(lidir, norm)), 0.0);
vec3 vwdir = normalize(-fpos);
vec3 mid = normalize(lidir + vwdir);
- float spe = pow(max(dot(norm, mid), 0.0), 256) * speen;
+ vec3 spec = pow(max(dot(norm, mid), 0.0), 256) * specen * fspec;
- color = vec4((amb + dif + spe) * lico, 1.0);
+ color = vec4((amb + diff + spec) * lico, 1.0);
}