To refresh and continue learning about game lighting I helped out Polybius[FSFU] and got help from Culocane (Alessandro Palagano artstation) in the community, in which he lighted his version and I lighted my version. Together we shared our process of working. In this blog post I will be sharing my work process which also indirectly will share some of Culocane methods. Below is what I was given and what I ended up with later. So my general starting point was this:
Which ended up being this:
The first thing when doing lighting is to get reference images so I asked Polybius about what he generally wanted. Although I received a couple, I do recommend looking up several more and discussing with your client what they might be looking for. In this case, I was free to do whatever I wanted so I went ahead with a sunrise/sunset feeling based on what he showed me.
I always turn off, delete and remove all kind of lighting that might exist when doing re-lighting work.
So tip #1 – always start with complete darkness.
For this particular map I started with the skybox by changing it, the reason for this is because it would affect the overall ambient color and tone of the map. Which in this case would be a bigger deal, and the reason for this is the walls are single sided and made in skethfab. I also changed the tint and setting, to make it more unique after importing it correctly into Unity from HDRI to Cubemap.
So tip #2 – having a better skybox then default is very important and makes all the difference.
Tip #3 – when you model please use box walls and tip #3 skethfab is in my experience a terrible software to use when it comes to level design and using in Unity. The reason for this is is generally struggles with UV’s.
The next thing I did was place the directional light close to where I had rotated the skybox and its sun. And then adjusted the color to be strong tint of orange for the sunrise/sunset which we often refer to as “The Golden Hour”.
The indirect multiplier ensures that the light bounces a bit around, thus lighting up the shadow.
I then spent a lot of time figuring out why my light wouldn’t give out proper shadows, and that was because the assets themselves weren’t unwrapped and built for lightmapping. In other words it was missing UV2 Channel for lightmapping. As such, I increased the settings for Lightmapping considerably more than I normally would.
The Indirect Resolution helps increase the quality of indirect lighting, but it also increases the time built. It is recommended to have 2-3 on interior and majority of the map was interior, so that is what I went with. The lightmap resolution was set to 25 which ensures that the details during GI is good enough. Below are checker maps in the Baked Lightmap view, which shows the different between low resolution and then high resolution. The padding was set to 2 but I could have increased it more, the reason for increasing padding is to give more space between lightmaps in the UV Islands, which often fixes blending or bleeding of light on the wrong surface. And finally the lightmap size was increased to 4096 which ensure high amount of detail into the lightmap and bigger size. I did uncheck compressed to deal with gradients issue, but it does come at the expense of lightmap file size.
So, tip #4 – always make sure your 3d assets are uv, unwrapped and has two uv channels. One for your textures and another one for lightmapping. Arguably, you can use the Unity auto unwrap and teak it inside Unity regardless of this, but I think doing things right the first time is a good idea.
Fixing purchased assets and textures. Often these maps I do have purchased assets, which are out of date in their shader settings. So I had to change their shader to Standard and add emission texture back which ensured that the light had visible emissive source to it. I didn’t like it at the end, so I added a unity cube, put in a new material and made that emissive under the original emissive texture. Below is what it can look like, if you happen to have emissive issues on an asset you bought. Basically, check shader and change it to standard and add emission texture.
Tip #5 – If the shader says legacy shader, try and change and update it so it fits the current version of your engine and technology.
I noticed most of the materials didn’t have a specular texture to control the smoothness as much as I wanted. So I spent half a day editing the textures by adding the *.tga files into Photoshop, creating alpha map and editing the new alpha map in Levels. Below are some images to give you an idea.
Tip #6 – Make sure your materials have the needed textures and channels to get more out of lighting.
I then started adding, adjusting and tweaking the lighting in one of the rooms. Below is an example where red circled light is fake sky bounce, and blue is fake sun bounce. This is on top of the GI, indirect and reflection that does occur.
Tip #7 – Lighting is very much about faking the environment shape and form, which means understanding how light work is important to know what to add.
I did similar approach to the interior lighting, which is basically adding area light to the light source and on the floor. I also played around with spot light to create fake shadow for the light source that would come on the ground. Which at current stage doesn’t fit well, as I added another layer of emissive.
Tip #8 – I don’t recommend this method if using real time light, and keep in mind area lights are super expensive and increases light building A…LOT.
Step 10 & Final Touch Up
When you have the general look and feel, you can go over to post effect and I won’t go much into it. But here is a screenshot of what I ended up with.
Thank you for reading. If you found this useful please leave a comment, let me know and feel free to contact me. Below are some more screenshots from engine. And there is a video at the bottom which shows in-game walkthrough also. Otherwise stop by my blog at www.amitgp.com