Skip to content

Random generator is not proper-random, I offer an improvement. #3

@sabiland

Description

@sabiland

Loki random generator is not proper-random, if you put in seed gid.x/gid.y. Try to make random noise image with default Loki implementation and you'll see it is not random.

Here is an improved version, which returns proper [0, 1] random numbers.

// seed2 == gid
thread float MetalHelper::random01(const unsigned seed, float2 seed2) {
    Loki l = Loki(seed);
    // IMPROVEMENT here
    float r = fract(sin(dot(float2(seed2.x, seed2.y), float2(12.9898,78.233))) * ((seed2.x + seed2.y) * l.rand()));
    return r;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions