A small demo of occlusion culling of many objects in a scene using OpenGL's Shader Storage Suffer Objects (SSBO). Nvidia article: https://github.com/nvpro-samples/gl_occlusion_culling
What's interesting about SSBO is that it can write out to memory, so here I use the fragment shader with early depth test to determine the visibility of objects by writing into a visibility array.