SSAO optimization
▲ 73 r/computergraphics+3 crossposts

SSAO optimization

Hi folks,
I realized that the SSAO implementation from LearnOpenGL had become a real bottleneck in my renderer.

I was getting around 45 FPS, so I profiled the pass and made a few changes:
● Reduced the SSAO framebuffer resolution
● Got rid of position/depth reconstruction
● Reduced the kernel size

After the changes, I’m getting around 77 FPS with very little noticeable visual difference.
45 FPS → 77 FPS just by making the SSAO pass do less work.

It’s a good reminder that tutorial implementations are great for learning, but once you’re building an actual renderer, you eventually have to question every piece of work you’re asking the GPU to do.

Github: https://github.com/xms0g/abra

u/Background_Shift5408 — 13 days ago
▲ 55 r/computergraphics+2 crossposts

Vulkan particles

I’ve been learning Vulkan by building a GPU particle simulation from scratch.
The project simulates and renders thousands of particles entirely on the GPU using compute shaders. The compute pipeline updates particle positions and velocities every frame, while the graphics pipeline renders them as instanced billboards.
Current features:
- GPU particle simulation with Vulkan compute shaders
- Storage buffers (SSBOs)
- Graphics/compute synchronization using timeline semaphores
- RAII-based Vulkan-Hpp architecture
- Modern C++20

This project has been a great way to understand Vulkan beyond drawing triangles—especially synchronization, descriptor sets, pipeline layouts, and compute/graphics interoperability.
I’d really appreciate any feedback on the code structure, Vulkan usage, or ideas for future improvements.

Github: https://github.com/xms0g/vkParticles

u/Background_Shift5408 — 1 month ago
▲ 586 r/computergraphics+3 crossposts

Added Tessellation to my engine

After spending a lot of time on my renderer recently, I finally added tessellation support to my engine.

The implementation uses OpenGL tessellation control and tessellation evaluation shaders, and right now I’m using it primarily for terrain rendering with heightmaps. It was a fun feature to add because it pushed me into parts of the graphics pipeline that I hadn’t worked with much before.

Github: https://github.com/xms0g/abra

u/Background_Shift5408 — 2 months ago