One more quick post about the lighting modes before I move on to other subjects.
Looking at the comparison shots in the previous post gave me an idea about the FASTDYN lighting mode. The FASTDYN lighting appears smoother when compared to NORMDYN, and it seems to also light the back side of models slightly. These properties reminded me of the Half Lambert lighting technique used in the Half-Life games.
I decided to quickly implement the technique to see how it compares with the original. Surprisingly in some cases the result is almost an exact match, but in others the shading seems too bright. For example, see Otis in the screenshots below. Left is the original renderer (FASTDYN mode), and on the right is my implementation with the Half Lambert technique.
The lighting is close to the original when Otis is at about a 45 degree angle to the light coming from the windows. However, if we rotate Otis slightly this no longer is the case.
Otis is now at about a 90 degree angle to the light, but the shading seems much darker in the original. If we rotate Otis 45 degrees further, the lighting is once again very close to my Half Lambert implementation.
Otis is now facing away from the light coming from the direction of the windows.
This behavior seems fairly strange to me. There must be some additional term in the FASTDYN lighting model that I’m not aware of yet.
I may return to this at a later time, but right now I’m happy with my current implementation that matches the NORMDYN mode of the original game exactly. This was just recently merged to ResidualVM’s master, so give it a try.