public Vector4 FS(FragmentInput input)
        {
            float ambient = DirectionalLight.AmbientIntensity;
            float diffuse = DirectionalLight.DiffuseIntensity;

            float shadowBias = 0.0005f;

            Vector3 normalVectorNormalized = Vector3.Normalize(input.Normal);

            Vector3 lightDirectionNormalized = Vector3.Normalize(input.LightVec.XYZ());

            Vector2 shadowCoordsClipped = ClipToTextureCoordinates(input.LightCoord);
            float   shadowCoordDepth    = input.LightCoord.Z / input.LightCoord.W;

            float shadowSampled = Sample(ShadowMap, ShadowMapSampler, shadowCoordsClipped).X;
            float shadowFactor  = shadowCoordDepth - shadowBias < shadowSampled ? 1.0f : 0.0f;

            float diffuseFactor = Vector3.Dot(normalVectorNormalized, lightDirectionNormalized);

            diffuseFactor = Clamp(diffuseFactor, 0.0f, 1.0f) * shadowFactor;

            Vector3 brightness = Clamp(new Vector3(ambient) + ((diffuse * diffuseFactor) * DirectionalLight.Color), new Vector3(0.0f), new Vector3(1.0f));

            return(new Vector4(input.Color * brightness, 1.0f));

            // To debug shadowmap sampling:
            //float shadowFactorDebugDisplay = shadowSampled;
            //return new Vector4(shadowFactorDebugDisplay, shadowFactorDebugDisplay, shadowFactorDebugDisplay, 1.0f);
        }
Пример #2
0
        public Vector4 FS(FragmentInput input)
        {
            Vector4 result        = new Vector4(input.Position.X, input.Position.Y, input.Position.Z, 1);
            Vector3 swizzleVector = result.XYZ();

            return(result.XYZZ());
        }
Пример #3
0
        public Vector4 FS(FragmentInput input)
        {
            Vector4 tintValue    = new Vector4(Tint.Color, 1);
            Vector4 textureValue = Sample(Texture, Sampler, input.TextureCoordinate);

            return((tintValue * Tint.Factor) + (textureValue * (1 - Tint.Factor)));
        }
Пример #4
0
        public Vector4 FS(FragmentInput input)
        {
            Vector2 texCoords  = input.TextureCoordinates;
            Vector4 inputColor = ShaderBuiltins.Sample(Input, Sampler, texCoords);

            return(inputColor * input.Color);
        }
        public FragmentOutput FS(FragmentInput input)
        {
            FragmentOutput output;

            output.ColorOut0 = Saturate(Sample(SourceTexture, SourceSampler, input.TexCoords));
            output.ColorOut1 = Saturate(Sample(SourceTexture, SourceSampler, input.TexCoords) * new Vector4(1.0f, 0.7f, 0.7f, 1f));
            return(output);
        }
        public Vector4 FS(FragmentInput input)
        {
            Vector2 texCoords   = input.TextureCoordinates;
            Vector4 inputColor  = ShaderBuiltins.Sample(Input, Sampler, texCoords);
            Vector4 tintedColor = new Vector4(inputColor.XYZ() * Tint.RGBTintColor, inputColor.Z);

            return(tintedColor);
        }
Пример #7
0
        public Vector4 FS(FragmentInput input)
        {
            float arraySample = SampleComparisonLevelZero(TexArray, Sampler, new Vector2(1, 2), 3, 0.5f);

            return(new Vector4(
                       SampleComparisonLevelZero(Tex2D, Sampler, input.TextureCoordinate, 0.5f),
                       SampleMethod(Tex2D, Sampler),
                       0,
                       1));
        }
Пример #8
0
        public Vector4 FS(FragmentInput input)
        {
            Vector4 cubeSample         = Sample(TexCube, Sampler, new Vector3(1, 2, 3));
            Vector4 arraySample        = Sample(TexArray, Sampler, new Vector2(1, 2), 3);
            Vector4 gradSample         = SampleGrad(Tex2D, Sampler, input.TextureCoordinate, Vector2.One, Vector2.One);
            Vector4 arrayGradSample    = SampleGrad(TexArray, Sampler, input.TextureCoordinate, 3, Vector2.One, Vector2.One);
            Vector4 calledMethodSample = SampleTexture(Tex2D, Sampler);
            Vector4 loaded             = Load(Tex2D, Sampler, new Vector2(1, 2), 0);

            return(Sample(Tex2D, Sampler, input.TextureCoordinate));
        }
Пример #9
0
        public Vector4 FS(FragmentInput input)
        {
            var brickSample = Sample(SurfaceTexture, SurfaceSampler, input.TexCoords);
            var treeSample  = Sample(TreeTexture, TreeSampler, input.TexCoords);

            brickSample.W = 0.8f;

            var bg = Over(brickSample, input.Color);

            return(Over(treeSample, bg));
        }
        public Vector4 FS(FragmentInput input)
        {
            float tintAlpha = (1 == 1)
                ? 1.0f
                : 0.0f;

            Vector4 tintValue    = new Vector4(Tint.Color, tintAlpha);
            Vector4 textureValue = Sample(Texture, Sampler, input.TextureCoordinate);

            return((tintValue * Tint.Factor) + (textureValue * (1 - Tint.Factor)));
        }
Пример #11
0
        public SN.Vector4 FS(FragmentInput input)
        {
            SN.Vector3 normalWS = SN.Vector3.Normalize(input.NormalWS);

            if (!SMath.IsFrontFace)
            {
                normalWS = SN.Vector3.Negate(normalWS);
            }

            SN.Vector3 v     = SN.Vector3.Normalize(CameraPosition - input.PositionWS);
            SN.Vector3 L     = SN.Vector3.Normalize(LightPosition - input.PositionWS);
            float      nDotL = SMath.Saturate(SN.Vector3.Dot(normalWS, L));

            return(SMath.Sample(DiffuseTexture, DiffuseSampler, input.TexCoords) * DiffuseColor * nDotL);
        }
Пример #12
0
        public Vector4 FS(FragmentInput input)
        {
            Vector4 cubeSample = Sample(TexCube, Sampler, new Vector3(1, 2, 3));

            return(Sample(Tex2D, Sampler, input.TextureCoordinate));
        }
Пример #13
0
 public Vector4 FS(FragmentInput input)
 {
     return(input.Color);
 }
Пример #14
0
 public Vector4 FS(FragmentInput input)
 {
     return(new Vector4(1.0f, 1.0f, 1.0f, 1.0f));
 }
Пример #15
0
        public Vector4 FS_Solid(FragmentInput input)
        {
            var n = ShaderBuiltins.Sqrt(input.RelativeNormal);

            return(new Vector4(input.Color.XYZ() * n.Z, input.Color.Z));
        }
Пример #16
0
 public Vector4 FS(FragmentInput input)
 {
     return(new Vector4(input.Position.X, input.Position.Y, input.Position.Z, 1));
 }
Пример #17
0
 public Vector4 FS(FragmentInput input)
 {
     return(Sample(SurfaceTexture, SurfaceSampler, input.UV) * input.frColor);
 }
Пример #18
0
 public Vector4 FS(FragmentInput input)
 {
     return(ShaderBuiltins.Sample(SurfaceTex, SurfaceSampler, input.UV));
 }
Пример #19
0
 public Vector4 FS(FragmentInput input)
 {
     return(Sample(SurfaceTexture, SurfaceSampler, input.TexCoords));
 }
Пример #20
0
 public Vector4 FS(FragmentInput input)
 {
     return(ShaderBuiltins.Sample(Tex, Smp, new Vector2(0.5f, 0.5f)));
 }
Пример #21
0
 public Vector4 FS(FragmentInput input)
 {
     return(new Vector4(1, 1, 1, 1));
 }
Пример #22
0
 public void FS(FragmentInput input)
 {
 }
Пример #23
0
 public virtual FragmentOutput Fragment(FragmentInput input)
 {
     return(default(FragmentOutput));
 }