October 2018
Intermediate to advanced
500 pages
12h 40m
English
There is an important distinction to make between attributes and uniforms. When a draw call is invoked (using drawArrays or drawElements), the GPU will launch several copies of the vertex shader in parallel. Each copy will receive a different set of attributes. These attributes are drawn from the VBOs that are mapped onto the respective attributes.
On the other hand, all of the copies of the vertex shaders will receive the same uniforms – hence the name: uniform. In other words, uniforms can be seen as constants per draw call:

Once lights, normals, and materials are passed to the ...