X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fstandard.fs;h=321d7ada7833b84785d423a392c08e37886934ed;hb=41f359a39cd35650bc6ed4dc01989c683409ca68;hp=e3f05c8d72a042046450f13af9e3413cc7e10144;hpb=1f1d636056450dcd23cce55c0795ec6276272531;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/standard.fs b/shaders/standard.fs index e3f05c8..321d7ad 100644 --- a/shaders/standard.fs +++ b/shaders/standard.fs @@ -1,20 +1,43 @@ -out vec4 FragColor; - +uniform sampler2D uTexGarbage; uniform sampler2D uTexMain; -uniform vec4 uColour; +uniform vec3 uCamera; +uniform vec4 uPlane; +uniform vec3 uBoard0; +uniform vec3 uBoard1; in vec4 aColour; in vec2 aUv; in vec3 aNorm; in vec3 aCo; +in vec3 aWorldCo; + +#include "common_world.glsl" +#include "motion_vectors_fs.glsl" void main() { - vec3 diffuse = texture( uTexMain, aUv ).rgb; - float light1 = max(0.0,dot(-vec3(0.5,-0.8,0.25), aNorm)); - float light2 = max(0.0,dot(-vec3(-0.8,0.5,-0.25), aNorm)); - diffuse += vec3(0.2,0.2,0.2) + - vec3(1.0,1.0,0.9)*light1 + - vec3(0.1,0.3,0.4)*light2; - FragColor = vec4(diffuse*uColour.rgb, aColour.a*uColour.a); + compute_motion_vectors(); + + vec3 vfrag = vec3(0.5,0.5,0.5); + vec4 vsamplemain = texture( uTexMain, aUv ); + vec3 qnorm = normalize(aNorm); + + vfrag = vsamplemain.rgb; + + if( g_light_preview == 1 ) + { + vfrag = vec3(0.5); + } + + // Lighting + vec3 halfview = uCamera - aWorldCo; + float fdist = length( halfview ); + halfview /= fdist; + + vfrag = do_light_diffuse( vfrag, qnorm ); + vfrag = do_light_spec( vfrag, qnorm, halfview, 0.1 ); + vfrag = do_light_shadowing( vfrag ); + vfrag = apply_fog( vfrag, fdist ); + + oColour = vec4(vfrag, 1.0); }