GLKBaseEffect PerformanceToDraw Производительность - PullRequest
2 голосов
/ 25 февраля 2012

Я хочу визуализировать много объектов с одинаковым эффектом.

Поэтому я изменяю свойство 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.

Заранее спасибо за любые подсказки ...

...