Understanding the principles and limitations of geometry shaders
First things first, we’re going to start this chapter by having a quick look at the foundational principles of geometry shaders and their most important limitations. In particular, we’ll focus on the specific cases of the macOS X and iOS platforms, which don’t deal well with this type of code and have to be taken into consideration for cross-platform compatibility.
What are geometry shaders?
Geometry shaders are a special type of shaders that, in addition to the usual vertex and fragment stages, also contain an additional step in the render process – the geometry stage.
Contrary to vertex and fragment shader functions, the geometry shader function is totally optional. As we saw throughout this book, there are indeed many effects and renders that can be achieved without using this stage in the shader code. However, if you want to change the geometry of your meshes in depth and you need...