stringtranslate.com

OpenGL

OpenGL ( Открытая графическая библиотека [3] ) — это межъязыковой кроссплатформенный интерфейс прикладного программирования (API) для рендеринга 2D и 3D векторной графики . API обычно используется для взаимодействия с графическим процессором (GPU) для достижения аппаратного ускорения рендеринга .

Silicon Graphics, Inc. (SGI) начала разработку OpenGL в 1991 году и выпустила ее 30 июня 1992 года. [4] [5] Он используется для множества приложений, включая системы автоматизированного проектирования (САПР), видеоигры , научные исследования. визуализация , виртуальная реальность и моделирование полета . С 2006 года OpenGL находится под управлением некоммерческого технологического консорциума Khronos Group . [6]

Дизайн

Иллюстрация процесса графического конвейера

Спецификация OpenGL описывает абстрактный интерфейс прикладного программирования (API) для рисования 2D- и 3D-графики. Он предназначен для реализации в основном или полностью с использованием аппаратного ускорения, такого как графический процессор , хотя API может быть полностью реализован в программном обеспечении, работающем на центральном процессоре .

API определяется как набор функций , которые могут вызываться клиентской программой, а также набор именованных целочисленных констант (например, константа GL_TEXTURE_2D, которая соответствует десятичному числу 3553). Хотя определения функций внешне похожи на определения в языке программирования C , они не зависят от языка. Таким образом, OpenGL имеет множество языковых привязок , некоторые из наиболее примечательных из которых — привязка JavaScript WebGL (API, основанный на OpenGL ES 2.0 , для 3D-рендеринга из веб-браузера ); привязки C WGL , GLX и CGL ; привязка C, предоставляемая iOS ; и привязки Java и C, предоставляемые Android .

OpenGL не только не зависит от языка, но и является кроссплатформенным. В спецификации ничего не говорится о получении контекста OpenGL и управлении им, оставляя это как деталь базовой оконной системы . По той же причине OpenGL занимается исключительно рендерингом, не предоставляя API-интерфейсов, связанных с вводом, звуком или обработкой окон.

Разработка

OpenGL больше не находится в активной разработке: тогда как в период с 2001 по 2014 год спецификация OpenGL обновлялась в основном ежегодно: два выпуска (3.1 и 3.2) вышли в 2009 году и три (3.3, 4.0 и 4.1) в 2010 году, новейшая версия OpenGL Спецификация 4.6 была выпущена в 2017 году после трехлетнего перерыва и ограничивалась включением одиннадцати существующих расширений ARB и EXT в основной профиль. [7]

Активная разработка OpenGL была прекращена в пользу API Vulkan , выпущенного в 2016 году и имевшего кодовое название glNext во время первоначальной разработки. В 2017 году Khronos Group объявила, что OpenGL ES не будет иметь новых версий [8] и с тех пор сосредоточилась на разработке Vulkan и других технологий. [9] [10] В результате некоторые возможности современных графических процессоров, например трассировка лучей , не поддерживаются OpenGL.

Новые версии спецификаций OpenGL выпускаются Khronos Group , каждая из которых расширяет API для поддержки различных новых функций. Детали каждой версии определяются консенсусом между членами группы, включая производителей видеокарт, разработчиков операционных систем и общие технологические компании, такие как Mozilla и Google . [11]

В дополнение к функциям, требуемым основным API, поставщики графических процессоров (GPU) могут предоставлять дополнительные функции в виде расширений . Расширения могут добавлять новые функции и новые константы, а также ослаблять или снимать ограничения на существующие функции OpenGL. Поставщики могут использовать расширения для предоставления пользовательских API без необходимости поддержки со стороны других поставщиков или группы Khronos в целом, что значительно повышает гибкость OpenGL. Все расширения собираются и определяются в реестре OpenGL. [12]

Каждому расширению присвоен короткий идентификатор, основанный на названии компании, которая его разработала. Например, идентификатор Nvidia — NV, который является частью имени расширения GL_NV_half_float, константы GL_HALF_FLOAT_NVи функции glVertex2hNV(). [13] Если несколько поставщиков соглашаются реализовать одну и ту же функциональность с использованием одного и того же API, может быть выпущено общее расширение с использованием идентификатора EXT. В таких случаях также может случиться так, что Совет по обзору архитектуры группы Khronos даст расширение свое явное одобрение, и в этом случае будет использоваться идентификатор ARB. [14]

Функции, представленные в каждой новой версии OpenGL, обычно формируются из комбинации функций нескольких широко реализованных расширений, особенно расширений типа ARB или EXT.

Документация

Совет по обзору архитектуры OpenGL выпустил серию руководств вместе со спецификацией, которые были обновлены для отслеживания изменений в API. Их обычно называют по цветам их обложек:

Красная книга
Руководство по программированию OpenGL, 9-е издание. ISBN  978-0-134-49549-1
Официальное руководство по изучению OpenGL версии 4.5 с помощью SPIR-V
Оранжевая книга
Язык шейдеров OpenGL, 3-е издание. ISBN 0-321-63763-1 
Учебник и справочник по GLSL .

Исторические книги (до OpenGL 2.0):

Зеленая книга
Программирование OpenGL для системы X Window. ISBN 978-0-201-48359-8 
Книга об интерфейсе X11 и наборе инструментов OpenGL Utility Toolkit (GLUT).
Синяя книга
Справочное руководство OpenGL, 4-е издание. ISBN 0-321-17383-X 
По сути, это распечатка страниц руководства (man) Unix для OpenGL.
Включает раскладывающуюся диаграмму размером с плакат, показывающую структуру идеализированной реализации OpenGL.
Альфа-книга (белая обложка)
Программирование OpenGL для Windows 95 и Windows NT. ISBN 0-201-40709-4 
Книга о взаимодействии OpenGL с Microsoft Windows.

Документация OpenGL также доступна через официальную веб-страницу. [15]

Связанные библиотеки

Самые ранние версии OpenGL были выпущены с сопутствующей библиотекой под названием OpenGL Utility Library (GLU). Он предоставлял простые и полезные функции, которые вряд ли поддерживались современным оборудованием, такие как тесселяция , генерация MIP-карт и примитивных форм . Спецификация GLU последний раз обновлялась в 1998 году и зависит от функций OpenGL, которые сейчас устарели .

Наборы инструментов для контекста и окон

Учитывая, что создание контекста OpenGL — довольно сложный процесс, и учитывая, что он варьируется в зависимости от операционной системы , автоматическое создание контекста OpenGL стало общей функцией нескольких библиотек разработки игр и пользовательских интерфейсов , включая SDL , Allegro , SFML , FLTK , и Qt . Несколько библиотек были разработаны исключительно для создания окон с поддержкой OpenGL. Первой такой библиотекой была OpenGL Utility Toolkit (GLUT), позже замененная freeglut . GLFW — более новая альтернатива. [16]

  • GLFW – кроссплатформенный обработчик окон и клавиатуры-мыши-джойстика; более ориентирован на игру
  • freeglut — кроссплатформенный обработчик окон и клавиатуры-мыши; его API является расширенным набором API GLUT, и он более стабилен и актуален, чем GLUT.
  • OpenGL Utility Toolkit (GLUT) — старый обработчик окон, больше не поддерживается.
  • Allegro 5 — кроссплатформенная мультимедийная библиотека с API C, ориентированная на разработку игр.
  • Simple DirectMedia Layer (SDL) — кроссплатформенная мультимедийная библиотека с API C.
  • SFML — кроссплатформенная мультимедийная библиотека с API C++ и множеством других привязок к таким языкам, как C#, Java, Haskell и Go.
  • FLTK — небольшая кроссплатформенная библиотека виджетов C++.
  • Qt — кроссплатформенный набор инструментов виджетов C++. Он предоставляет множество вспомогательных объектов OpenGL, которые даже абстрагируют разницу между настольным GL и OpenGL ES.
  • wxWidgets — кроссплатформенный набор инструментов виджетов C++.

Библиотеки загрузки расширений

Учитывая высокую рабочую нагрузку, связанную с идентификацией и загрузкой расширений OpenGL, было разработано несколько библиотек, которые автоматически загружают все доступные расширения и функции. Примеры включают библиотеку OpenGL Easy Extension (GLEE), библиотеку OpenGL Extension Wrangler (GLEW) и glbinding . Расширения также автоматически загружаются большинством языковых привязок, таких как JOGL и PyOpenGL.

Реализации

Снимок экрана glxinfo, показывающий информацию о реализации OpenGL в системе Mesa.

Mesa 3D — это реализация OpenGL с открытым исходным кодом . Он может выполнять чистый программный рендеринг, а также может использовать аппаратное ускорение на BSD , Linux и других платформах, воспользовавшись преимуществами инфраструктуры прямого рендеринга . Начиная с версии 20.0, он реализует версию 4.6 стандарта OpenGL.

История

В 1980-х годах разработка программного обеспечения, которое могло бы работать с широким спектром графического оборудования, была настоящей проблемой. Разработчики программного обеспечения написали собственные интерфейсы и драйверы для каждого оборудования. Это было дорого и привело к увеличению усилий.

К началу 1990-х годов компания Silicon Graphics (SGI) была лидером в области 3D-графики для рабочих станций. Их IRIS GL API [18] [19] стал отраслевым стандартом и использовался более широко, чем основанный на открытых стандартах PHIGS . [ нужна цитация ] Это произошло потому, что IRIS GL считался более простым в использовании, [ кем? ] и потому, что он поддерживает немедленный рендеринг. PHIGS, напротив, считался сложным в использовании и устаревшим по функциональности.

Конкуренты SGI (включая Sun Microsystems , Hewlett-Packard и IBM ) также смогли вывести на рынок 3D-оборудование, поддерживаемое расширениями стандарта PHIGS, что вынудило SGI открыть исходный код версии IRIS GL в качестве общедоступного стандарта под названием OpenGL .

Однако у SGI было много клиентов, для которых переход с IRIS GL на OpenGL потребовал бы значительных инвестиций. Более того, в IRIS GL были функции API, не имеющие отношения к 3D-графике. Например, он включал API управления окнами, клавиатурой и мышью, отчасти потому, что он был разработан до X Window System и Sun NeWS . И библиотеки IRIS GL были непригодны для открытия из-за проблем с лицензированием и патентами [ нужны дальнейшие объяснения ] . Эти факторы требовали от SGI продолжения поддержки передовых и запатентованных API-интерфейсов программирования Iris Inventor и Iris Performer, в то время как рыночная поддержка OpenGL созревала.

Одним из ограничений IRIS GL было то, что он предоставлял доступ только к функциям, поддерживаемым базовым оборудованием. Если графическое оборудование не поддерживает функцию изначально, приложение не сможет ее использовать. OpenGL преодолел эту проблему, предоставив программную реализацию функций, не поддерживаемых аппаратным обеспечением, что позволило приложениям использовать расширенную графику в относительно маломощных системах. OpenGL стандартизировал доступ к оборудованию, возложил ответственность за разработку программ аппаратного интерфейса ( драйверов устройств ) на производителей оборудования и делегировал функции управления окнами базовой операционной системе. При таком большом количестве различных типов графического оборудования возможность говорить на одном языке оказала замечательное влияние, предоставив разработчикам программного обеспечения платформу более высокого уровня для разработки 3D-программ.

В 1992 году [20] SGI возглавил создание Совета по обзору архитектуры OpenGL (OpenGL ARB), группы компаний, которые будут поддерживать и расширять спецификацию OpenGL в будущем.

В 1994 году SGI задумалась о выпуске чего-то под названием « OpenGL++ », которое включало бы такие элементы, как API-интерфейс графа сцены (предположительно основанный на их технологии Performer ). Спецификация была распространена среди нескольких заинтересованных сторон, но так и не стала продуктом. [21]

В 1996 году Microsoft выпустила Direct3D , который со временем стал главным конкурентом OpenGL. Более 50 разработчиков игр подписали открытое письмо Microsoft, опубликованное 12 июня 1997 года, с призывом к компании активно поддерживать OpenGL. [22] 17 декабря 1997 года [23] Microsoft и SGI инициировали проект «Фаренгейт» , который представлял собой совместную работу с целью унификации интерфейсов OpenGL и Direct3D (а также добавления API графов сцен). В 1998 году к проекту присоединилась Hewlett-Packard. [24] Первоначально он подавал некоторые надежды на наведение порядка в мире API-интерфейсов интерактивной 3D-компьютерной графики, но из-за финансовых ограничений SGI, стратегических соображений Microsoft и общего отсутствия поддержки со стороны отрасли от него отказались в 1999 году . 25]

В июле 2006 года Совет по обзору архитектуры OpenGL проголосовал за передачу контроля над стандартом OpenGL API группе Khronos. [26] [27]

Поддержка отрасли

В июне 2018 года Apple объявила устаревшими API OpenGL на всех своих платформах ( iOS , macOS и tvOS ), настоятельно поощряя разработчиков использовать свой собственный Metal API , который был представлен в 2014 году. [28]

id Software использовала OpenGL в своих играх, начиная с GLQuake (порт Quake на OpenGL с некоторыми модификациями), выпущенного в 1997 году. [29] Первым лицензированным движком компании с поддержкой OpenGL был движок Quake II , также известный как id Tech 2 . [30] В 2016 году они выпустили обновление для id Tech 6 , в котором добавлена ​​поддержка Vulkan, преемника OpenGL. В ID Tech 7 исключена поддержка OpenGL. [31]

В марте 2023 года Valve удалила поддержку OpenGL из Dota 2 . [32]

Khronos прекратил поддержку в OpenGL ряда современных графических технологий, например Ray Tracing , декодирования видео на GPU , алгоритма сглаживания с глубоким обучением — AMD FidelityFX Super Resolution(FSR) [33] [34] и Nvidia DLSS. [35] [36]

Atypen Games при поддержке Samsung обновили свой игровой движок, чтобы использовать Vulkan вместо OpenGL на всех платформах, отличных от Apple. [37]

ОС Google Fuchsia использует Vulkan в качестве встроенного графического API и требует совместимого с Vulkan графического процессора. Fuchsia намерена поддерживать OpenGL поверх Vulkan посредством слоя трансляции ANGLE. [38]

История версий

Первая версия OpenGL, версия 1.0, была выпущена 30 июня 1992 года Марком Сигалом и Куртом Экли . С тех пор OpenGL время от времени расширялся путем выпуска новой версии спецификации. Такие выпуски определяют базовый набор функций, которые должны поддерживать все соответствующие видеокарты и на основе которых можно легче писать новые расширения. Каждая новая версия OpenGL обычно включает в себя несколько расширений, которые широко поддерживаются производителями видеокарт, хотя детали этих расширений могут быть изменены.

OpenGL 2.0

Дата выхода : 7 сентября 2004 г.

OpenGL 2.0 изначально был задуман 3Dlabs для устранения опасений, что OpenGL находится в застое и ему не хватает четкого направления. [55] 3Dlabs предложила ряд важных дополнений к стандарту. Большинство из них в то время были отклонены ARB или по каким-либо причинам так и не были реализованы в той форме, которую предложила 3Dlabs. Однако их предложение по языку шейдеров в стиле C в конечном итоге было завершено, в результате чего появилась текущая формулировка языка шейдеров OpenGL ( GLSL или GLslang). Как и ассемблерные языки шейдеров, которые он заменял, он позволял заменять вершины с фиксированной функцией и фрагментный канал шейдерами , хотя на этот раз написанными на C-подобном языке высокого уровня.

Конструкция GLSL отличалась относительно небольшими уступками ограничениям доступного на тот момент оборудования. Это отсылало к более ранней традиции OpenGL, ставившей амбициозную и дальновидную цель для 3D-ускорителей, а не просто отслеживание состояния доступного в настоящее время оборудования. Окончательная спецификация OpenGL 2.0 [56] включает поддержку GLSL.

Пик Лонгса и OpenGL 3.0

До выпуска OpenGL 3.0 новая редакция имела кодовое название Longs Peak . На момент первоначального анонса Longs Peak был представлен как первая крупная версия API за всю историю OpenGL. Он заключался в пересмотре способа работы OpenGL и внесении фундаментальных изменений в API.

В проекте внесены изменения в управление объектами. Объектная модель GL 2.1 была построена на основе архитектуры OpenGL, основанной на состояниях. То есть, чтобы изменить объект или использовать его, необходимо привязать объект к системе состояний, затем внести изменения в состояние или выполнить вызовы функций, использующих привязанный объект.

Поскольку OpenGL использует систему состояний, объекты должны быть изменяемыми. То есть базовая структура объекта может измениться в любой момент, даже если конвейер рендеринга асинхронно использует этот объект. Объект текстуры можно переопределить из 2D в 3D. Это требует, чтобы любые реализации OpenGL усложняли внутреннее управление объектами.

В API Longs Peak создание объектов станет атомарным , с использованием шаблонов для определения свойств объекта, который будет создан с помощью одного вызова функции. Затем объект можно было сразу использовать в нескольких потоках. Объекты также будут неизменяемыми; однако их содержимое может быть изменено и обновлено. Например, текстура может изменить свое изображение, но ее размер и формат изменить нельзя.

Для поддержки обратной совместимости старый API на основе состояния по-прежнему будет доступен, но никакие новые функции не будут предоставляться через старый API в более поздних версиях OpenGL. Это позволило бы продолжать работу устаревших кодовых баз, таких как большинство продуктов САПР , в то время как другое программное обеспечение можно было бы писать с использованием нового API или портировать на него.

Первоначально Longs Peak должен был быть завершен в сентябре 2007 года под названием OpenGL 3.0, но 30 октября Khronos Group объявила, что столкнулась с несколькими проблемами, которые хотела бы решить перед выпуском спецификации. [57] В результате выпуск спецификации был отложен, и Khronos Group отключилась от СМИ до выпуска окончательной версии OpenGL 3.0.

Окончательная спецификация оказалась гораздо менее революционной, чем предложение Longs Peak. Вместо удаления всех немедленных режимов и фиксированных функций (режим без шейдеров) спецификация включила их как устаревшие функции. Предложенная объектная модель не была включена, и о планах включать ее в будущие версии не сообщалось. В результате API остался практически прежним, а некоторые существующие расширения были повышены до основных функций.

В некоторых группах разработчиков это решение вызвало бурю негодования, [58] многие разработчики заявили, что перейдут на DirectX в знак протеста. Большинство жалоб касалось отсутствия связи Khronos с сообществом разработчиков и отказа от множества функций, которые многие воспринимали положительно. Другие разочарования включали требование к аппаратному обеспечению уровня DirectX 10 использовать OpenGL 3.0, а также отсутствие геометрических шейдеров и экземплярного рендеринга в качестве основных функций.

Другие источники сообщили, что реакция сообщества была не такой серьезной, как первоначально предполагалось, [59] при этом многие поставщики продемонстрировали поддержку обновления. [60] [61]

OpenGL 3.0

Дата выхода : 11 августа 2008 г.

В OpenGL 3.0 введен механизм прекращения поддержки для упрощения будущих версий API. Некоторые функции, помеченные как устаревшие, можно полностью отключить, запросив у оконной системы контекст прямой совместимости . Однако доступ к функциям OpenGL 3.0 по-прежнему можно получить наряду с этими устаревшими функциями, запросив полный контекст .

Устаревшие функции включают в себя:

OpenGL 3.1

Дата выхода : 24 марта 2009 г.

В OpenGL 3.1 полностью удалены все функции, устаревшие в версии 3.0, за исключением широких линий. Начиная с этой версии, невозможно получить доступ к новым функциям с использованием полного контекста или получить доступ к устаревшим функциям с использованием контекста с прямой совместимостью . Исключение из первого правила делается, если реализация поддерживает расширение ARB_compatibility, но это не гарантируется.

Аппаратная поддержка: Mesa поддерживает ARM Panfrost версии 21.0.

OpenGL 3.2

Дата выхода : 3 августа 2009 г.

OpenGL 3.2 в дальнейшем развивает механизмы устаревания, представленные в OpenGL 3.0, путем разделения спецификации на основной профиль и профиль совместимости . Контексты совместимости включают ранее удаленные API с фиксированными функциями, эквивалентные расширению ARB_compatibility, выпущенному вместе с OpenGL 3.1, тогда как основные контексты этого не делают. OpenGL 3.2 также включал обновление до GLSL версии 1.50.

OpenGL 3.3

Дата выхода: 11 марта 2010 г.

Mesa поддерживает программный драйвер SWR, softpipe и старые карты Nvidia с NV50.

OpenGL 4.0

Дата выхода : 11 марта 2010 г.

OpenGL 4.0 был выпущен вместе с версией 3.3. Он был разработан для оборудования, поддерживающего Direct3D 11.

Как и OpenGL 3.0, эта версия OpenGL содержит большое количество довольно несущественных расширений, предназначенных для полного раскрытия возможностей оборудования класса Direct3D 11. Ниже перечислены только наиболее влиятельные расширения.

Аппаратная поддержка: Nvidia GeForce серии 400 и новее, AMD Radeon HD серии 5000 и новее (шейдеры FP64 реализованы путем эмуляции на некоторых графических процессорах TeraScale), Intel HD Graphics в процессорах Intel Ivy Bridge и новее. [62]

OpenGL 4.1

Дата выхода : 26 июля 2010 г.

Аппаратная поддержка: Nvidia GeForce серии 400 и новее, AMD Radeon HD серии 5000 и новее (шейдеры FP64 реализованы путем эмуляции на некоторых графических процессорах TeraScale), Intel HD Graphics в процессорах Intel Ivy Bridge и новее. [62]

OpenGL 4.2

Дата выхода: 8 августа 2011 г. [49]

Аппаратная поддержка: Nvidia GeForce серии 400 и новее, AMD Radeon HD серии 5000 и новее (шейдеры FP64 реализованы путем эмуляции на некоторых графических процессорах TeraScale) и Intel HD Graphics в процессорах Intel Haswell и новее. [62] (Linux Mesa: Ivy Bridge и новее)

OpenGL 4.3

Дата выхода: 6 августа 2012 г. [50]

Аппаратная поддержка: AMD Radeon HD серии 5000 и новее (шейдеры FP64 реализованы путем эмуляции на некоторых графических процессорах TeraScale), Intel HD Graphics в процессорах Intel Haswell и новее. [62] (Linux Mesa: Ivy Bridge без трафаретного текстурирования, Haswell и новее), Nvidia GeForce серии 400 и новее. Эмуляция VIRGL для виртуальных машин поддерживает версии 4.3+ с Mesa 20.

OpenGL 4.4

Дата выхода: 22 июля 2013 г. [52]

Аппаратная поддержка: AMD Radeon HD серии 5000 и новее (шейдеры FP64 реализованы путем эмуляции на некоторых графических процессорах TeraScale), Intel HD Graphics в процессорах Intel Broadwell и новее (Linux Mesa: Haswell и новее), [64] Nvidia GeForce 400 серии и новее, [65] Тегра К1 .

OpenGL 4.5

Дата выхода: 11 августа 2014 г. [12] [53]

Аппаратная поддержка: AMD Radeon HD серии 5000 и новее (шейдеры FP64 реализованы путем эмуляции на некоторых графических процессорах TeraScale), Intel HD Graphics в процессорах Intel Broadwell и новее (Linux Mesa: Haswell и новее), Nvidia GeForce серии 400 и новее, [65] Тегра К1 и Тегра Х1. [67] [68]

OpenGL 4.6

Дата выхода: 31 июля 2017 г. [12] [7] [54]

Аппаратная поддержка: AMD Radeon HD серии 7000 и новее (шейдеры FP64 реализованы путем эмуляции на некоторых графических процессорах TeraScale), Intel Haswell и новее, Nvidia GeForce серии 400 и новее. [65]

Поддержка драйверов:

Альтернативные реализации

Apple отказалась от OpenGL в iOS 12 и macOS 10.14 Mojave в пользу Metal , но он по-прежнему доступен в macOS 13 Ventura (включая кремниевые устройства Apple ). [76] Последняя поддерживаемая версия OpenGL — 4.1 от 2011 года. [77] [78] Собственная библиотека от Molten — авторов MoltenVK — под названием MoltenGL, может транслировать вызовы OpenGL в Metal. [79]

Есть несколько проектов, которые пытаются реализовать OpenGL поверх Vulkan. Серверная часть Vulkan для Google ANGLE достигла соответствия OpenGL ES 3.1 в июле 2020 года. [80] Проект Mesa3D также включает такой драйвер под названием Zink . [81]

В Windows 11 от Microsoft на Arm добавлена ​​поддержка OpenGL 3.3 через GLon12, реализацию OpenGL с открытым исходным кодом поверх DirectX 12 через Mesa Gallium . [82] [83] [84]

Вулкан

Vulkan, ранее называвшийся «Инициативой OpenGL следующего поколения» (glNext), [85] [86] представляет собой попытку унифицировать OpenGL и OpenGL ES в один общий API, который не будет обратно совместим с существующими версиями OpenGL. [87] [88] [89]

Первоначальная версия Vulkan API была выпущена 16 февраля 2016 года.

Смотрите также

Рекомендации

  1. ^ Лекстрайт, Винсент (январь 2010 г.). «Маяк языков программирования, v10.0». Архивировано из оригинала 30 мая 2012 года . Проверено 14 марта 2010 г.
  2. ^ «Продукты: Программное обеспечение: OpenGL: Лицензирование и логотипы» . СГИ. Архивировано из оригинала 1 ноября 2012 года . Проверено 7 ноября 2012 г.
  3. ^ «Графическая система OpenGL: Спецификация» (PDF) . 4.0 (Основной профиль). 11 марта 2010 г.
  4. ^ «SGI – Обзор OpenGL» . Архивировано из оригинала 31 октября 2004 года . Проверено 16 февраля 2007 г.
  5. ^ Педди, Джон (июль 2012 г.). "Кто самый честный из них всех?". Мир компьютерной графики . Проверено 30 мая 2018 г.
  6. ^ «OpenGL ARB передаст контроль над спецификацией OpenGL группе Khronos» . Группа «Хронос» . 31 июля 2006 года . Проверено 18 марта 2021 г.
  7. ^ abc «Хронос выпускает OpenGL 4.6 с поддержкой SPIR-V». The Khronos Group Inc., 31 июля 2017 г. Проверено 31 июля 2017 г.
  8. ^ «Будущее OpenGL (обсуждение на форуме)» . Группа компаний «Хронос» . 2020.
  9. ^ "Архив новостей Хроноса" . Группа компаний «Хронос» . 28 ноября 2022 г.
  10. ^ "Блог Хроноса" . Группа компаний «Хронос» . 28 ноября 2022 г.
  11. ^ «Обзор членства в Khronos и часто задаваемые вопросы» . Хронос.орг . Проверено 7 ноября 2012 г.
  12. ^ abcd «Реестр Khronos OpenGL». Группа компаний «Хронос» . Проверено 31 июля 2017 г.
  13. ^ "NV_half_float". Реестр OpenGL . Группа компаний «Хронос».
  14. ^ «Как создавать расширения API Khronos» . Группа компаний «Хронос» . Проверено 31 июля 2017 г.
  15. ^ «OpenGL — отраслевой фонд высокопроизводительной графики» . Группа «Хронос» . 19 июля 2011 года . Проверено 18 марта 2021 г.
  16. ^ «Список альтернатив GLUT, поддерживаемый» . Группа компаний «Хронос» . Проверено 2 мая 2013 г.
  17. ^ «Связанные наборы инструментов и API» . www.opengl.org . OpenGL . Проверено 8 октября 2014 г.
  18. ^ "IRIS GL, собственность SGI" .
  19. ^ Килгард, Марк (2008). «Предыстория OpenGL: IRIS GL (слайд)». www.slideshare.net .
  20. ^ «Создание OpenGL ARB». Архивировано из оригинала 22 февраля 2007 года . Проверено 16 февраля 2007 г.
  21. ^ «Конец OpenGL++». Группа компаний «Хронос».
  22. ^ «Лучшие разработчики игр призывают Microsoft активно поддерживать OpenGL» . Следующее поколение . № 32. Imagine Media . Август 1997. с. 17.
  23. ^ «Объявление по Фаренгейту». Архивировано из оригинала 27 сентября 2007 года.
  24. ^ "Члены Фаренгейта. 1998" . Компьютерграм Интернэшнл . 1998. Архивировано из оригинала 5 октября 2007 года.
  25. ^ «Конец по Фаренгейту». Регистр .
  26. ^ «OpenGL ARB передает контроль над спецификацией OpenGL Khronos Group» . Пресс-релиз Хроноса. 31 июля 2006 г.
  27. ^ «OpenGL ARB передаст контроль над спецификацией OpenGL группе Khronos» . Доступ к архиву MyLibrary.
  28. Смит, Райан (5 июня 2018 г.). «Apple отказывается от OpenGL во всех ОС; призывает разработчиков использовать Metal». www.anandtech.com . Покупка . Проверено 5 июня 2018 г.
  29. ^ "GLQuake". Квейк вики .
  30. ^ «Лицензирование технологий: id Tech 2» . Архивировано из оригинала 8 ноября 2009 года . Проверено 17 сентября 2008 г.
  31. ^ "Doom Wiki: id Tech 7" . Проверено 26 октября 2021 г.
  32. Доу, Лиам (7 марта 2023 г.). «В Dota 2 удалена поддержка OpenGL, появился новый герой Муэрта, большое обновление выйдет в апреле». Игры в Linux . Проверено 26 марта 2023 г.
  33. ^ «Суперразрешение AMD FidelityFX» . Проверено 17 мая 2022 г.
  34. ^ «Суперразрешение AMD FidelityFX™ (FSR)» .
  35. ^ "НВИДИА ДЛСС" .
  36. ^ «Начало работы с DLSS» . Июнь 2021.
  37. ^ «Реактивный набор Вулкан: размышления о переезде на Вулкан» .
  38. ^ «Магма: Обзор». fuchsia.dev . Проверено 26 марта 2023 г.
  39. ^ Килгард, Марк Дж. (2001). Программирование OpenGL для системы X Window . Графическое программирование (6-е печатное изд.). Бостон, Массачусетс, Мюнхен: Аддисон-Уэсли. п. 6. ISBN 978-0-201-48359-8.
  40. Астл, Дэйв (1 апреля 2003 г.). «Выход за пределы OpenGL 1.1 для Windows». gamedev.net . Проверено 15 ноября 2007 г.
  41. ^ Изорна, Дж. М. (2015). Визуальное моделирование материалов: теория, техника, анализ ситуаций. СКП Грау. Архитектура, урбанизм и строительство (на испанском языке). Политехнический университет Каталонии. п. 191. ИСБН 978-84-9880-564-2. Проверено 21 августа 2019 г.
  42. ^ abc «Графическая система OpenGL: Спецификация» (PDF) . 2.1. 1 декабря 2006 г.
  43. ^ «Точечный примитив».
  44. ^ «Графическая система OpenGL: Спецификация» (PDF) . 3.0. 23 сентября 2008 г.
  45. ^ «Графическая система OpenGL: Спецификация» (PDF) . 3.1. 28 мая 2009 г.
  46. ^ «Графическая система OpenGL: Спецификация» (PDF) . 3.2 (Основной профиль). 7 декабря 2009 г.
  47. ^ «Хронос раскрывает передовое кроссплатформенное графическое ускорение с помощью OpenGL 4.0» . 11 марта 2010 г.
  48. ^ «Хронос стимулирует эволюцию кроссплатформенной 3D-графики с выпуском спецификации OpenGL 4.1» . 26 июля 2010 г.
  49. ^ ab «Khronos расширяет кроссплатформенную 3D-графику выпуском спецификации OpenGL 4.2» . 8 августа 2011 г.
  50. ^ ab «Хронос выпускает спецификацию OpenGL 4.3 со значительными улучшениями» . 6 августа 2012 г.
  51. ^ «Хронос выпускает спецификацию OpenGL 4.3 со значительными улучшениями» . 6 августа 2012 г.
  52. ^ abc «Хронос выпускает спецификацию OpenGL 4.4» . 22 июля 2013 г.
  53. ^ ab «Группа Khronos объявляет о ключевых достижениях в экосистеме OpenGL - пресс-релиз группы Khronos» . The Khronos Group Inc., 10 августа 2014 г. Проверено 17 апреля 2015 г.
  54. ^ аб Кессенич, Джон; Болдуин, Дэйв. «Язык шейдеров OpenGL®, версия 4.60.7». Хронос Групп Инк . Проверено 21 августа 2019 г.
  55. Аби-Чахла, Феди (16 сентября 2008 г.). «OpenGL 3 (3DLabs и эволюция OpenGL)». Аппаратное обеспечение Тома . Проверено 24 октября 2010 г.
  56. ^ «Графическая система OpenGL: Спецификация» (PDF) . 2.0. 22 октября 2004 г.
  57. ^ «OpenGL ARB объявляет об обновлении OpenGL 3.0» . 30 октября 2007 года . Проверено 31 октября 2007 г.
  58. ^ «Выпущен OpenGL 3.0, разработчики в ярости - Slashdot» . Tech.slashdot.org . Проверено 7 ноября 2012 г.
  59. ^ «OpenGL BOF прошел хорошо, вилок не обнаружено» .
  60. ^ «Отраслевой стандарт для высокопроизводительной графики» . OpenGL. 18 августа 2008 года . Проверено 31 июля 2017 г.
  61. ^ «NVIDIA теперь предоставляет раннюю версию драйвера OpenGL 3.0» .
  62. ^ abcd «Драйвер Intel Iris и HD Graphics для 64-разрядной версии Windows 7/8/8.1» . Центр загрузки Intel . Архивировано из оригинала 2 апреля 2015 года.
  63. ^ «Ожидаемый максимальный размер текстуры — программирование графики и графического процессора» . GameDev.net .
  64. ^ «Процессоры Intel Skylake-S и наборы микросхем серии 100, подробно описанные в явной утечке» . Гаджеты NDTV . 17 апреля 2015 г.
  65. ↑ abc Ларабель, Майкл (31 июля 2017 г.). «NVIDIA выпускает драйвер Linux 381.26.11 с поддержкой OpenGL 4.6» . Фороникс .
  66. ^ «Выпущен OpenGL 4.5 — с одной из лучших функций Direct3D». Арс Техника . 11 августа 2014 года . Проверено 17 апреля 2015 г.
  67. ^ «SG4121: Обновление OpenGL для графических процессоров NVIDIA» . Устрим . Архивировано из оригинала 17 мая 2015 года . Проверено 17 апреля 2015 г.
  68. Килгард, Марк (12 августа 2014 г.). «Обновление OpenGL 4.5 для графических процессоров NVIDIA» . Проверено 17 апреля 2015 г.
  69. Ларабель, Майкл (21 августа 2019 г.). «Драйвер Intel OpenGL для Linux теперь поддерживает OpenGL 4.6 для Mesa 19.2». Фороникс .
  70. Ларабель, Майкл (27 ноября 2019 г.). «Драйвер AMD RadeonSI наконец-то поддерживает OpenGL 4.6» . Фороникс .
  71. ^ «Выпущен графический драйвер AMD Adrenalin 18.4.1 (OpenGL 4.6, Vulkan 1.1.70) – Geeks3D» . www.geeks3d.com . Проверено 10 мая 2018 г.
  72. ^ «Примечания к выпуску Radeon™ Software Adrenalin Edition 18.4.1» . support.amd.com . Проверено 10 мая 2018 г.
  73. ^ «Выпущен графический драйвер Intel 25.20.100.6861 (OpenGL 4.6 + Vulkan 1.1.103) | Geeks3D» . 16 мая 2019 г. . Проверено 16 мая 2019 г.
  74. ^ «Драйверы DCH для Windows® 10» . Центр загрузки Intel . Проверено 21 августа 2019 г.
  75. ^ «Выпущен графический драйвер NVIDIA GeForce 397.31 (OpenGL 4.6, Vulkan 1.1, RTX, CUDA 9.2) – Geeks3D» . www.geeks3d.com . 25 апреля 2018 года . Проверено 10 мая 2018 г.
  76. ^ «Документация разработчика Apple». разработчик.apple.com .
  77. Каннингем, Эндрю (7 октября 2019 г.). «macOS 10.15 Catalina: обзор Ars Technica» . Арс Техника .
  78. Аксон, Сэмюэл (6 июня 2018 г.). «Окончание поддержки OpenGL, а также другие обновления, о которых Apple не рассказала на своем выступлении». Арс Техника . Проверено 19 октября 2020 г.
  79. ^ «Vulkan и более быстрый OpenGL ES для iOS и macOS» . Расплавленный . Проверено 19 октября 2020 г.
  80. ^ Авторы проекта ANGLE (14 октября 2020 г.). «google/angle: соответствующая реализация OpenGL ES для Windows, Mac, Linux, iOS и Android». Гитхаб . Проверено 17 декабря 2020 г.
  81. ^ "Цинк". Последняя документация библиотеки 3D-графики Mesa .
  82. ^ «Состояние Windows на Arm64: общий взгляд». Чипсы и сыр . 13 марта 2022 г. Проверено 23 октября 2023 г.
  83. ^ «Представляем OpenCL и OpenGL в DirectX». Сотрудничество | Консультации по открытому исходному коду . Проверено 23 октября 2023 г.
  84. ^ «Глубокое погружение в OpenGL поверх слоев DirectX». Сотрудничество | Консультации по открытому исходному коду . Проверено 23 октября 2023 г.
  85. Дингман, Хайден (3 марта 2015 г.). «Познакомьтесь с Vulkan, мощной игровой технологией, не зависящей от платформы, нацеленной на DirectX 12». Мир ПК . Проверено 3 марта 2015 г.
  86. Брайт, Питер (3 марта 2015 г.). «Хронос представляет Vulkan: OpenGL, созданный для современных систем». Арс Техника . Проверено 3 марта 2015 г.
  87. ^ «Хронос объявляет об инициативе OpenGL следующего поколения» . АнандТех . Проверено 20 августа 2014 г.
  88. ^ «Выпущен OpenGL 4.5, представлен OpenGL следующего поколения: кроссплатформенный убийца Mantle, конкурент DX12» . Проверено 20 августа 2014 г.
  89. ^ «Хронос публикует слайды об OpenGL-Next» . Фороникс . Проверено 22 августа 2014 г.

дальнейшее чтение

Внешние ссылки