Пример #1
0
    // Standard 2D rotation formula.
    private static float2x2 Rotate2x2(float a)
    {
        float c = Hlsl.Cos(a);
        float s = Hlsl.Sin(a);

        return(new(c, -s, s, c));
    }
Пример #2
0
 public void Execute(ThreadIds ids)
 {
     B[0] = Hlsl.Sin(A);
     B[1] = Hlsl.Cos(A);
     Hlsl.SinCos(A, out float sine, out float cosine);
     B[2] = sine;
     B[3] = cosine;
 }
Пример #3
0
    /// <inheritdoc/>
    public float4 Execute()
    {
        // Normalized screen space UV coordinates from 0.0 to 1.0
        float2 uv = ThreadIds.Normalized.XY;

        // Time varying pixel color
        float3 col = 0.5f + 0.5f * Hlsl.Cos(time + new float3(uv, uv.X) + new float3(0, 2, 4));

        // Output to screen
        return(new(col, 1f));
    }
Пример #4
0
        public void IntrinsicWithInlineOutParamater()
        {
            float angle = 80;

            using ReadWriteBuffer <float> buffer = Gpu.Default.AllocateReadWriteBuffer <float>(4);

            Action <ThreadIds> action = id =>
            {
                buffer[0] = Hlsl.Sin(angle);
                buffer[1] = Hlsl.Cos(angle);
                Hlsl.SinCos(angle, out float sine, out float cosine);
                buffer[2] = sine;
                buffer[3] = cosine;
            };
Пример #5
0
    /// <summary>
    /// Makes some magic happen.
    /// </summary>
    private float4 Tex(float3 p)
    {
        float  t   = time + 78.0f;
        float4 o   = new(p.X, p.Y, p.Z, 3.0f * Hlsl.Sin(t * 0.1f));
        float4 dec =
            new float4(1.0f, 0.9f, 0.1f, 0.15f) +
            new float4(0.06f * Hlsl.Cos(t * 0.1f), 0, 0, 0.14f * Hlsl.Cos(t * 0.23f));

        for (int i = 0; i++ < NumberOfIterations;)
        {
            o.XZYW = Hlsl.Abs(o / Hlsl.Dot(o, o) - dec);
        }

        return(o);
    }
Пример #6
0
 public void Execute(ThreadIds ids)
 {
     B[0] = Hlsl.Sin(A);
     B[1] = Hlsl.Cos(A);
     Hlsl.SinCos(A, out B[2], out B[3]);
 }
Пример #7
0
        private static Float2x2 Rotate(float a)
        {
            float c = Hlsl.Cos(a), s = Hlsl.Sin(a);

            return(new(c, s, -s, c));
        }