

It wasn't a true planetary scale, though, it was around 6 times less than the Earth in equator, but still huge and very impressive.Īlso, unlike the global one, the local camera was fixed, meaning the world would turn beneath you, so having the two views combined to form a seamless image was a mini-feat in itself. I also had two different renderers, rendering at different scales and married through overlaid renders, so that you could really fly through space and reach to the surface. So the closer you get, the less of the global world you see, but the triangles get more dense, refining the topology, hence it would reach a frame polycount equilibrium, which was really nice to see in action.
#Starbound map editor free
One of the most important things was auto-culling, able to cull a sphere against camera frustum, so the camera was free to observe the sphere from any angle, while the tessellation would kick in based on distance. So I had these two spaces, practically, one that was global, where every tile is known and populated with rough macro data, and the local space, which generated on the fly according to camera quat (technically a position on this sphere). And for this I needed tessellation to blend between two spaces (or scales) seamlessly. My tiles were more like sophisticated geometrical seeds for things to be procedurally added in local space. Yes, my approach was to hide the tiles from being apparent.

You can use not sqr distance, to gain on performance.Īlternatively, regarding gradient, have a texture and grab a pixel color, corresponding to tile, or terrain vertex position. Regarding gradient, for example in case of tile, you grab desired local vertex postion, (as you said) calculate distance from center of tile and knowing the radius of inner circle, you should be knowing value of gradient noise. Knowing the group of vertices per tile and its offset, you should be able to generate nice unified terrain per chunk. Now you can apply noise to a chunk of tiles, by applying it to vertices. So for example, you take your tiles in chunk, calculate world position of each tile, and grab world position of each corresponding vertices as a groups. You will need have an absolute position of veritices for tiles, rather than local. Instead of generating noise per tile, you generate noise per chunk, or per map. Hence you may need to increase resolution of the noise. In my view, you will need to have shared common noise, across multiple tiles. For those who have followed it I would like something alike but with more realistic graphics.īut regarding smoothing between tiles, that was my second thought, what maybe your goal.

I've done the catlikecoding tutorial on hexmaps (which I recommend). But for performance issues at run time meh (the texture has to be quite large for the whole chunk). With maybe the RGB for the texture and alpha for the height. The second approach was to use Height Maps of mountains and "paint" them on a blank texture which I apply on the chunks (with something like setPixels/GetPixels). I'm also using chunks for performance and the transistion seems complicated. But I'm not sure what type of mask I should use (for now I've made a non-optimised one with a gaussian function in the center of the selected hex but the result is not very good with the noise (maybe a mask in x^3?)). My first approach was to use Perlin noise and a mask to tell which hexs has mountains on it. (Maybe a hexagonal mesh is not the good approach?) With maybe a procedural generation in the futur. I want to be able to click on hexs to generate mountains (or cliffs, etc). I already made a hexagonal mesh where i can define a resolution for each hex. I would like to make a "realistic" terrain, like in civilization 5 or 6 for exemple. I've already tried some things but I'm not experienced enough to tell if it's feasible. I would like some guidance on the method I should use. I'm currently trying to build a Map Editor for a Hexagonal Grid based game.
