4
$\begingroup$

I want to bake my lighting or light map with Filmic but when i change the color management to Filmic (Blender 2.79+) it has no effect.

$\endgroup$
10
$\begingroup$

You can't bake directly with Filmic but you can composite the texture baked.

Baking with Filmic

Warning: before baking check if:

  • GPU baking is enabled
  • check if the normals are correct, to bake an interior scene the faces need to be oriented inward
  • for your materials use the Diffuse and Emissive shaders only, the materials should not have reflections. Color texture and normal map can be used but you will loose their quality
  • unfold the UVs, you can do a Smart UV Project if it is an interior bake with a margin of 0.05 to hide the seams

Baking steps:

  • you must first create an image using 32 bit Float, this will allow to save values higher than 1 (this is the most important part, if you don't create the image correctly you will need to rebake everything)
  • assign the texture for every shaders used by the baked mesh, make sure it's the active image by selecting it if you have multiple textures
  • bake the lighting
  • import the image in the compositor and plug it to the Composite node
  • change your render resolution to match your image, don't forget to set the percentage to 100 %
  • in the Scene tab in the property panel, change the Color Management setting to Filmic instead of Default and you can eventually adjust the contrast in the Look setting by default it's set to None (does the same as Base Contrast)
  • do a render (F12) and save the new image, I recommend you to use TGA

You can then update your lighting, bake it and press F12 to have your new lightmap.

Do it for every bakes including the skybox to keep a consistent lighting and avoid "burned" areas.

Using it in Godot Game Engine

To use it in Godot, export your OBJ and uncheck "Write Material" this will allow to have only one material slot. Export your lightmap as TGA, this format is faster to load than PNG and use RGB instead of RGBA to save some memory.

In Godot select your texture, in the Import tab set the Mode to Loseless and uncheck Filter (it blurs the texture). Add your .obj into the scene, create your Material, assign the lightmap as Albedo and make sure the color is set to pure white to display the texture correctly otherwise it will appear darker. In Flags check "Unshaded".

enter image description here

While playing if the skybox (the sphere with the sky texture) isn't visible increase the Far setting of the camera. You can set it to 1000 instead of 100.

Project files: https://drive.google.com/file/d/1luU3j60UTCjijg6BC2hOkintSy8vzXSp/view?usp=sharing

How to use it correctly

When using baked textures the size of your game can become heavy, that is why I recommend you to have small and few rooms, like for example a 3D puzzle game like Portal.

If objects have to move or be collected the lighting won't be updated. That is why I suggest you to make them transparent, like holograms, so they fit in the game, like in this fully baked game: https://youtu.be/H-E7_mn73BI

What is the benefit of this technique

Having fully baked lighting allow to have a great looking scene that uses almost no ressources to run, it can run without a graphic card at 60 FPS even on a web browser or a mobile device as long as you don't fill the memory.

Later denoising will be added for Cycles baking allowing to get a better result with less samples.

$\endgroup$
  • 7
    $\begingroup$ I still don't understand why you would do this. Isn't it much better to bake your lightmaps as linear, and apply filmic (or any other tonemapping) to the final render, rather than tonemapping the lightmaps. $\endgroup$ – JtheNinja May 12 '17 at 1:17
  • 1
    $\begingroup$ @JtheNinja Yes, if you're planning on rendering in Blender. But if what you're trying to do is create a texture for use in a different rendering engine, and you've been building the texture using Filmic color management, you may want to do this. $\endgroup$ – Nathan Jun 20 '18 at 2:56
  • $\begingroup$ Yes like the comment above me, exporting one or several 32 bit float lightmap(s) in a game engine would waste way too much memory (and I am not sure every game engines allow those textures), it is better to compose it/them in Blender and export the final colors tonemapped in 8 bits. $\endgroup$ – Danyl Bekhoucha Nov 13 '18 at 15:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.