X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fstandard.fs;fp=shaders%2Fstandard.fs;h=d3a6842926edc966466f1dfe774c11f7aff297c9;hb=23a1be081ab9e378cba49a23b8ed4d4082b580c1;hp=e3f05c8d72a042046450f13af9e3413cc7e10144;hpb=1f0e3292c021e8263716e5f4544a1efcedf3f03d;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/standard.fs b/shaders/standard.fs index e3f05c8..d3a6842 100644 --- a/shaders/standard.fs +++ b/shaders/standard.fs @@ -1,20 +1,40 @@ out vec4 FragColor; +uniform sampler2D uTexGarbage; uniform sampler2D uTexMain; -uniform vec4 uColour; +uniform vec3 uCamera; +uniform vec4 uPlane; in vec4 aColour; in vec2 aUv; in vec3 aNorm; in vec3 aCo; +in vec3 aWorldCo; + +#include "common_world.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); + 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 ); + + FragColor = vec4(vfrag, 1.0); }