В ES 1.0 эти два бита кода делают почти одно и то же.glScalef
определяется для умножения текущей матрицы на масштабирующую матрицу.glLoadMatrixf
определено для замены текущей матрицы на указанную (glMultMatrixf
будет умножать текущую матрицу на указанную, а не заменять ее).Предполагая, что вы начинаете с матрицы идентификаторов в стеке, вы в результате получаете тот же результат, учитывая, что вы сами задаете масштабирующую матрицу.
Так что в ES 1.0 последняя выгодна для компактности и потому, что онаделает более очевидным, что вы делаете.Подход, при котором вы умножаете в своем последнем преобразовании, а не заменяете все, что там есть, также обычно гораздо более аккуратный способ обработки иерархий геометрии.
Однако стек матриц удален из ES 2.0, и вам остаетсяпостоять полностью самостоятельно.Так что, если вы думаете о написании кода для ES 2.0 в будущем, вероятно, стоит иметь код, который действительно может построить ваши матрицы.Apple объявила о выпуске GLKit для iOS 5, который, вероятно, имеет дело с подобными шаблонами, но мы не узнаем, пока iOS 5 выйдет из NDA, и все, что они добавят, будет очевидно доступно только для iOS 5.