An update is available on the beta branch on Steam. This only updates the compiled executables for Lua, only on Windows.
OptimizationI've rewritten the way lights and objects affect each other. In the old mobile renderer it was necessary to store a list of lights that affect each entity, because it was using a forward renderer and had to send the information for the nearest four lights to the object's shader to calculate lighting. This was a complicated task and is not needed with a deferred renderer.
The C++ PlayAnimation routine had a bug that would cause the animation to keep updating invisibly, causing shadows to continue rendering when they did not need to be. This is fixed.
I also fixed some inefficiency that would affect point and spot lights, even if their shadows were not being updated.
Finally, I set it so that in medium and low quality lighting modes, only one shadow will be updated per frame, unless the player is close to the shadow volume. This allows you to have many lights updating but only one gets their shadowmap redrawn each frame. This can cause some small visual glitches but the high quality setting (World:SetLightQuality(2)) can be used to always render everything.
Performance Benchmarks (4.3 beta vs 4.1/4.2)
- One more Day: 15% faster
- A Demon's Game: 17% faster
- The Garden: 20% faster
- Vectronic: 23% faster
- AI and Events map: 200% faster
This build should be considered unstable. It will crash on some games.