Я хочу визуализировать много объектов с одинаковым эффектом.
Поэтому я изменяю свойство transform и вызываю preparetodraw, например,
GLKMatrix4 baseModelViewMatrix = GLKMatrix4MakeTranslation(0.0f, position, -1.0f);
self.effect.transform.modelviewMatrix = baseModelViewMatrix;
[self.effect prepareToDraw];
glDrawElements(GL_TRIANGLES, sizeof(SquareIndices)/sizeof(SquareIndices[0]), GL_UNSIGNED_BYTE, 0);
baseModelViewMatrix = GLKMatrix4MakeTranslation(0.0f, position+2.0f, -1.0f);
self.effect.transform.modelviewMatrix = baseModelViewMatrix;
[self.effect prepareToDraw];
glDrawElements(GL_TRIANGLES, sizeof(SquareIndices)/sizeof(SquareIndices[0]), GL_UNSIGNED_BYTE, 0);
Это эффективно - или есть лучший подход??Приведет ли это к дополнительным вызовам glUseProgram и тому подобному?
У меня есть старый класс менеджера шейдеров, который я создал, но надеялся использовать вместо него glkit.
Заранее спасибо за любые подсказки ...