В этой статье не процитировать какие - либо источники . ( август 2014 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Фиксированная функция - это термин, канонически используемый для противопоставления API-интерфейсов 3D-графики и более ранних графических процессоров, разработанных до появления API-интерфейсов 3D-графики на основе шейдеров и архитектур графических процессоров.
История [ править ]
Исторически API с фиксированными функциями состояли из набора точек входа в функции, которые приблизительно или напрямую сопоставлялись с выделенной логикой для их названной цели в графических процессорах, предназначенных для их поддержки. По мере развития графических процессоров и API-интерфейсов на основе шейдеров инженеры графических драйверов реализовали API-интерфейсы с фиксированными функциями с использованием более общей архитектуры шейдеров. Этот подход послужил переходом, который продолжит предоставлять абстракцию API фиксированных функций, с которой было знакомо большинство разработчиков, позволяя при этом доработать и усовершенствовать новые архитектуры на основе шейдеров.
OpenGL , OpenGL ES и DirectX ( Direct3D ) - это все API-интерфейсы трехмерной графики, которые прошли переход от модели программирования с фиксированными функциями к модели программирования на основе шейдеров. Ниже приведена таблица того, когда был осуществлен переход от фиксированных функций к шейдерам:
3D API | Последняя версия с фиксированной функцией | Первая версия шейдера |
---|---|---|
OpenGL | v1.5 | v2.0 |
OpenGL ES | v1.1 | v2.0 |
DirectX | v7.0 | v8.0 |
Фиксированная функция против шейдеров [ править ]
API с фиксированными функциями, как правило, представляют собой более простую абстракцию программирования с серией четко определенных и конкретно названных этапов графического конвейера . API на основе шейдеров обрабатывают графические данные (вершины и пиксели / тексели ) в общем и обеспечивают большую гибкость в том, как эти данные модулируются. Более сложные методы рендеринга возможны с использованием API на основе шейдеров .