This is my personal playground to learn and experiment with low-level graphics programming stuff in OpenGL.
It runs with OpenGL >=3.3 on Windows, Linux and MacOS.
You can just run it with cargo run
.
Tons of randomly styled rounded rectangles, spinning faster the closer they are to the mouse.
An image of Gawr Gura being blurred. The blur technique used is sampled Gaussian blur, with recursive downsampling and color dithering.
Relevant articles:
- Scale space implementation > The sampled Gaussian kernel
- Removing Banding In Linelight
- Bandwidth-Efficient Rendering (Kawase blur)
This is not a kawase blur, but the illustrations for recursively downsampling and upsampling in this document are nice and helpful.
Keybinds:
/
- Toggle diagonally sampled blurD
- Toggle dithering↑
- Increment blur kernel size↓
- Decrement blur kernel size→
- Increase blur radius←
- Decrease blur radiusL
- Increase blur layers count⇧L
- Decrease blur layers count
An image of Gawr Gura being blurred. The blur technique used is Dual Filtering, derived from the Kawase blur, with recursive downsampling and color dithering.
Relevant articles:
- Removing Banding In Linelight
- An investigation of fast real-time GPU-based image blur algorithms
- Bandwidth-Efficient Rendering (Kawase blur)
Keybinds:
D
- Toggle dithering→
- Increase kawase distance←
- Decrease kawase distanceL
- Increase blur layers count⇧L
- Decrease blur layers count