Хотя я не совсем уверен, превосходные учебники Джеффа Ламарша "OpenGL с нуля", похоже, указывают на то, что умножение матриц происходит в ЦП в любом случае. См. учебное пособие № 7 .
Если вы все еще пытаетесь сделать все как можно быстрее, в его статье есть некоторый код, который использует векторные процессоры iPhone (например, SSE1 / 2/3/4 на рабочем столе) для ускорения кода в 7 раз (от 0,7% времени выполнения до 0,1% на акуле).
Однако повышение производительности может не стоить того, особенно с точки зрения читабельности кода. Если вы хотите, чтобы ваш код работал как можно быстрее, сделайте это, но если нет, подумайте о том, чтобы сохранить преобразования библиотеки, чтобы другие могли понять, что происходит в вашем коде. Все, кто использует OpenGL на iPhone, узнают glTranslatef(x,y,z)
, но, возможно, не mTranslate(worldview, makeMat(...))