Results 1 to 5 of 5

Thread: Rivers using Heirarchical Poisson Disc and Delaunay Triangulation

  1. #1
      Hai-Etlik is offline
    Guild Expert Gracious Donor Hai-Etlik's Avatar
    Join Date
    May 2009
    Location
    48° 28′ N 123° 8′ W
    Posts
    1,121
    Blog Entries
    1

    Wip Rivers using Heirarchical Poisson Disc and Delaunay Triangulation

    Here's what happens when you take a hierarchical Poisson disc stipple field, assign a rainfall level of 0 or 1 based on rank in the field and a precipitation surface (in this case (sin x*cos y)^1.5), assign the nodes around the edge to a starting set (effectively the ocean) and then randomly add nodes adjacent to the connected set in the Delaunay triangulation of the whole set to the connected set until you've connected them all, and then display the graph with edges weighted by the sum of upstream rainfall.

    Rivers using Heirarchical Poisson Disc and Delaunay Triangulation-foo.png

  2. #2
      Hai-Etlik is offline
    Guild Expert Gracious Donor Hai-Etlik's Avatar
    Join Date
    May 2009
    Location
    48° 28′ N 123° 8′ W
    Posts
    1,121
    Blog Entries
    1

    Default

    Now with a weighted selection for flow direction that reduces the likelyhood of sharp bends and constrained hydrological divides.

    Rivers using Heirarchical Poisson Disc and Delaunay Triangulation-foo.png

    Here's the weighting function, where theta is the angle between the new segment and the downstream one. All the available downstream nodes are weighted and then one is selected randomly based on that weighting. This is designed to encourage some squiggle but avoid really sharp bends.
    Code:
    ToDoubleFunction<Optional<Double>> weight = theta->{
      return Math.pow((Math.cos(theta.orElse(0.0))+1)/2, 100) - Math.pow((Math.cos(theta.orElse(0.0))+1)/2, 300)/4;
    };

  3. #3
      Hai-Etlik is offline
    Guild Expert Gracious Donor Hai-Etlik's Avatar
    Join Date
    May 2009
    Location
    48° 28′ N 123° 8′ W
    Posts
    1,121
    Blog Entries
    1

    Default

    I think I may need to add a weighting to the selection of the next node to add, perhaps based on proximity to break lines. If nodes near the break line were selected later it would reduce the occurrence of rivers along the sides of break lines.

  4. #4
      Hai-Etlik is offline
    Guild Expert Gracious Donor Hai-Etlik's Avatar
    Join Date
    May 2009
    Location
    48° 28′ N 123° 8′ W
    Posts
    1,121
    Blog Entries
    1

    Default

    Weighting the selection with proximity to the break line helped immensely.

    Rivers using Heirarchical Poisson Disc and Delaunay Triangulation-foo.png

  5. #5

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •