
Fox Engine: Material ID Systems, Auto Exposure, and Tonemapping
There are 3 aspects about Fox Engine that I wanted to highlight as they are in important in explaining why MGSV still holds up in terms of visuals even today.
Fox Engine uses Material IDs to enhance the realism of many objects in the scene. During the lighting stage, Fox Engine skips the 24-bit Base Color Information part as an optimization. For specular lighting, the shader will identify the material ID and use the LUT to figure out what properties a given pixel would need (specular color, fresnel, hair, etc). No big G-buffer required. The albedo and diffuse lighting are later blended together in the resolve stage. This is an incredible optimization that the developers made and I simply wish that more games could take advantage of something like this.
The engine is able to maintain a very stable exposure by focusing only the lighting elements of a scene. Downsampling the diffuse only buffer (which excludes dark material attributes and emissives) is the mechanism that they use to get this effect.
MGSV’s tonemapping has very similar on screen results when compared to the Gran Turismo tonemapper. The tonemapping curve itself lacks a bit of contrast. Fox Engine counteracts this by using color grading via a LUT to raise highlights and add that missing contrast without completely blowing out the image.
TLDR; In Fox Engine, Material IDs determine a pixel’s specular color without a big G-buffer, the auto exposure system purposefully excludes dark areas to remain consistent, and a color graded LUT enhances the game’s tonemapping.
Resources that were extremely helpful in trying to understand Fox Engine:
https://youtu.be/aB5qxp6SPPQ?si=Y0hEH7tY-9U6qIMv
https://youtu.be/WsmxBE9Gw6A?t=2793&si=DOoZbMuOlsyiElKX
https://youtu.be/SnNm7rSSvlg?t=4052&si=IOJPKnBgo8hkogdO
https://www.shadertoy.com/view/tcSyDy
https://www.adriancourreges.com/blog/2017/12/15/mgs-v-graphics-study/