These ones come in two parts! A little more going on that some other types There's actually quite a bit of flexibility They're intended to do geometry manipulation, but quickly More parallel This is the sequence: Tesselation Control Shaders run Tesselation Primitive Generator (fixed) creates more primitives (triangles usually) Tessellation Evaluation Shader is run on output from TPG TCS input/output: input: gl_in array a lot like a geometry shader gl_InvocationID, but it's related to which vertex we're working on output: Tessellation Level (gl_TessLevelOuter, gl_TessLevelInner) Vertices (can move these around) in gl_out You can actually set up this stage with glPatchParameterfv instead of programming it TES input/output: input: gl_TessCoord (vec3, barycentric) gl_in with patch vertices output: gl_Position color (maybe) Alright, can we make a round cube? What is a round cube? It's a cube the way the spiky cube was a cube... My demo runs a geometry shader to turn the output into lines We can use triangles, it's just easier to see what's happening with lines You don't have to use a geometry shader I had one around that makes triangles into lines Alright, can we figure out how close the cube is, and adapt our level? Transform a point using the MVP matrix See how far away it is Next: Compute Shaders That's my plan anyway Maybe a simulation of bouncing balls or something That way we'll have covered all the shader types