Пример #1
0
        public FragmentInput VS(Vertex input)
        {
            FragmentInput output;

            output.Position = ShaderBuiltins.Mul(Ortho, new Vector4(input.Position, 0, 1));
            return(output);
        }
Пример #2
0
        public Vector4 FS(FragmentInput input)
        {
            Vector2 texCoords  = input.TextureCoordinates;
            Vector4 inputColor = ShaderBuiltins.Sample(Input, Sampler, texCoords);

            return(inputColor * input.Color);
        }
Пример #3
0
        public Vector4 FS(FragmentInput input)
        {
            Vector4 color = ShaderBuiltins.Sample(SourceTex, SourceSampler, input.TexCoords);

            color.W = 1;
            return(color);
        }
        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);
        }
Пример #5
0
        public Vector4 PS(PixelInput input)
        {
            var textureColor = ShaderBuiltins.Sample(Texture, Sampler, input.UV);

            textureColor *= input.Color;

            return(textureColor);
        }
        public FragmentInput VS(VertexGPU input)
        {
            FragmentInput output;

            output.Position = ShaderBuiltins.Mul(Ortho, new Vector4(input.Position, 0, 1));
            output.Color    = new Vector4(input.Color_Int.X, input.Color_Int.Y, input.Color_Int.Z, 1) / InfoBuffer.ColorNormalizationFactor;
            output.Color.W  = 1;
            return(output);
        }
Пример #7
0
        public FragmentInput VS(VertexInput input)
        {
            FragmentInput output;

            output.Position           = ShaderBuiltins.Mul(Wvp, new Vector4(input.Position, 1));
            output.Color              = input.Color;
            output.TextureCoordinates = input.TextureCoordinates;
            return(output);
        }
Пример #8
0
        public void CS()
        {
            UInt3   dtId      = ShaderBuiltins.DispatchThreadID;
            Vector4 color     = Vector4.Zero;
            uint    randState = (dtId.X * 1973 + dtId.Y * 9277 + Params.FrameCount * 26699) | 1;
            Ray     ray       = Camera.GetRay(Params.Camera, dtId.X, dtId.Y);

            color += Color(ray);
            ShaderBuiltins.Store(Output, new UInt2(dtId.X, dtId.Y), color);
        }
Пример #9
0
        public Vector4 PS(PixelInput input)
        {
            var textureColor = ShaderBuiltins.Sample(Texture, Sampler, input.UV);

            if (ShaderGen.ShaderBuiltins.Abs(textureColor.W) < 0.1)
            {
                ShaderGen.ShaderBuiltins.Discard();
            }

            textureColor *= input.Color;

            return(textureColor);
        }
Пример #10
0
        public FragmentInput VS(VertexInput input)
        {
            FragmentInput output;

            Vector4 p = ShaderBuiltins.Mul(XformView, new Vector4(input.Position, 1));
            Vector4 n = ShaderBuiltins.Mul(XformView, new Vector4(input.Normal, 0));

            output.RelativePosition = p.XYZ();
            output.RelativeNormal   = ShaderBuiltins.Sqrt(n.XYZ());

            output.Projected = ShaderBuiltins.Mul(XformProj, p);

            output.Color = input.Color;
            return(output);
        }
        public void CS()
        {
            UInt3   dtid      = ShaderBuiltins.DispatchThreadID;
            Vector4 color     = Vector4.Zero;
            uint    randState = (dtid.X * 1973 + dtid.Y * 9277 + Params.FrameCount * 26699) | 1;

            uint rayCount = 0;

            for (uint smp = 0; smp < RayTracingApplication.NumSamples; smp++)
            {
                float u   = (dtid.X + RandUtil.RandomFloat(ref randState)) / RayTracingApplication.Width;
                float v   = (dtid.Y + RandUtil.RandomFloat(ref randState)) / RayTracingApplication.Height;
                Ray   ray = Camera.GetRay(Params.Camera, u, v, ref randState);
                color += Color(Params.SphereCount, ref randState, ray, ref rayCount);
            }
            color /= RayTracingApplication.NumSamples;
            ShaderBuiltins.Store(Output, new UInt2(dtid.X, dtid.Y), color);
            ShaderBuiltins.InterlockedAdd(RayCount, 0, rayCount);
        }
Пример #12
0
 private static Vector3 ToSrgb(Vector3 color)
 {
     color = Vector3.Max(color, Vector3.Zero);
     return(Vector3.Max(1.055f * ShaderBuiltins.Pow(color, new Vector3(0.41666667f)) - new Vector3(0.055f), Vector3.Zero));
 }
Пример #13
0
        public Vector4 FS_Solid(FragmentInput input)
        {
            var n = ShaderBuiltins.Sqrt(input.RelativeNormal);

            return(new Vector4(input.Color.XYZ() * n.Z, input.Color.Z));
        }
Пример #14
0
 public Vector4 FS(FragmentInput input)
 {
     return(ShaderBuiltins.Sample(SurfaceTex, SurfaceSampler, input.UV));
 }
Пример #15
0
 public Vector4 FS(FragmentInput input)
 {
     return(ShaderBuiltins.Sample(Tex, Smp, new Vector2(0.5f, 0.5f)));
 }
Пример #16
0
 public float RandomFloatBetween(uint seed, float max, float min)
 {
     return(ShaderBuiltins.Mod(RandomFloat(seed), max - min) + min);
 }
Пример #17
0
        public Vector4 FS(FragmentInput input)
        {
            Vector4 color = ShaderBuiltins.Sample(SourceTex, SourceSampler, input.TexCoords);

            return(new Vector4(ToSrgb(color.XYZ()), 1f));
        }