Fractal procedural erosion shader public beta

Started by Daniil, November 15, 2015, 01:49:40 PM

Previous topic - Next topic

AndyWelder

QuoteTG 3.4...?did I miss an update?
No, I misread the number: It's 3.3.04 on my system  :-[
"Ik rotzooi maar wat aan" Karel Appel

AP

Knowing there are limits in the effected area size but curiosity.

AP

I think the reason why the terrain exploded vertically was that the camera was out of the range that the Erosion shader is limited to. It was to high in altitude. Another thing was there was no erosion present at all when out of range. I noticed the same effect working on another project.

Daniil

#33
Quote from: Chris on November 20, 2015, 05:39:21 PM
Knowing there are limits in the effected area size but curiosity.

Well, it is very easy to make this area larger at few times, but I don't want  such limited solution that still depends on the planet size and erosion scale. I have some ideas how to make erosion range much higher (say, in 1000 times, that is enough for planetary scales), but don't want to do it right now. I can even do it truly infinite, but this means too many changes in the code and also performance would degrade noticeably.

Quote from: Chris on November 21, 2015, 12:50:34 AM
I think the reason why the terrain exploded vertically was that the camera was out of the range that the Erosion shader is limited to. It was to high in altitude. Another thing was there was no erosion present at all when out of range. I noticed the same effect working on another project.
I'll check this.

Daniil.

AP

No need for truly infinite so that 1,000 times is good enough but it can wait. I eventually want to test it in larger scales at some point in the future.

Thank you for checking that error.



WAS

Quote from: blinkfrog on November 21, 2015, 01:45:29 AM
Quote from: Chris on November 20, 2015, 05:39:21 PM
Knowing there are limits in the effected area size but curiosity.

Well, it is very easy to make this area larger at few times, but I don't want  such limited solution that still depends on the planet size and erosion scale. I have some ideas how to make erosion range much higher (say, in 1000 times, that is enough for planetary scales), but don't want to do it right now. I can even do it truly infinite, but this means too many changes in the code and also performance would degrade noticeably.

Quote from: Chris on November 21, 2015, 12:50:34 AM
I think the reason why the terrain exploded vertically was that the camera was out of the range that the Erosion shader is limited to. It was to high in altitude. Another thing was there was no erosion present at all when out of range. I noticed the same effect working on another project.
I'll check this.

Daniil.

I would love to see global scales honestly. Performance is a User-Side issue.

Daniil

Quote from: WASasquatch on November 21, 2015, 02:22:18 AM
I would love to see global scales honestly. Performance is a User-Side issue.
I don't think so.
Good performance is a very important aspect of a user experience.
Realism AND performance are my main priorities. My new algorithm already has a better realism and more natural behaviour, and I am working to make it as fast as possible.
I can write procedural erosion shader which will process infinite area and have a good realism close to the best raster erosion applications but it will be totally unusable as it would consume terabytes of RAM and render single image in a months.

Compromises are the key. Limited area which is enough to cover a planet is good compromise. So I'll expand the area up to 1000x1000 of current in the future, and I think it is enough (that is ~1M x 1M meters).

BTW there are also other problems. You can already cover a whole planet by setting scale to a very high value (100000 for example), but erosion uses a planar projection and won't wrap around the planet. This is the real problem, not the range. I'll try to solve it of course. But I want to get a good realistic erosion first, even if on the limited area of a 1000x1000 kilometers.

mhaze

#37
Danill, is it possible to smooth the output from the deposition shade to use as snow?  Because of the complexity of the node structure in my current image I can't see how I can do by the obvious method of having a second terrain and taking depostion from that.

Daniil

Quote from: mhaze on November 21, 2015, 12:29:12 PM
Danill, is it possible to smooth the output from the deposition shade to use as snow?  Because of the complexity of the node structure in my current image I can't see how I can do by the obvious method of having a second terrain and taking depostion from that.
Do you mean smoothing of deposition map? I suppose you are trying to add a displacement based on this map to add a volume to snow? If so, I afraid I cannot do the fast-working smoothing. But I would try to limit the values of deposition map (say, by setting white point to 0.2) so it would be smoother in areas with deep snow.

The right way would be adding a special snow layer to the shader and a separate snow map. Possibly I'll add it later.

Daniil.

mhaze


WAS

I've been playing with setting for awhile and I can't seem to get rid of the hard transition between sediment and eroded rock. Can you suggest settings to remedy this? Or maybe you could add a smooth setting much like altitude/slope/intersection settings?


AP

Quote from: blinkfrog on November 21, 2015, 04:00:33 AM
Quote from: WASasquatch on November 21, 2015, 02:22:18 AM
I would love to see global scales honestly. Performance is a User-Side issue.
I don't think so.
Good performance is a very important aspect of a user experience.
Realism AND performance are my main priorities. My new algorithm already has a better realism and more natural behaviour, and I am working to make it as fast as possible.
I can write procedural erosion shader which will process infinite area and have a good realism close to the best raster erosion applications but it will be totally unusable as it would consume terabytes of RAM and render single image in a months.

Compromises are the key. Limited area which is enough to cover a planet is good compromise. So I'll expand the area up to 1000x1000 of current in the future, and I think it is enough (that is ~1M x 1M meters).

BTW there are also other problems. You can already cover a whole planet by setting scale to a very high value (100000 for example), but erosion uses a planar projection and won't wrap around the planet. This is the real problem, not the range. I'll try to solve it of course. But I want to get a good realistic erosion first, even if on the limited area of a 1000x1000 kilometers.

Correct me if i am wrong here. Are you saying you can multiply the current size of 1,000 kilometers times 1,000 square? If that is true then it will be an area of one million kilometers. Earth's circumference is 40,075 kilometers. Jupiter is 439,264 kilometers.

Daniil

Quote from: WASasquatch on November 21, 2015, 06:18:20 PM
I've been playing with setting for awhile and I can't seem to get rid of the hard transition between sediment and eroded rock. Can you suggest settings to remedy this? Or maybe you could add a smooth setting much like altitude/slope/intersection settings?
I'll think about it. Is this occurs with Deposition Floor layer only?

Quote from: Chris on November 21, 2015, 10:54:09 PM
Correct me if i am wrong here. Are you saying you can multiply the current size of 1,000 kilometers times 1,000 square? If that is true then it will be an area of one million kilometers. Earth's circumference is 40,075 kilometers. Jupiter is 439,264 kilometers.
Yes, this is something that I plan to do. This is optimal solution in terms of performance, coding work and overall erosion range. Still not infinite, but enough for most cases.
And the numbers are approximate and conditional: current range isn't 1000 x 1000 kilometers but 1000 times Scale param times 1000 times Scale. So if you changes default scale you change the erosion area.

AP

I wonder if Mask as blend or Mask as rock removal would help?

Sounds great to me.


rajm

Not sure whether this is my misuse of the mask shader or a problem with the plugin (for which I'm appreciative - the plugin not the problem!!). I set a render going sometime mid evening it hadn't finished later so I left it going overnight. Last thing in the evening it had done 25% of the render next morning it was still at 25% and it didn't look as if anything additional had been done.
I turned off the mask shader and it ran to completion in a more sensible time (c 2 hours)