When I was writing the first articles for this site (over four years ago), I didn’t have a firm grasp on the purpose of vertex descriptors, and since their use is optional, this omission persisted for far too long.
They describe the shape of data consumed by your shaders. Vertex descriptors are the glue between your application code (written in Objective-C or Swift) and your shader functions (written in the Metal Shading Language). The purpose of this article is to describe and explore a foundational concept in Metal: vertex descriptors.