Comments (4)
Glad you're interested in the project!
I just committed a new "steps" feature that makes an attempt at this. Try playing with it in the demo viewer and see what you think. It goes pretty well with the Simplex method and the EaseInOut filter. (Try increasing the maxHeight to get a better effect.)
The way this works is it does a filtering pass that takes the output from other terrain generation functions and divides it into levels.
I can think of two other approaches:
- Something I call "feature picking," which is the idea of picking a random location and placing some kind of feature there like a mesa or hill. This seems to be a good starting candidate for mathematically modeling a mesa
- Coming up with a method that could create "faults" along which significant height changes could occur, probably by using some variation on Brownian walks. This is nontrivial and probably not a lot better than what I just implemented.
I'll probably implement something that looks like the first approach at some point. 😃
from three.terrain.
@IceCreamYou
Wow thank you so much Isaac! The new steps feature is exactly what I was looking for! Playing around with the settings I was able to create mesas (that stick up like mountains, Monument Valley style), stepped layers (Grand Canyon style), and fault-line canyons with a smooth, flat top shelf that erodes down to another flat ground (Canyonlands NP style). Maybe a river could be placed on the bottom flat-shelf or ground level.
But in any case, this is really cool! Back in 2001 I made a terrain artillery-style game in OpenGL in C for Windows, called Virtual Bombard. Here are some old screenshots from my game:
Just messing around with Math.sin, .cos, .tan, etc I was able to get some pretty neat random terrains. But your terrain project goes way past what I was able to do just tinkering around with random trig functions. I wanted to re-do this game using Three.js and now I actually have access to an awesome terrain plugin!
Thanks again - I'll keep checking back for more updates. :)
from three.terrain.
Glad it's working for you! I'll look forward to seeing what you make 😃
It's also worth noting that the Steps filter is composable, so you can mix it in with other algorithms like DiamondSquare using THREE.Terrain.MultiPass
if you want results to be a little less flat.
from three.terrain.
Oh I hadn't thought of that - thanks for the tip! :)
from three.terrain.
Related Issues (20)
- Texture Repeating HOT 1
- Typescript bindings? HOT 18
- Feature request: button to download geometry HOT 1
- Possible mismatch in randomness HOT 1
- Meaning of parameters of generateBlendedMaterial? HOT 2
- BlendedTerrain problem HOT 1
- Island with a hill, how? HOT 2
- Large memory consumption, why? HOT 2
- Support disabling rescaling in Clamp to avoid seams with repeating Perlin/Simplex terrains HOT 17
- generateBlendedMaterial to support normalMaps / StandardMeshMaterial. HOT 4
- physics support ? HOT 1
- I m facing error using your library HOT 2
- Edges Documentation HOT 1
- Calculating heights between segments (Interpolation) HOT 3
- Wrong variable name in scatter.js HOT 1
- Implement Optimizations HOT 1
- could it load real terrain? HOT 1
- Get heights from generated terrain HOT 1
- Noise Error HOT 1
- Update for newer THREE.js versions (ES6) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from three.terrain.