Negativ Light
Exotic Light which darkens the environment:
Anyone knows that light brightens the environment. The three basic colours of light are red, green and blue and result in a white light when combined together. This is also true in computer graphics where light is also rendered additive. However some games require more exotic forms of light. One famous example is Antichamber which uses negative light instead of normal light. In my university, artists asked me if it is possible to create this exotic form of light in unity. Negative light in computer graphics is very tricky to implement because game engines are usually optimized to simulate real lights.
In Unity3D, setting the light to negative values wont change anything because it is calculated additive and the values are clamped between 0 and 1. After a while I found out how to simulate such light correctly. However my biggest question was if it is possible to have negative and positive light on the same material. Developers can adjust the color value of a normal light entity, radius and intensity. I found a way to tell if a light would be positve or negative by checking the alpha value which is unused and mark it as negative when it set to zero. WIth multiple shader magic, it was then possible to have both positive and negative light on the same material.
When I saw many forum entries about the implementation of such lights with very complicated answers. I decided to make an Unity Asset which can be bought for 10$ as there was no other Asset which does the same thing. These exotic lights are also affected by shadow calculations. Check out the documentation or watch the video below if you want to see such exotic lights for yourself.