Parametric Random Function For 2D Noise Generation

前端 未结 1 1705
南旧
南旧 2020-12-19 16:44

I\'m attempting to generate infinite random terrain. The terrain should generate the same every time given the same seed.

I\'ve tried using Java\'s Random function,

相关标签:
1条回答
  • 2020-12-19 17:10

    You are looking for hashing function. Try one of those:

    http://www.concentric.net/~ttwang/tech/inthash.htm

    Here's example usage:

    int hash32shift(int key)
    {
      key = ~key + (key << 15); // key = (key << 15) - key - 1;
      key = key ^ (key >>> 12);
      key = key + (key << 2);
      key = key ^ (key >>> 4);
      key = key * 2057; // key = (key + (key << 3)) + (key << 11);
      key = key ^ (key >>> 16);
      return key;
    }
    
    int noise(int x, int y, int seed)
    {
        return hash32shift(seed+hash32shift(x+hash32shift(y)));
    }
    

    And, it looks like this:

    noise

    0 讨论(0)
提交回复
热议问题