Функциональность с фиксированным контуром устарела, поскольку, по существу, она была исправлена.
Для поддержки новых трюков и таких, как правило, требуемых новых функций OpenGL, и стало ясно, что постоянная поддержка запрашиваемых функций означает увеличение размера API OpenGL и постепенное увеличение его количества.
Между тем, аппаратное обеспечение становилось все более изощренным и мощным, и OpenGL полностью не эксплуатировалось. Таким образом, программируемый конвейер был задуман.
С OpenGL3 группа Kronos «устарела» от фиксированной функциональности трубопровода. Это вызвало огромный шум, так как было так много кода и столько талантов, которые были вложены в устоявшийся фиксированный конвейер, поэтому они частично отказались от своего решения, представив профили «ядро» и «совместимость». Основной профиль охватывает новую программируемую модель трубопровода, а профиль совместимости включает в себя ядро плюс большинство/всех фиксированных функциональных возможностей, позволяя приложениям использовать любую модель.
Теперь мы работаем с OpenGL 4.2, и профиль совместимости все еще существует и не показывает признаков исчезновения.
Короче говоря, причина для устаревания заключается не в том, что старая модель не подходит для прикладных программистов; скорее, это было более тяжелое бремя для разработчиков . Фактическая модель достаточно прочная, и многие приложения/разработчики, которые используют программируемые функции, находят себе перераспределение основных частей фиксированной функциональности (glBegin, glEnd, матричные стеки, вызовы преобразования и т. Д.).
Так что вперед, реализуйте свои собственные стеки матрицы.Но, если вы придумаете еще лучшую идею, пожалуйста, поделитесь ею с нами :)
Было бы интересно посмотреть, что * причина * информация. Как и новый предпочтительный подход. – Kromster