The journey to integrate Linearly Transformed Cosines (LTC) Area Lights into the Tensor engine, an OpenGL-based proprietary engine, was both challenging and rewarding. The main challenge was shadows. After implementing LTC Area Lights, I ended up using an option from point and spot light soft shadows, similar to Unreal Engine. The other challenge allowing textured are lights. It was not easy to allow the use of textures because they have to be mip-mapped correctly for such a use case.
LTC based lighting is analytical and fast. It allows lighting from different shapes like disks, planes, and lines, which are the shapes we have as area lights. This is unique because there's no technique that I know of that allows lighting from these shapes without ray tracing or fancy stuff like Unreal Engine's Lumen. LTC Area Lights work by transforming a simple distribution (like a clamped cosine) into a more complex one that can represent a wide variety of shapes. This makes them particularly suitable for real-time rendering where performance is critical.
With the implementation of Linearly Transformed Cosines (LTC) for area lights, our rendering capabilities were significantly enhanced. A new level of flexibility was introduced, enabling the creation of more complex and realistic lighting effects. The addition of textured area lights has expanded the possibilities for the user's designs.
Looking ahead, there are several potential improvements and features to consider. One such feature would be to re-implement that in Hazel, with ray traced shadows. It would be easy to implement better shadows than point light shadows. Also, combining that with path tracing would reduce the noise that is inherent from path tracing.
In conclusion, the integration of LTC Area Lights into the Tensor Engine has been a resounding success. It has not only improved the realism and flexibility of the engine but has also paved the way for future enhancements. The experience and knowledge gained from this project have been invaluable and will undoubtedly be beneficial in my future endeavors. As I continue to explore and implement new features, I am excited about the potential of the Tensor Engine and look forward to seeing where this journey takes me.
Here are some images that demonstrate the results of my area lights implementation.
Click on an image to view it in bigger size.