Light sources, RGB channels, and additive lighting: improving thruster plumes at max effect strength

    Thalanor

    CEO Snataris Colonial Fleetyards
    Joined
    Sep 10, 2013
    Messages
    818
    Reaction score
    708
    • Master Builder Bronze
    • Thinking Positive
    • Legacy Citizen 3
    1. What is this about?

    With the (awesome) new thruster FX update, we have two options: link a color, or leave it to default. However, default appears to be superior to the color choices because of the FX behavior at full thrust: the center of the thruster plume will be enriched with a small hint of white-ish glow in the center of the color, making it look more dynamic than a "flat" color.


    2. Why is this?

    This is, to the best of my knowledge, due to the same reason as why for example an orange light block will appear to radiate yellow light if there are too many orange blocks: additive lighting. Think of any light as a vector of (red, green, blue) - every value can be between 0 and 1. (1,1,1) is white, (0,0,0) is black, (1,0,0) is red, (1,1,0) is yellow... and so on (RGB color model)

    Now assume (very rough simplification) that an orange light block has a color vector of (1, 0.5, 0). This means "full red, some green, no blue" - if you mix that, you get orange. Now if there is alot of this "orange" lighting in one place, these vectors will get "added up" - and since each component caps out at 1, the final result will be (1,1,0) - which is yellow, and not orange. This can be easily tested by putting orange light blocks in large numbers close to a white surface, lighting it a pure yellow (at least it behaved that way before the lighting update, I have not rerun that test yet within the last weeks - it appears that the effect is definitely apparent with thruster plumes though). The idea is that for thruster plumes, it would make sense for them to not cap out at a fully saturated "flat" color, but instead be able to progress a bit further in terms of brightness - towards a color that doesn't have one channel be fully zero, making use of the very same mechanic orange light (unintendedly) uses to become yellow light.


    3. What does this have to do with thruster plume FX?

    So, assuming you want greenish thrusters, to keep it simple. That means your thruster plume will eventually be created from adding alot of (0, 1, 0) vectors at varying opacity, and the result you get will indeed be green - a flat green, that is the same color across the entire surface. Would it not be more awesome if there was a slight brighter-than-green glow in the center? A star wars lightsaber would look alot more boring if it was a flat green too, as opposed to the green-glow-with-brighter-center they went with. It would not have to be as drastic, just a tiny bit of glow to give it that dynamic feeling.


    4. How could that be done and why is it easy to do?

    Assume for a moment that the color vector of green light blocks in the game was not (0,1,0) - "no red, full green, no blue" - but instead it was (0.01, 1, 0.01) - full green and a tiny tiny bit of red and blue, so that it was barely visible. Now what would happen in a high intensity additive lighting scenario like thruster plumes is that the tiny 0.01 values would add up too, and the thrusters would get a slight glow in the center - just by a minor adjustment in the color vector of the light block that was linked to the core to make a colored thruster. A zero, infinitely added on top of itself, is a zero - but a tiny value would be something above zero, reducing the "flat" color impression while still making it immediately apparent that the thruster plume is in fact green and not some other color.
     
    Last edited:
    • Like
    Reactions: JNC and Lecic