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); }
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()); }
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))); }
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); }
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)); }
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)); }
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))); }
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); }
public Vector4 FS(FragmentInput input) { Vector4 cubeSample = Sample(TexCube, Sampler, new Vector3(1, 2, 3)); return(Sample(Tex2D, Sampler, input.TextureCoordinate)); }
public Vector4 FS(FragmentInput input) { return(input.Color); }
public Vector4 FS(FragmentInput input) { return(new Vector4(1.0f, 1.0f, 1.0f, 1.0f)); }
public Vector4 FS_Solid(FragmentInput input) { var n = ShaderBuiltins.Sqrt(input.RelativeNormal); return(new Vector4(input.Color.XYZ() * n.Z, input.Color.Z)); }
public Vector4 FS(FragmentInput input) { return(new Vector4(input.Position.X, input.Position.Y, input.Position.Z, 1)); }
public Vector4 FS(FragmentInput input) { return(Sample(SurfaceTexture, SurfaceSampler, input.UV) * input.frColor); }
public Vector4 FS(FragmentInput input) { return(ShaderBuiltins.Sample(SurfaceTex, SurfaceSampler, input.UV)); }
public Vector4 FS(FragmentInput input) { return(Sample(SurfaceTexture, SurfaceSampler, input.TexCoords)); }
public Vector4 FS(FragmentInput input) { return(ShaderBuiltins.Sample(Tex, Smp, new Vector2(0.5f, 0.5f))); }
public Vector4 FS(FragmentInput input) { return(new Vector4(1, 1, 1, 1)); }
public void FS(FragmentInput input) { }
public virtual FragmentOutput Fragment(FragmentInput input) { return(default(FragmentOutput)); }