Rembrandt - chiaroscuro - lighting the scene

Making Of / 08 April 2020

Lighting setup:

I am a big fan of dynamic lighting and even though I think lightmass is great it can be cumbersome especially if you have to implement changes down the road. Of course for certain projects its the only way to go - especially  for memory budget reasons - but for others like small scenes as this, archviz projects etc I feel baking can slow you down. I do like the new RT features implemented in Unreal since a few iterations ago although it does take some getting used to them and how they can be combined in a way that works for your project. (I have a video on implementing some of those features should you want to learn more on this: https://ad67.artstation.com/projects/L2dAP0?album_id=2170009 . I love RT shadows - they are so accurate and controllable and they come at a relatively low cost so I think that of all the RT features this one makes the most impact relative to the cost incurred - except for the skylight shadows that has a more measurable cost associated with it. In addition to the shadows RT AO also carries a big punch. In this scene I used them both RT shadows and AO.

For the Remrandt scene I used a combination of methods to achieve the chiaroscuro effect that Rembrandt was so famous for. One thing that would have been handy but is not available in Unreal is negative lighting - which basically allows you to suck up light like a black hole. You could do it in BPs but only during run time so it isn't something applicable for this. The one thing that I didn't want in my scene is ambient lighting therefore I did not use any skylight in the scene. I also set up my reflection capture volumes - both a box reflector for the main reflections and a sphere to localize some detailed reflections early on. Its a good idea to place these early in the scene to minimize any surprises you may get if you add them after all the setup is done.

So the first thing I usually do is establish my base light - my key light. So after looking at the image I began to decipher the main source of light which in this case is coming mostly from the window. I used a rectangle light to get nice soft shadows and edge lighting and played around with the attenuation radius and colour parameters to more or less get the basic forms and colours in. Once this was established I added a fill light to get more volume in the scene. I could have boosted the key light to give me the extra volume but I believe that the more control you build at this stage the easier it will be to refine the lighting down the line when you start adding more light points - if there's anything to take form all this is that you should always build your scenes gradually - this stage is the most important. I then began to add more detailed lighting to add more intensity in the areas that I felt needed it using only rectangular lights again adjusting attenuation, colour intensity etc . Finally I I added some very fine point lights with various color temperatures and attenuation radi to try and fake the Gi bounce lighting that would be present in the scene. Depite the advances in technology and the use of RT and SSGI going back to old school basics is still one of the most efficient ways to create GI with little cost. 

Finally for the icing on the cake I used distance field indirect shadows. This helps get the deep shadows and adds another level of AO that isn't possible in any other way - it makes everything more grounded in the scene. The great thing about this method is that you can turn it on, on a per mesh basis and this way you can be selective on which meshes to apply to it too and how much memory you use for each asset that uses it. 

For the PPV I only changed a few parameters like the white balance and tint and I like to turn on the bloom to get some specular highlights depending on the camera angle but I did however add a post process material that I use in most of my scenes. The material sharpens the scene without the need to increase the percentage scene size and is adjustable to different amounts. The material can be downloaded for free on my artstaion store here: https://ad67.artstation.com/store/am8v/post-process-volume-sharpening-material 

What I like the most of using a dynamic setup is the fact that not only do you have real time feedback as you create your scene but you have absolute freedom to make any changes you want to your scene in real time as you go along which means that not only you but say your clients can shift and move things around without breaking up the lighting! This is invaluable especially if working under pressure and not for a portfolio piece where perhaps time is not so much of a restriction.  In addition not relying on built in solutions for say your GI forces you to pay more attention on the lighting and composition - so its a good way to learn the fundamentals.

The combination of techniques above I believe give you both the freedom you would need and the flexibility to light various types of scenarios. To me the use of both lights and shadows in tandem, as outlined above comes as close to painting with light as possible!



The scene with just the Key lights and fill light turned on. 



Game mode shows lighting setup.



Main lighting setup using rectangular lights: 


GI & Fill accomplished via point lights:



Left : distance field indirect shadow on; Right: distance field indirect shadow off










Substance Painter as Look Dev workflow

General / 07 April 2020

Using Substance painter as a look development solution rather than a final output can expand your texture flexibility and at the same time reduce your draw calls in a lot of situations. The main premise of this workflow is to initially create your textures in Substance painter as you normally would but then export the correct maps and reconstructing them in Unreal Engine.

1 Bake your meshes and create your textures.
2 Export the Normal, AO, and curvature maps (you can make specially configured exporter to avoid exporting them one by one)
3 Export any additional masks that you created like dirt, smart masks etc by right clicking end exporting
4 Create a folder that hosts your main texture created and save as a smart material
5 Open the tiling sample file and apply the smart material and export as a tiling texture
6 Import everything in Unreal and rebuild it as shown above


The 2k tiling asset and the 4k specifically textured asset are indistinguishable in this image. The 2ks advantage apart from the lower memory usage is its re usability on other similarly textured assets which is not possible with the 4k.



After baking your mesh use the Substance configurator setup to export Normal and a channel packed AO Curvature maps.



Look development phase - Simply start create your textures as you normally would on your mesh. Use the AO and curvature maps as fill layers to get a feel on how they will look in Unreal.



Right click and save any additional masks you wanted to output including smart masks etc.



Create a top folder and drag all the other folders textures etc in it. Save this folder as a Smart material and close the project.



Open the Tiling Material project from the Sample projects in Substance painter.



Import the smart material you created before. You may need to import individual texture layers sometimes depending on the texture complexity. Note that any specific paint layers will have to be added as individual masks.



Import the tiling textures textures, AO/Curvature and any additional masks and reconstruct the material in Unreal. As you can see the AO curvature texture has a free slot (Blue channel) where we could have easily placed the dirt mask in making our material even more compact. Over the entire level this method will be more cost efficient than individual bakes since you can reuse the tiling texture on other assets and bake asset specific AO, curvature, masks if needed to get more details in your materials.



 As stated above the free blue channel in the AO , curvature mask could be used to house Mask 1 should you wanted to get an even more compact material.



Face weighted normals & edge mesh decals

General / 07 April 2020

This tutorial goes over two techniques that are used in combination to get rid of perfectly straight edges in Unreal Engine and add more realism to your environments - face weighted normal and edge mesh decal techniques. Using Mixer as a base to create our normal texture as opposed to the traditional technique of sculpting and baking our normal map we can create some fast variations to use in our decal material in Unreal. In addition I will introduce you to a UV technique exclusive to 3ds max. (If you are using another software package you can do this manually!)

In order to complete the tutorial you will need the following free plugin: http://www.bytehazard.com/articles/wn



Raytracing and HDRI backdrop implementation in Unreal.

General / 07 April 2020

The options outlined in the video apply to any raytracing hdri workflow.