INTRODUCTION
Hello everybody!
I'm working on a big scale environment for my portfolio. The main reason I started this project was because I really love landscapes and nature. Almost one month ago I saw the amazing work made by Oskar Selin
here, and Damian Lazarski (a.k.a. teaandcigarettes)
here and it simply encouraged me to start this project.
OBJETIVES/LEARNING OUTCOME:
The main areas I wanted to experiment with are:
-Building a landscape based on a real world topology (*.asc files taken from official topology institutions), modifying it in World Machine and get the layer masks.
-Create believable textures for a massive tiling without a noticieable pattern repetition.
-Explore UE4 landscape materials capabilities using height and weight blended layers.
-Use Distance Based Masks in order to toggle between far and close materials.
-Create believable and optimized foliage for covering large scale areas.
-Create water materials and explore how to work implement it in a landscape.
-Discover the amazing and dangerous world of tesselation
-Create materials sensitive to world space normals (i.e. rock materials with moss painted in those vertex that face one direction, without worrying about the reotation of the mesh)
-Showcase my work and learn from the bests
CONCLUSION
Since I have already work out ways to achieve some of the goals above, I'm going to show you my process and some of the problems that I have faced or some of the stuff I'm still struggling with!
Thank you very much,
Juan.
Replies
BACKGROUND:
I decided to take a look at the Spanish Topology Institute and it turns out that they have the whole country measured with a grid step of 5 meters! I decided take the file of the river where I went last holidays as a base terrain. These files are tipically cloud points (*.asc and *.xyz) so you need to transform those into height maps. After one day trying to figure it out how to do that it happens that the United States Naval Academy has the freeware for it: MicroDEM. (You can do it with meshlab as well but it would probably look **** since there are tons of information that are lost in the process).
After I had my brand new height map I imported it into WM, where I started modifying it a bit in order to make it look nicer and also to get some layer
Right now the terrain have a resolution of 505x505, and the area is around 600mx600m. I might increase it in the future, but for now it seems to be more than enough!
DIFFICULTIES:
I'm trying to achieve a clean way to make the layer masks (no in-engine painting) but since the original terrain was not generated in WM, I have lost that information. Do you have any workaround/advice for a situation like this?
Thank you very much!
Juan.
Right now the whole terrain is made by 3 main materials (+ 2 variations): rock, grass, dirt (+ rock closeup and wet dirt). I'm just going to grab some images of the real time results:
I'm quite pleased with the blend of all of them. However I still think that som of them need improvements.
Thank you nukakola7! Actually I realized that there was an error with that material and the normal map was not conected to the normal node, so basically there wasn't any normal information!! This is the new result! I added a bit of tesselation, although the height map is going to be completelly different anyway, since now it is the grass heightmap and that is too detailed for tesselation. I will probably do another height map with some bumps.
cheers!
Juan.
I'm going to take a look at the grass roughness map in order to see how can I improve it!
Cheers,
Juan.
This is, by far, one of the most complex parts so far, but now that I finally understood how it works, it seems to be pretty easy to apply.
The master material is made by a blend between those submaterials posted previously, using both height and weight blends. In order to make the master material layout cleaner, I made one function per each submaterial, so the blend function is linked to the submaterial functions:
I created one Layer blend per each channel I used: albedo, spec, roughness, normal, displacement and tesselation.
Each submaterial has a distance based mask linked to each channel, so it interpolates linearly a close and a far material based on the camera position. This was a great solucion since it allowed me to use diferent tiling as well as different textures for far and close areas.
This are the close textures so far:
All of them baked from high poly meshes but some albedos that are a mix of some pictures taken from internet. The dirt albedo was literally grabed form FabooGuy's portolio, who kindly offered it to the world! thanks! http://fabooguy.deviantart.com/art/Dirt-Ground-Texture-Tileable-2048x2048-441212191
Each material function looks like this: some od them blends 3 landscape coordinates and some of them blend only two. AS you can see, there is a distance based mask linked to the alpha channel of a lerp node. The rest is pretty much textures with different tiling multipliers.
The textures for the far distance are screenshots taken from googlemaps. Those who havent try this technique yet, I really recommend you to give it a try, is gives quite good results
Juan.
I have started adding some foliage that I did few weeks ago. Right now they are mainly placeholders, I just put them in in order to see how the distance field ambien occlusion reacts and whether they look belieable or not. Aparently I have achive an acceptable results .
This week end I'm going to focus on making different kinds of foliage in order to make it seem more realistic.
PROBLEMS
I have changed the skysphere and now I'm using a custom castsky hdr image. I deleted the directional light since the sky is now cast, but all the normal information has gone with the directional light. Do you know how to work around this situation? For now I have been thinking in adding a very subtle (very low intensity) directional light in order to get some normal information back. The comparison of results is this:
NO NORMAL INFORMATION/NO DIRECTIONAL LIGHTING
SUBTLE DIRECTIONAL LIGHT/WEAK NORMAL INFORMATION
I think I prefer the second one, but I'm not sure whether it is the correct work around.
Thank you very much!
n4uj.
I didn't have much time for the project, but I did some ground foliage! I need to tweak the colours a bit in order to make the match better the rest of the palette!
All the ptextures has been baked from high poly mehses!
I have also change the sky for now, I need to find a proper way to make a good cast sky.
Any thoughts?
Juan.
I had a hard time figuring out a proper way to place all the foliage, I looked for ways to apply foliage using the masks of the landscape layer blend, but was unsuccessful!
Thank you very much,
n4uj.
The only thing i could think to push would be maybe introducing some transparency/subsurf on the foliage materials.
To be honest, I have tried to reach the subsurface scattering effect, and the shader is totally set up for it in the project. The thing is that this effect depends totally on the light conditions, so if you have a light beam comming from behind like in your picture, it would be pretty obvious that you have subsurface scattering, like in one of my first screenshots:
But I think what is not working well is the light conditions, which are quite hard to tweak and which I have been strugling for long time now (GI, Distance Field AO, Skydome, Directional Ligh and AMbien Light).
However you are totally right, the subsurface is not working properly, I will try to fix it!!
Thanks again for you feedback
By the way man, your Beretta model 418 is insane!! the roughness, the hardedges, the wearness!! Great job!!
I tried imagining the lighting was a sunset and I tweaked the colours and contrast until I liked them. Personally I would increase the thickness of the leaves on the trees to make them a bit more dense. Is there any plans to add wild flowers to this environment. (google image search "wild flowers) Anyway this is looking awesome and I cannot wait to see where this goes!
I used to have different HDR skydomes with different light conditions, one of my fauvorites was a sunset as well, but I got some lighting issues with those and I couldn't got it look right, however I'm gonna definitelly tweak it this weekend.
About the trees, tbh I think they are s*** xD I completelly agree with the leaves thing, they were suppossed to be placeholders because at the time I did them I just wanted them to give the feel to the environment, since I had to submit my portfolio for a contest, but I have not found any spare time to work on them again. Hopefully this weekend!
I would really like to have nicer colour like those you got in you paint over (thanks again for taking the time) I have recently discovered a technique for colour correction inside of UE4, so I will practice it
Stay tuned for the updates!!!
I was suppossed to use substance designer, but I didn't found the time for it, since I had to struggle with some other stuff (world machine, terrain shaders, foliage geo and shader etc...) I will use it for my next project definitelly! Everything was baked from high poly meshes in xNormals or 3DS Max, those meshes were modeled in 3ds max or sculpted in zbrush. After that, I did the rest on photoshop and nDo plugin.
Making foliage is not that hard, you only need to be really patient and careful... as a curious fact, this was my foliage skill 9 months ago...
http://juanmoragaart.tumblr.com/post/118938184277/this-is-a-tree-that-i-made-few-days-ago-as-a-part
If you have any advice for a substance designer newby, please tell me!!!
If not I learnt the basics really well off following these tutorials.
https://www.youtube.com/watch?v=W2Ei9ZEC2SE
https://www.youtube.com/watch?v=2mcQmYQOqbk
http://kazperstan.co.uk/tutorials-2/
https://www.artstation.com/artwork/oxqrz and https://www.artstation.com/artwork/G1KL1
Then of course, playing around, lots of trial and error, but having a substance you can tweak and mess with inside unreal makes the pain so worth it sometimes.
Than you very much for your reply. The water was specially hard to achive! You can find here a screen of the material:
As you can see, I have two main groups: Far Waves and Close Waves. Both have the same nodes and the only thing I change is the WavesParameters (Pan node velocity and Texture Coordinates). I use two Normal textures (Waves Normals) that pan in slightly different directions and I also added a Alpha mask (Waves Mask) in order to add more randomization to the normals. The mask doesn't pan, but it could.
I interpolate linearly both main groups (Far waves and Close waves) using a distance based mask (DBM) which means that the camera renders both groups, one for the far objects and another for the close objects.
Finally I have a Falloff and Fresnel group. UE4 has a Falloff depth node (iirc it is called depth falloff or sth like that) that allows to fade away the opacity of an object from the borders. So basically that avoids having hard edges in the areas were the plane of the water cuts the plane of the rocks/ terrain.
To add more realism I also animated this falloff based on a sine node, so it looks like there is a tidal movement that goes up and down.
The fresnel node is there to tweak the fresel reflexion xD, since the default fresnel might not be what you are looking for.
This water material was inspired by the last chapter of a really good Vertex paint puddle tutorial by Aaron Kaminer, but mine doesn't use vertex paint and I added some other FX like the animation in the falloff. However he uses a lot of super cool techniques that you might be interested on!!
I hope all that made sense and was helpfull!
Thank you Keket! I'm gonna have a look at my university library because they have some cool Gnomon DVDs over there Meanwhile I will take a look at those nice youtube videos you posted there!
n4uj