Один шейдер или под каждый спрайт свой в OpenGL ES2?
Лучше использовать один, так как переключение шейдеров дорого обходится
Я создал буфер:
glGenBuffers(1, &vbo_object); 
glBindBuffer(GL_ARRAY_BUFFER, vbo_object); 
glBufferData(GL_ARRAY_BUFFER, size, data, GL_DYNAMIC_DRAW); 
glBindBuffer(GL_ARRAY_BUFFER, 0);
сами спрайты находятся в классах у которых есть свои x,y (координаты) ,u,v (координаты текстуры) - я могу это преобразовать в массив. Спрайтов допустим 100 штук, как потом отдельных массивов float потом записать в один буфер VBO.
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(float) * nSize * 4, &pVertex); -> так обновить? 
glBufferData(GL_ARRAY_BUFFER, nSize, &pVertex[0], GL_DYNAMIC_DRAW); -> так обновить?
допустим на каждом фрейме нужно смещать координаты каждого спрайта в разное время. Каждый раз переписывать VBO или есть лучший способ? Возможно во все спрайты передать VBO буфер? Или каждый раз при рендеринге фрейма - обновлять VBO всегда?