Пример #1
0
    static Result scene(float x, float y)
    {
        float  radio = 0.1f; //去掉角,变圆
        Result c     = new Result(SDFMethods.triangleSDF(x, y, 0.5f, 0.2f, 0.8f, 0.8f, 0.3f, 0.6f) - radio, 1.0f);

        return(c);
    }
Пример #2
0
    static Result scene(float x, float y)
    {
        Result a = new Result(SDFMethods.circleSDF(x, y, 0.4f, 0.5f, 0.20f), 1.0f);
        Result b = new Result(SDFMethods.circleSDF(x, y, 0.6f, 0.5f, 0.20f), 0.8f);

        return(SDFMethods.intersectOp(a, b));
    }
Пример #3
0
    static Result scene(float x, float y)
    {
        Result a = new Result(SDFMethods.circleSDF(x, y, 0.4f, 0.5f, 0.20f), 1.0f);
        Result b = new Result(SDFMethods.circleSDF(x, y, 0.6f, 0.5f, 0.20f), 0.8f);

        return(SDFMethods.subtractOp(b, a));
    }
Пример #4
0
    static Result scene(float x, float y)
    {
        float  radio = 0.1f; //去掉角,变圆
        Result c     = new Result(SDFMethods.boxSDF(x, y, 0.5f, 0.5f, SDFMethods.TWO_PI / 16.0f, 0.3f, 0.1f) - radio, 1.0f);

        return(c);
    }
Пример #5
0
    static Result scene(float x, float y)
    {
        #region M I
        Result a = new Result(SDFMethods.capsuleSDF(x, y, 0.15f, 0.1f, 0.15f, 0.4f, 0.03f), 1.0f);
        Result b = new Result(SDFMethods.capsuleSDF(x, y, 0.15f, 0.1f, 0.3f, 0.4f, 0.03f), 1.0f);
        Result c = new Result(SDFMethods.capsuleSDF(x, y, 0.3f, 0.4f, 0.45f, 0.1f, 0.03f), 1.0f);
        Result d = new Result(SDFMethods.capsuleSDF(x, y, 0.45f, 0.1f, 0.45f, 0.4f, 0.03f), 1.0f);
        Result e = new Result(SDFMethods.capsuleSDF(x, y, 0.7f, 0.1f, 0.7f, 0.4f, 0.03f), 1.0f);
        #endregion

        Result r = SDFMethods.unionOp(SDFMethods.unionOp(a, b), SDFMethods.unionOp(c, d));
        r = SDFMethods.unionOp(r, e);

        #region K
        Result f = new Result(SDFMethods.capsuleSDF(x, y, 0.2f, 0.6f, 0.2f, 0.9f, 0.03f), 1.0f);
        Result g = new Result(SDFMethods.capsuleSDF(x, y, 0.2f, 0.75f, 0.4f, 0.6f, 0.03f), 1.0f);
        Result h = new Result(SDFMethods.capsuleSDF(x, y, 0.2f, 0.75f, 0.4f, 0.9f, 0.03f), 1.0f);

        Result i = new Result(SDFMethods.capsuleSDF(x, y, 0.575f, 0.6f, 0.575f, 0.9f, 0.03f), 1.0f);
        Result j = new Result(SDFMethods.capsuleSDF(x, y, 0.575f, 0.9f, 0.825f, 0.9f, 0.03f), 1.0f);
        Result k = new Result(SDFMethods.capsuleSDF(x, y, 0.825f, 0.6f, 0.825f, 0.9f, 0.03f), 1.0f);

        #endregion

        f = SDFMethods.unionOp(f, g);
        f = SDFMethods.unionOp(f, h);

        i = SDFMethods.unionOp(i, j);
        i = SDFMethods.unionOp(i, k);

        r = SDFMethods.unionOp(r, f);
        r = SDFMethods.unionOp(r, i);
        return(r);
    }
Пример #6
0
    static Result scene(float x, float y)
    {
        Result r1 = new Result(SDFMethods.circleSDF(x, y, 0.3f, 0.3f, 0.10f), 2.0f);
        Result r2 = new Result(SDFMethods.circleSDF(x, y, 0.3f, 0.7f, 0.05f), 0.8f);
        Result r3 = new Result(SDFMethods.circleSDF(x, y, 0.7f, 0.5f, 0.10f), 0.0f);

        return(SDFMethods.unionOp(SDFMethods.unionOp(r1, r2), r3));
    }
Пример #7
0
    static Result scene(float x, float y)
    {
        Result a = new Result(SDFMethods.circleSDF(x, y, 0.4f, 0.2f, 0.1f), 2.0f);
        Result b = new Result(SDFMethods.boxSDF(x, y, 0.5f, 0.8f, SDFMethods.TWO_PI / 16.0f, 0.1f, 0.1f), 0.0f);
        Result c = new Result(SDFMethods.boxSDF(x, y, 0.8f, 0.5f, SDFMethods.TWO_PI / 16.0f, 0.1f, 0.1f), 0.0f);

        return(SDFMethods.unionOp(SDFMethods.unionOp(a, b), c));
    }
Пример #8
0
    static Result scene(float x, float y)
    {
        Result a = new Result(SDFMethods.circleSDF(x, y, 0.4f, 0.2f, 0.1f), 2.0f, 0.0f);
        Result d = new Result(SDFMethods.planeSDF(x, y, 0.0f, -1.0f, 0.5f), 0.0f, 0.9f);
        Result e = new Result(SDFMethods.circleSDF(x, y, 0.5f, 0.5f, 0.4f), 0.0f, 0.9f);

        return(SDFMethods.unionOp(a, SDFMethods.subtractOp(d, e)));

        //Result a = new Result(SDFMethods.circleSDF(x, y, 0.4f, 0.2f, 0.1f), 2.0f, 0.0f);
        //Result b = new Result(SDFMethods.boxSDF(x, y, 0.5f, 0.8f, SDFMethods.TWO_PI / 16.0f, 0.1f, 0.1f), 0.0f, 0.9f);
        //Result c = new Result(SDFMethods.boxSDF(x, y, 0.8f, 0.5f, SDFMethods.TWO_PI / 16.0f, 0.1f, 0.1f), 0.0f, 0.9f);
        //return SDFMethods.unionOp(SDFMethods.unionOp(a, b), c);
    }
Пример #9
0
    static Result scene(float x, float y)
    {
        Result b = new Result(SDFMethods.planeSDF(x, y, 0.0f, 0.5f, 0.0f, 1.0f), 0.8f);

        return(b);
    }
Пример #10
0
    private static Result defaultScene(float x, float y)
    {
        Result a = new Result(SDFMethods.circleSDF(x, y, 0.5f, 0.5f, 0.10f), 1.0f);

        return(a);
    }
Пример #11
0
    static Result scene(float x, float y)
    {
        Result c = new Result(SDFMethods.capsuleSDF(x, y, 0.4f, 0.4f, 0.6f, 0.6f, 0.1f), 1.0f);

        return(c);
    }