In APIs such as OpenGL and Direct3D, geometry shader is an optional stage able to process 3D model geometry in more advanced ways than a vertex or tessellation shaders (e.g. turn primitives into other primitives).