X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=shaders%2Fstd_alphatest.fs;fp=shaders%2Fstd_alphatest.fs;h=7881b51ed25153da52773c3f1a422920bc124c58;hb=d57b7661518800479c00300ce57407378696eec9;hp=0000000000000000000000000000000000000000;hpb=1c97cb161f885ad24d3356d92c8f4fd0e252bc61;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/shaders/std_alphatest.fs b/shaders/std_alphatest.fs new file mode 100644 index 0000000..7881b51 --- /dev/null +++ b/shaders/std_alphatest.fs @@ -0,0 +1,43 @@ +out vec4 FragColor; + +uniform sampler2D uTexGarbage; +uniform sampler2D uTexMain; +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 vfrag = vec3(0.5,0.5,0.5); + vec4 vsamplemain = texture( uTexMain, aUv ); + vec3 qnorm = normalize(aNorm); + + if( vsamplemain.a < 0.15 ) + discard; + + 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); +}