Video Game Blurs (and how the best one works)

https://news.ycombinator.com/rss Hits: 20
Summary

Blurs are the basic building block for many video game post-processing effects and essential for sleek and modern GUIs. Video game Depth of Field and Bloom or frosted panels in modern user interfaces - used subtly or obviously - they’re everywhere. Even your browser can do it, just tap this sentence!Effect of "Bloom", one of many use-cases for blur algorithmsConceptually, “Make thing go blurry” is easy, boiling down to some form of “average colors in radius”. Doing so in realtime however, took many a graphics programmer through decades upon decades of research and experimentation, across computer science and maths. In this article, we’ll follow their footsteps.A graphics programming time travel, if you will.Using the GPU in the device you are reading this article on, and the WebGL capability of your browser, we’ll implement realtime blurring techniques and retrace the trade-offs graphics programmers had to make in order to marry two, sometimes opposing, worlds: Mathematical theory and Technological reality.This is my submission to this year's Summer of Math ExpositionWith many interactive visualizations to guide us, we’ll journey through a bunch of blurs, make a detour through frequency space manipulations, torture your graphics processor to measure performance, before finally arriving at an algorithm with years worth of cumulative graphics programmer sweat - The ✨ Dual Kawase Blur 🌟Setup - No blur yet #In the context of video game post-processing, a 3D scene is drawn, also called rendering, and saved to an intermediary image - a framebuffer. In turn, this framebuffer is processed to achieve various effects. Since this processing happens after a 3D scene is rendered, it’s called post-processing. All that, many times a second.Depending on technique, framebuffers can hold non-image data and post-processing effects like Color-correction or Tone-mapping don't even require intermediate framebuffers: There's more than one way (@35:20)This is where we jump in: with a frame...

First seen: 2025-09-06 02:24

Last seen: 2025-09-06 21:27