<@include gpu/Config.slh@> <$VERSION_HEADER$> // Generated on <$_SCRIBE_DATE$> // // directional_light_shadow.frag // fragment shader // // Created by Zach Pomerantz on 1/18/2016. // Copyright 2016 High Fidelity, Inc. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // <@include Shadow.slh@> <@include DeferredBuffer.slh@> <@include DeferredGlobalLight.slh@> <$declareEvalLightmappedColor()$> <$declareEvalAmbientGlobalColor()$> in vec2 _texCoord0; out vec4 _fragColor; void main(void) { DeferredTransform deferredTransform = getDeferredTransform(); DeferredFragment frag = unpackDeferredFragment(deferredTransform, _texCoord0); vec4 worldPos = deferredTransform.viewInverse * vec4(frag.position.xyz, 1.0); float shadowAttenuation = evalShadowAttenuation(worldPos); // Light mapped or not ? if (frag.mode == LIGHT_MAPPED) { vec3 color = evalLightmappedColor( deferredTransform.viewInverse, shadowAttenuation, frag.obscurance, frag.normal, frag.diffuse, frag.specularVal.xyz); _fragColor = vec4(color, 1.0); } else { vec3 color = evalAmbientGlobalColor( deferredTransform.viewInverse, shadowAttenuation, frag.obscurance, frag.position.xyz, frag.normal, frag.diffuse, frag.specular, frag.gloss); _fragColor = vec4(color, frag.normalVal.a); } }