What it takes to make a great looking terrain

Started by
5 comments, last by Ahmed Adeel 6 years, 4 months ago

Hi,

How below is my another attempt at terrain rendering in rust/vukano.

But my question is very general.

How to make this looking beautiful and sellable terrain rendering? Each tile is 64x64 with lod difference of ^2 scales as it starts with an QuadTree and breaks down. Also it is currently a deferred rendering basic setup. Currently i dont have shader code for PBR/HDR/ScatteredSky/GroundFog/Tesselation or any of the cool buzz words.

So please tell me todos or a task list to make this look like Start Citizen like good (no need to discuss spherical/plantery rendering thats later stage)...

Also post useful links to tutorials/articles or papers.

Thanks.

 

proto.png

Advertisement

02_geoclipmaps_09part1.jpg

Also how to add detail to terrain like above mentioned in Gpu GEMS book!?

There are many ways, you already mentioned a lot of techniques that will make terrain look better. For the above technique, Google for "Terrain Detail Textures", but since you mention GPU Gems book doesn't it already explain that? Here are few posts about it:

Most of these materials is quite dated, but I don't think there are any revolutionary advances in the topic of terrain texturing - in case there are I'm all ears! Would like to hear about some modern techniques that apply to wide range of terrain, not only simple heightmap (because nowdays there is way more, like surface extracted voxel terrain which allows for caves and overhangs but requires different texturing approaches than simple heightmap).

I think one of techniques that really adds a lot is more advanced texture blending by using each texture type heightmap to calculate the blend weights. 


Where are we and when are we and who are we?
How many people in how many places at how many times?

I really think that the most important thing is a good building block (the base shape of the terrain). I would also take time on texturing (note that I'm not talking about shading), making sure you have variety of textures and that they make sense with the shape of the terrain (@noizex mentioned a lot of really useful techniques).

 

Just take a look at this shader from IQ: https://www.shadertoy.com/view/MdX3Rr. The shape of the terrain is awesome, you have tall mountains with a lot of rough details but you also get some smooth surfaces. And the texturing is just superb! He is not even using textures just mixing between colors.

Never underestimate the power of erosion.

Also, spend some time looking at actual terrain on Google maps satellite view. One thing you will see is that terrain varies across different scales. In your sample shot, you have two types of terrain: flat and bumpy. All the bumps are the same scale, across the entire terrain, indicating that you are probably just using a simple fractal of some sort.  Fractals can be useful as a building block tool, but not really as an end in themselves. Look at throwing other building blocks into your arsenal, such as Worley's cellular functions, domain turbulence, etc... (Here is an example using a cellular F2-F1 function with fractal domain turbulence: clicky). You can also look into using fractals that incorporate the previous layer's derivative, to give a sort of eroded look without an explicit erosion pass. Íñigo Quílez talks about this some, and it is in fact the technique used by the Shadertoy shader in @piluve's post. This article by Giliam de Carpentier presents a couple different variants of derivative noise.

As far as the detail goes, if you are going to use a lower resolution terrain as you are, you can use a normal map that covers the entire terrain to 'fake' the smaller details. Those details wouldn't have any effect on gameplay (ie, they wouldn't affect the geometry that the player walks on) they just affect the visual result, adding shading detail to make it look like the terrain is higher resolution than it really is.

Thanks all for the tips, i tried adding a detail normal noise map on top of existing base normals.

Right now im focusing on quadtree algos, will keep you guys posted.

WhatsApp Image 2017-12-02 at 7.47.27 PM (1).jpeg

This topic is closed to new replies.

Advertisement