One of the most interesting extensions in modern OpenGL is indirect drawing commands and MultiDrawIndirect in particular. Before explaining this extension lets review first drawing commands in OpenGL to have the background to better understand how MultiDrawIndirect works. If you already know about the different drawing commands in OpenGL please skip next two sections. Continue reading

Array Textures

Another useful extension which, in fact, as been in OpenGL since version 3.0 is Array Textures. Array textures allows to batch across texture changes by packing multiple textures into arrays. This way you can batch together objects using different textures reducing the number of state changes and draw calls ( more on the later in the next article about MultiDrawIndirect ). Basically, using array textures, you can load up several 1D, 2D or cubemap images into a single texture object. Continue reading

Persistent mapped buffers

There has been lots of discussion lately on OpenGL with the advent of the next-gen low level APIs like Mantle, Metal and DirectX 12. These low level APIs promise better performance by a design which maps better to the hardware (that’s why they are low-level). I’m not going to talk about that in this article, there are a lot of good resources like: Continue reading