Results 1 to 9 of 9

Thread: How to avoid filling unwanted basins on Wilbur?

  1. #1
    Professional Artist Naima's Avatar
    Join Date
    Mar 2010
    Location
    Italy
    Posts
    1,583

    Default How to avoid filling unwanted basins on Wilbur?

    Since I have huge maps sometimes for me is hard to manually deselect areas I do not want to be fille,d is possible to avoid that valleys I do not want to be filled get filled in other ways?

  2. #2
    Administrator waldronate's Avatar
    Join Date
    Mar 2007
    Location
    The High Desert
    Posts
    3,605

    Default

    Using a selection to prevent the final write will do something. The basin filling will still happen in the internal temporary surface, but it won't carry through to the final result to unselected areas. This technique will likely result in a big hole unless you're selecting the basins themselves.

    A really ugly technique that will carry through into other filters such as incise flow or precipiton erosion is to paint a value of -1 (or negative something large) at the low spot of a valley that you don't want filled. The basin fill algorithm has a "feature" that places below zero always act as sinks and so the fill will drain away into that little spot. You just need to remember to fill the spot before moving on to do other things. A small mask and median filter will avoid it. If you're going to force that valley a lot, making a selection image and loading it for forcing spots up and back is an option.

    The long-term goal (about twenty years now) is to allow multiple surfaces, which would allow copying to a source and cloning back into the main area. I don't see that happening any time soon, though.

    If I ever get around to adding additional annotations for a surface instead of just straight height fields, allowing logical sinks without breaking the surface (that is, the sinks get applied before the fill and restored just after the fill) might be a useful feature.

  3. #3
    Professional Artist Naima's Avatar
    Join Date
    Mar 2010
    Location
    Italy
    Posts
    1,583

    Default

    Quote Originally Posted by waldronate View Post
    Using a selection to prevent the final write will do something. The basin filling will still happen in the internal temporary surface, but it won't carry through to the final result to unselected areas. This technique will likely result in a big hole unless you're selecting the basins themselves.

    A really ugly technique that will carry through into other filters such as incise flow or precipiton erosion is to paint a value of -1 (or negative something large) at the low spot of a valley that you don't want filled. The basin fill algorithm has a "feature" that places below zero always act as sinks and so the fill will drain away into that little spot. You just need to remember to fill the spot before moving on to do other things. A small mask and median filter will avoid it. If you're going to force that valley a lot, making a selection image and loading it for forcing spots up and back is an option.

    The long-term goal (about twenty years now) is to allow multiple surfaces, which would allow copying to a source and cloning back into the main area. I don't see that happening any time soon, though.

    If I ever get around to adding additional annotations for a surface instead of just straight height fields, allowing logical sinks without breaking the surface (that is, the sinks get applied before the fill and restored just after the fill) might be a useful feature.
    I am not sure to have understood what you mean by doing a paint value of -1 applied to a whole world?
    I usually do select -5 to 150 m for example, apply noise 3-5% and then fill , then again noise then fill then I use flow erosion , the problem is I do this more than one time because usually it creates straight rivers that I do not like much , I am not sure if I can improve the way I do this because I work on huge maps of 21k and so Its hard to keep under controll all the little holes it creates the selection.
    I then proceed to gradually increase heights selections like 125-800, 700-1500, 1400-2500 and so on , but the futher I go ahead I notice that it erodes a lot of the nice shapes of the mountains that I previously created in other softwares like terragen or worldmachine. That said I also rarely use rain erosion because it creates on my world an unnatural zigzag appearence on the coastlines that seems unnatural at least from that huge size perspective, I usually so use a 4 way and a 25 power minimum but only near water areas or otherwise it destroys all the interiors .

    Another feature I might sugest to add is ability to pan and use the little hand icon to move around the map view while in the preview mode of a fluvial erosion , because its locked as is now and also doesn't allow to zoom around and if too far away from zoom it doesn't even show up the preview changes... Anyway I have to say that I love your program, and for me is one of the best if not the best for that kind of works!

  4. #4
    Administrator waldronate's Avatar
    Join Date
    Mar 2007
    Location
    The High Desert
    Posts
    3,605

    Default

    I'm not sure that I understand the process that you're using. It sounds fairly complex.

    Basin filling conceptually works by setting "water" to a high level on the whole surface and then draining it away, letting it pool into the low spots of the surface. When all of the water drains away to the lowest level that it can, the software "freezes" it all into land. Wilbur treats the "lowest level" as either the lowest point on the edge of the map or any point below zero on the surface. If you paint one pixel at the low spot of a basin to a value below zero such as -1, then the "water" will all drain away into that sump, preventing the basin from being filled. So... if you want to keep a basin through a basin fill operation, put a drain (at least one pixel below zero) where you want the basin to stay. You'll probably want to get rid of that drain before doing other operations such as precipiton erosion, though, because precipiton erosion will start pulling in altitude to fill the drain.

    One way to make sure that you have drains is to use a selection with little spots for the drains that you always want to keep. Before any basin fill, load the selection, set the surface to -1 (setting only the selected spots to -1), select all (or load some other selection for basin fill), fill basins, then eliminate the drains by loading the drain selection and using Filter>>Morphological>>Median (or any of the morphological filters because they will select the maximum, minimum, or most common value in the local neighborhood).

    Being able to pan around the surface while a modal dialog is up would take a good deal of work because of how the system message loop operates. It's not something that's likely to happen any time soon, unfortunately.

  5. #5
    Professional Artist Naima's Avatar
    Join Date
    Mar 2010
    Location
    Italy
    Posts
    1,583

    Default

    Quote Originally Posted by waldronate View Post
    I'm not sure that I understand the process that you're using. It sounds fairly complex.

    Basin filling conceptually works by setting "water" to a high level on the whole surface and then draining it away, letting it pool into the low spots of the surface. When all of the water drains away to the lowest level that it can, the software "freezes" it all into land. Wilbur treats the "lowest level" as either the lowest point on the edge of the map or any point below zero on the surface. If you paint one pixel at the low spot of a basin to a value below zero such as -1, then the "water" will all drain away into that sump, preventing the basin from being filled. So... if you want to keep a basin through a basin fill operation, put a drain (at least one pixel below zero) where you want the basin to stay. You'll probably want to get rid of that drain before doing other operations such as precipiton erosion, though, because precipiton erosion will start pulling in altitude to fill the drain.

    One way to make sure that you have drains is to use a selection with little spots for the drains that you always want to keep. Before any basin fill, load the selection, set the surface to -1 (setting only the selected spots to -1), select all (or load some other selection for basin fill), fill basins, then eliminate the drains by loading the drain selection and using Filter>>Morphological>>Median (or any of the morphological filters because they will select the maximum, minimum, or most common value in the local neighborhood).

    Being able to pan around the surface while a modal dialog is up would take a good deal of work because of how the system message loop operates. It's not something that's likely to happen any time soon, unfortunately.
    Id doesn't matter if the selection is not connected to the -1 one?

  6. #6
    Administrator waldronate's Avatar
    Join Date
    Mar 2007
    Location
    The High Desert
    Posts
    3,605

    Default

    The general way that Wilbur implements selection is that the operation is performed and then the result is merged back to the surface through the selection. For single-pixel operations like add or set, this happens pretty quickly and is independent of everything else. For operations like Incise Flow and Fill Basins that process the whole surface into a temporary surface, blending is a separate operation that happens later. If you have a large basin without a drain and draw a selection over half of it, Wilbur will fill the basin and the copy the filled result back to the main surface through the mask of the selection, resulting in a basin with a large cliff along the selection. In the same way, a basin with a drain will be only filled to a much lower extent (none at all if the drain is exactly at the low point), and the copy back through the selection mask will be much less likely to have a visible effect.

    A basic Fractal Noise surface:
    s0.jpg

    Above surface with a basin fill through a selection. Notice the cliff.
    s1.jpg

    The starting surface with a drain added (the little blue spot is -1 altitude).
    s2.jpg

    Above surface with a basin fill through a selection. Notice that the small basins are filled, but the big basin has emptied through the drain. Also notice the edges of the selection.
    s3.jpg
    Last edited by waldronate; 12-28-2022 at 03:07 PM.

  7. #7
    Guild Artisan su_liam's Avatar
    Join Date
    Aug 2007
    Location
    Port Alberta, Regina(IRL: Eugene, OR)
    Posts
    798

    Default

    One way to do cleaner selections would be to use the basin select tool, deselect the blobs where you don’t want the basin fill, then apply basin fill to that selection. Bobzyerunkel…

  8. #8
    Guild Artisan su_liam's Avatar
    Join Date
    Aug 2007
    Location
    Port Alberta, Regina(IRL: Eugene, OR)
    Posts
    798

    Default

    As I’m a little concerned that the basin selection might not be perfect and make a weird trench around the edge of basins, I would dilate(expand) the selection a little bit between deselecting the parts where I don’t want basins filled and applying the basin fill itself. Hopefully, this is all somewhat clear.

  9. #9
    Administrator waldronate's Avatar
    Join Date
    Mar 2007
    Location
    The High Desert
    Posts
    3,605

    Default

    The basin fill tools in Wilbur all share the same underlying code, meaning that they will always get the exact same results for the same input parameters. Having said that, the usual fill parameters (Slope = -1 to let the system calculate the slope value to use) won't get actual lakes in a geophysical sense, but will give a gently sloping flattish surface that makes it easier to get connectivity across lakes. Using Slope=0 will get you precisely the pit-filled image, but it gets tough to run rivers through the whole system because they stop when they lose a downward slope.

Posting Permissions

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