Key concepts
vertexAttribPointer()
/vertexAttribDivisor()
enableVertexAttribArray()
/disableVertexAttribArray()
bindBuffer( ELEMENTS_ARRAY_BUFFER )
- Enable depth testing if depth is taken into account
- Enable blending & set a blending function if transparent objects exists
- Draw opaque things first, in any order, then draw transparent objects.
- Draw transparent things back to front if transparent objects overlap, but not in depth.
- Disable writing to the depth buffer or change the depth function if transparent objects overlap in depth ( coplanar ).