Матричные стеки OpenGL (есть несколько, по одному на каждый матричный режим) предназначены для использования с иерархическими моделями.То есть вы можете определить оснащение дочернего объекта (скажем, колеса) относительно его родительского тела (скажем, автомобиля), независимо от местоположения / ориентации родителя, когда ребенок рисуется.То есть он позволяет легко и интуитивно создавать преобразования.
Математические стеки (и матричные операции GL в целом) не могут заменить матричную математическую библиотеку общего назначения.Они просто существуют, чтобы позволить составным преобразованиям эффективно применяться к данным вершин.Как уже говорили другие, эта функциональность была удалена из OpenGL с упадком конвейера с фиксированными функциями, потому что потребности шейдерных программ менее однородны, чем потребности старого конвейера.