Jakub Cieślik discussed the production of his latest winter scene and the way he used Substance, Houdini and UE4 to generate realistic results.
Hello! My names Jakub Cieślik and I’ve been playing with 3D since I was 12 ( I was playing with first Unreal Engine). I continued creating mostly multiplayer maps until I started studying at Polish-Japanese Academy of Information Technology at New Art Media faculty where I earned my Masters degree. My diploma was third person slasher which I created with 2 more friends. Currently I’m employed at Layopi Games as Lead Level Designer working on unannounced project.
Lack of proper winter in my country that’s for sure. Idea has evolved from XVII century gentry farm, through blizzard during night to finally crystalize with winter ending scene. But I guess Battlefield 1 DLC: In the name of the Tsar was biggest influence. Its superb environments made you feel harsh environments and freezing temperatures! These guys really captured spirit of these times and reality. Crystal clear sky and evaporating snow creates magic and I wanted to capture this moment.
It all started as texture/shader playground with heavy emphasis on using displacement maps and vertex paint blending. I always seemed to be focused on creating assets that blend together well. It turned out unusable with what I wanted achieve, because I did have to modify displacement shader in engine to get desired fidelity. My PC just couldn’t handle it. So I chose more traditional approach with hi to low poly baking. Since I’ve wanted to minimize time needed for creation of low poly models and UVvs and focus on fun part – high poly modeling, I chose Houdini with its highly procedural workflows.
My idea was to maximize usage of vdbs to get smooth intersections between different shapes, remesh them to low poly, bake and then work on details inside Substance Designer. I wanted to utilize noises as much as possible, and since I was working on nature scene, precision wasn’t that relevant so I could play around with different kind of noises modifying them to my needs.
Road modeling using vdbs and noises.
I also wanted to use power of Houdini and explore rather unknown area for me – simulations. I needed pile of rocks with snow cover. Faster, less time consuming approaches seemed promising (spawning metaballs on top side of meshes, adding noise to these polygons) but none of them worked for me so I sticked with grains simulations. It took about 2-4 days to get desirable effects and convert them to low poly.
Rock pile with snow simulation and vertex colors for further texturing
Once I got all meshes done I exported them and baked in Designer and Painter where I could add additional details (better mud, splinters, tiny rocks). For this project only snow, wood on trees and mud with rocks textures were made.
Road texture from Substance Designer
Rocks from Substance Designer
Plugable snow function
My snow is combined into single universal function which uses collection parameters to keep them unified on all material at all times. It only requires small tweaks to work on landscape layers instead vertex colors. Paint values are blended with height map in shader. Thanks to common parameters like world align and tiling, it was easy to add additional meshes on landscape so they blend right away.
World aligned snow on meshes blending with landscape
Top aligned snow
I have added subsurface with blue tint, up direction displacement and small sparkles to add extra detail and credibility to shader. Texture was made inside Substance Designer but really it were few noises blended with dirt noise. Normal map is most important since all diffuse and subsurface heavy-lifting is made by shader.
Landscape snow painting
Vertex paint with snow
Since I used this software for the first time, I’m least happy from final effect. 2 variations of pine tree were made, additionally dry grass and thick grass. Ability to grow procedurally foliage is great itself, being able to plug just single node in unreal shader editor to enable wind is simply amazing! Also thanks to baking AO directly inside Speedtree I was able to use it in Unreal and add procedural snow on the ends of the branches.
I used very little post production mostly limited to adjusting gain value in darker shots and boosting ambient occlusion. I wanted to capture moments when winter is ending but there’s still a lot of snow which evaporates quickly. For this HDR as skylight managed to get extra realistic lightning. Boosting it with directional light with warm color I got nice warm/cold contrast in scene.
My lightmass settings
Intense Volumetric Fog was helpful to get this evaporation effect on further planes. It’s so easy to setup and looks great that is feels almost like a cheat! High specs and little roughness allowed mud to blend with water puddles and melting snow.
Volumetric fog is great!
While I learned a lot there’s still much to improve. Right now I could have done many thing differently, faster and possibly better. But overall I’m quite happy from final result. Purpose of this project was to explore how much can be done with procedural approach and it proved a viable option.