Vertex shaders operate on per-vertex attribute information. They project three-dimensional vertex data into two-dimensional clip space. For example, the green triangle in the following example partially obscures the blue triangle. Likewise, a rear triangle shader may not execute before a front triangle shader. Typically, the pixel and vertex shaders are independent of each other, but they can communicate with each other.