Ambrosia Garden Archive
    • Light Stacking


      Any Word On High?

      The ship I've been toying around with in LightWave has (and, probably most ships in Sins of the Brothers will have) radiator strips across the hull to bleed excess heat. The strips themselves are black or dark blue as a base color, and will heat up dependent on what the ship is doing. Running (not disabled but not moving) will probably run around 500° C (red-ish), thrusters engaged will be ~1000° C (bright yellowish-orange), and weapons firing will be >2000° C (white) with a long cooldown.

      The question is this: is that even possible? Unfortunately, I can't really check until I find a good way of rendering just the areas of the ship that are awash with the glow (waiting to hear from the folks at the NewTek forums), so I was wondering if anyone at ATMOS (or perhaps MB or DA) could shine a bit of light on how alternate frames like that stack. For my purposes, they would need to stack in the order of running lights < engine glow < weapon glow or the whole thing falls apart.

      Also, I'm not holding out much hope for this one, but it would be quite cool if someone could solve this dilemma; if you make a ship's extra animations (like weapon/shield glow) the same as the ship animation, you'll see that the brightnesses work additively (or maybe multiplicatively), so your ship ends up being too bright. Is there a way to work around that? The reason that I ask is because if there is, it would be possible to enable volumetric lights and actually have the ship reflect the glowing radiator strips. Like I said, not a huge deal and a lot of work, but something to consider.

    • I believe that all of running lights, engine glow, and weapon glow contribute additively. It should be easy for you to test. Make a square dark gray sprite, give it dark blue running lights of the same pixel size, a dark green engine glow of the same pixel size, and a dark red weapon glow. If it works as I think, you'll see dark gray when disabled, medium blue when drifting, cyan when accelerating, magenta when firing without accelerating, and light gray when accelerating and firing. If I'm wrong, you'll see pure red or green or blue at some point. In any case, then you'll know for sure and can let the rest of us know.

      Assuming I'm right, you can define all the extra frames subtractively, as long as you don't want any of them to actually make anything darker.

      So make the running lights map the difference in color between the base sprite and what you want it to look like "cool". That is, they map how much brighter the ship is when not disabled. Make the engine glow map the difference between the idling ship and the accelerating ship. Note that this is not boolean, but fades stronger and weaker depending on acceleration level. The weapon glow will be be a single map that is the difference between the non-attacking ship and the attacking ship. So there may be a noticeable difference between firing while still and while moving.

      However, you can also take advantage of the "unfolds to fire". Just make the ship have a 1-frame unfolding, so there's no perceptible delay during the unfolding. The point here is just to change the base sprite.

    • Good point on "unfolds to fire," Qaanol. (I'll give the other stuff a try in a minute.) In fact, the ship in question actually does unfold to fire (well, actually, it's turrets just pop out), so it would be simple enough to just change the last frame in the animation to have volumetric lighting. Assuming it doesn't take too long to render.

    • Note that if a player chooses not to use animations in Nova (via the preferences) then all ships will always be in "unfolded" mode. For your purposes, this means they would always look white-hot. In the stock game it means the asteroid miner doesn't have the ridiculously long delay it normal does between pressing "fire" and the first shots appearing.

    • Could you make the volumetric lighting darker/more transparent? That should stop the ship from getting too bright.