Pixophir It is called "erosion" and you're part of the link

eriously, would be cool to know if that's a real photography or something rendered…

It's called the "Natural Arch" and there are no links to generate it. Well, at least I couldn't find any. Maybe you'll be luckier. And, yep, also the difficulty of generating caves is a similar problem.

More examples.

Megalomaniak Would need compute shaders for computing things such as errosion.

Unfortunately, the terrain changes over time. Over several years the changes are certainly not big and do not need to implement them in games, but in my case it is necessary.

cybereality I guess you could fake it with good normal and depth maps, but it still probably a lot to generate procedurally and render in Godot.

I'll probably leave it for later. In my concept to do the possible, using ready-made solutions to the maximum. Improvements can be made later, in future versions.

Quite ideally, I try to use only free software - you could say that this is something of an experiment. But there is a deeper meaning in this — I want to offer users the ability to create content, including terrain. And I have a very vague idea of how the issue of licenses will be resolved in the case of using paid add-ons when creating a constructor for the game.

    Oh I see, yeah. You can pay $19/month for Quixel. The website makes it really confusing because I looked into it before. Might pay for a bit and do some renders, but I'd prefer to learn how to create the art myself.

    @Tomcat This is basically the state of the art right here. These are scans and expertly placed art. It would be very hard, or impossible, to get better results than this right now. And the mesh density is so large, I think only Unreal 5 can render it without crashing your system. Though I guess, in theory, it could be made procedurally. No one has figured that out, AFAIK.

      Tomcat Unfortunately, the terrain changes over time. Over several years the changes are certainly not big and do not need to implement them in games, but in my case it is necessary.

      You haven't yet stated what you're exactly after, but to give you guys an overview of what real erosion models may need in addition to the generated terrain surface:

      • A representation of the ground and its strata with their hardness and coherence.
      • A solvent with certain chemical/physical properties.
      • Determine forces to to dissolve a grain from ground and energy to keep it suspension.
      • Determine place and conditions of deposition, watch angle of repose.
      • A representation of erosion mechanisms to determine surface runoff, diffusion, and possibly other things like expansion/contraction when wet/dry.
      • The amount of solvent per unit of time and surface area and their erosional effects.
      • A representation of the transport mechanisms, a river classification, the erosional effects they have on their riverbeds, deposition depending on transport energy.

      And put that all in a shaker and model a numerically stable time dependent integration with a bunch of differential functions, shake (don't stir) and voila ... an erosion model. And that was rather a minimum, aeolian things not yet included. And it is not part of every terrain generator.

      Maybe stick with stable terrain, for the time being ?

        cybereality And the mesh density is so large, I think only Unreal 5 can render it without crashing your system. Though I guess, in theory, it could be made procedurally.

        Pixophir And that was rather a minimum.

        Simplify the grid and calculations (terrain quality) is quite acceptable. Full photorealism and a perfect model are not required (yet). The emphasis of the project is on social interactions (and politics). But a beautiful environment would be desirable…

        Maybe stick with stable terrain, for the time being ?

        For now, yeah, of course. But the possibility of minimal terramorphing (irrigation) is necessary. Something like this:

        Pixophir And put that all in a shaker and model a numerically stable time dependent integration with a bunch of differential functions, shake (don't stir) and voila ...

        I once looked into writing a physics engine that would work on the molecular level. Didn't write any code, but I got a ballpark estimate to the kind of computer that would be needed, and it was like as complex as the entire universe.

        @cybereality Ok, you're kidding. But these models exist and run on a pc, also the real stuff for settlement and city planning or estimation of environmental impact of infrastructure projects may need some supercomputing here and there when official guidelines are still missing. But it is not magic. They work with well defined features, grain sizes being one of them.

        @Tomcat Go ahead. I doubt that there has been the necessity yet to make this for Godot. Go and learn some about the theory, some C++. Then grab some open source programs to see how others addressed the problem, and then go.

          Pixophir Go ahead. I doubt that there has been the necessity yet to make this for Godot. Go and learn some about the theory, some C++. Then grab some open source programs to see how others addressed the problem, and then go.

          Tomcat In my concept to do the possible, using ready-made solutions to the maximum.

          I have in front of me The Sims 3, a rather old open-world game. The minimum I set myself is to improve it a bit by adding some social interactions and allowing players to expand the game. And then improving it can be done to… infinity.

          Pixophir But these models exist and run on a pc

          I mean in real time. Like a realistic game, where you could pick up a glass of water, and the entire water is simulated as hydrogen and oxygen molecules. And then you could drop the glass, and the glass would shatter, based on the physical properties, and each drop of water would be simulated. I can't recall the exact numbers, but to simulate that amount of particles would require more energy than would be possible (hotter than could be cooled). I mean, maybe some crazy quantum computer could do it, I'm talking about traditional processors.

            @cybereality I don't know enough about fluid dynamics. Former girlfriend of mine worked in the field doing math for a company that makes ventilation systems.

            Is this really done on a particle basis ? Maybe reasonable sized quantities of particles ?

            I recall something about Boltzman equations and probability distributions, thermal gradients, viscosity, thermal conductivity, more qualitative and very math. But that was in the late 80s. Probably something has changed meanwhile.

              Note that for procedural terrain, which is what you want to look into instead of just "terrain generation", specifically I think you want real-time procedural terrain, we rely on fast noise algorithms that produce a height value for a 2d input coordinate. That means each input x,z only has one y height, which then excludes the possibility of caves, 90 degree cliffs. Rivers are easy enough but not rivers that actually flow up or down on the y axis.
              There's an infinite number of ways you could combine different terrain methods to get closer and closer to the results you want, but it'll take a lot of time

                Erich_L …we rely on fast noise algorithms that produce a height value for a 2d input coordinate. That means each input x,z only has one y height, which then excludes the possibility of caves, 90 degree cliffs.

                So that's what I'm saying, that noise-based terrain generators are in fact pseudo-generators.

                cybereality Nope. I'm not ready to model on an attomaric level yet. Pardon me.

                Tomcat Unfortunately, the terrain changes over time. Over several years the changes are certainly not big and do not need to implement them in games, but in my case it is necessary.

                In your case you could probably implement the sim in a separate thread and periodically sync result with main thread to update it. Do the sim then as a lower priority on cpu. Say update the result once per in-game year or such. You'd still have to implement some custom pixel processor to process the height-map texture/height field data. Could use gradient descent for rain/hydraulic erosion sim.

                Pixophir Is this really done on a particle basis ? Maybe reasonable sized quantities of particles ?

                You could probably use SPH and fairly sparse/large scale 'molecules' for approximations. But it would also look a bit toony.

                  cybereality I mean in real time. Like a realistic game, where you could pick up a glass of water, and the entire water is simulated as hydrogen and oxygen molecules. And then you could drop the glass, and the glass would shatter, based on the physical properties, and each drop of water would be simulated.

                  Water has surface tension and maximum drop size. If we talk about modeling the behavior of water, it is enough to imagine it as a bunch of balls, which is similar to SPH. The amount of computation is large, but much less than calculating each molecule.

                  Megalomaniak You could probably use SPH

                  Actually, proper simplification is the basis of modeling. This applies to my project to the fullest extent. I am now trying to understand the level of simplification that I can achieve.

                  Megalomaniak In your case you could probably implement the sim in a separate thread and periodically sync result with main thread to update it. Do the sim then as a lower priority on cpu. Say update the result once per in-game year or such.

                  Yeah, I have a lot of things that are going to be done in parallel threads. Only the minimum necessary part will be displayed on the screen. Updating the landscape can happen when the seasons change, which is not very noticeable and close to reality. For example, rivers usually change channel in the spring.

                  5 days later

                  This devs work in Unity looks pretty close to what you want (except for the dynamic damage).

                  a month later

                  Very cool, but also something that probably could be achieved even before with the particle/dynamic paint system.

                  cybereality yeah, it's very close… but unfortunately:

                  atm there is no sediment being carried, particles have no lifetime etc... i might have to read some theory on this.

                  To create a simulation similar to reality you need to be an expert in many different areas… apparently this is not feasible yet.

                  If I go back to work, I will look for simple workarounds.

                    It is feasible. All the math is known classical physics. Whether the simulation can run in a reasonable time is another question, but an approximation should be possible.