[READ-ONLY] Mirror of https://github.com/excaliburjs/Excalibur. 🎮 Your friendly TypeScript 2D game engine for the web 🗡️ excaliburjs.com
excalibur excaliburjs game-development game-engine game-framework gamedev games html5-canvas typescript

feat: Post Processing Improvements + Pre-multiplied alpha (#2142) master

Related to v26 roadmap This PR re-implements post processing using webgl fragment shaders, it is MUCH faster this way. The method of action for this PR uses framebuffers which are encapsulated by `ex.RenderTarget` which will capture all draw calls and redirect them to a framebuffer texture. This change also requires Excalibur support pre-multiplied alpha because all things end up pre-multiplied in the gpu. Great articles on premultiplied - https://www.realtimerendering.com/blog/gpus-prefer-premultiplication/ - https://www.adriancourreges.com/blog/2017/05/09/beware-of-transparent-pixels/ ## Changes: - New `ex.RenderTarget` and `ex.RenderSource` to encapsulate - New `ex.ScreenRenderer` which can draw a RenderSource to the entire screen - Breaking change to how post processing works, requires fragment shaders - Slight Breaking change to the `ex.ColorBlindnessPostProcessor`