Doing a straight 2D dither on each frame will result in noisy artifacts and won't be "stable".
Doing an "ordered" dithering produces a "porch screen" artifact effect, where there's a stable pattern in screen space that can be seen.
Trying to naively map dithering patterns as textures on 3D objects again results in unstable patterns as the dithering is dependent on the distance of the screen to the object and produces noise.
This is a proposed solution that maps a dithering pattern as a texture that doesn't have the "porch screen" effect and is stable.
The video linked [0] to in the repo talks about experiments and shortcomings from the above I just listed. This work is in response to some challenges the developer of the "Return of the Obra Dinn" game experienced when trying to create a dithering effect in game [1] [2].
[0] https://www.youtube.com/watch?v=HPqGaIMVuLs&t=201s
[1] https://news.ycombinator.com/item?id=42084080
[2] https://forums.tigsource.com/index.php?topic=40832.msg136374...
Because it looks like high-res 3D mapped textures with circular dots on them now, rather than low-res screen pixel dithering.
I remember seeing the video about the difficulties of dithering stability in "Return of the Obra Dinn".
The solution here has it rendered on textures, but the dots still all have similar size in screen space, so mapping this to actual screen space might still be possible (as in, no circular dots on textures, but low-res pixels on screen being turned on/off directly)?
Unstable dithering is also potentially harder to compress in videos.