stringtranslate.com

OpenGL

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

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

Дизайн

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

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

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 в основной профиль. [8]

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

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

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

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

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

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

The OpenGL Architecture Review Board выпустила серию руководств вместе со спецификацией, которые были обновлены для отслеживания изменений в 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 также доступна на официальной веб-странице. [18]

Ассоциированные библиотеки

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

Контекстные и оконные наборы инструментов

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

  • 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 library (GLEE), OpenGL Extension Wrangler Library (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 [21] [22] стал отраслевым стандартом, используемым более широко, чем основанный на открытых стандартах 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 и NeWS от Sun. И библиотеки IRIS GL были непригодны для открытия из-за проблем с лицензированием и патентами [ необходимо дополнительное объяснение ] . Эти факторы требовали от SGI продолжать поддерживать передовые и фирменные программные API Iris Inventor и Iris Performer, пока рыночная поддержка OpenGL не созрела.

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

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

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

В 1996 году Microsoft выпустила Direct3D , который в конечном итоге стал главным конкурентом OpenGL. Более 50 разработчиков игр подписали открытое письмо Microsoft, опубликованное 12 июня 1997 года, призывая компанию активно поддерживать OpenGL. [25] 17 декабря 1997 года [26] Microsoft и SGI инициировали проект Fahrenheit , который был совместным усилием с целью объединения интерфейсов OpenGL и Direct3D (и добавления API графа сцены). В 1998 году к проекту присоединилась Hewlett-Packard. [ 27] Первоначально он показывал некоторые перспективы наведения порядка в мире интерактивных API трехмерной компьютерной графики, но из-за финансовых ограничений в SGI, стратегических причин в Microsoft и общего отсутствия поддержки отрасли он был заброшен в 1999 году. [28]

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

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

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

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

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

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

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

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

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

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

OpenGL2.0

Дата выпуска : 7 сентября 2004 г.

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

Дизайн GLSL был примечателен тем, что делал относительно немного уступок ограничениям доступного тогда оборудования. Это возвращало к более ранней традиции OpenGL, устанавливающей амбициозную, перспективную цель для 3D-ускорителей, а не просто отслеживающей состояние доступного в настоящее время оборудования. Окончательная спецификация OpenGL 2.0 [60] включает поддержку 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. Это позволило бы устаревшим кодовым базам, таким как большинство продуктов CAD , продолжать работать, в то время как другое программное обеспечение могло бы быть написано или перенесено на новый API.

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

Окончательная спецификация оказалась гораздо менее революционной, чем предложение Longs Peak. Вместо того, чтобы удалить весь немедленный режим и фиксированную функциональность (нешейдерный режим), спецификация включила их в качестве устаревших функций. Предложенная объектная модель не была включена, и не было объявлено о планах включить ее в какие-либо будущие пересмотры. В результате API остался в основном тем же, а несколько существующих расширений были повышены до основных функций. Среди некоторых групп разработчиков это решение вызвало некоторый переполох, [62] многие разработчики заявили, что перейдут на DirectX в знак протеста. Большинство жалоб вращалось вокруг отсутствия коммуникации Khronos с сообществом разработчиков и отказа от множества функций, которые были восприняты многими благосклонно. Другие разочарования включали требование к оборудованию уровня DirectX 10 для использования OpenGL 3.0 и отсутствие геометрических шейдеров и рендеринга экземпляров в качестве основных функций.

Другие источники сообщили, что реакция сообщества была не столь серьезной, как изначально предполагалось, [63] и многие поставщики выразили поддержку обновлению. [64] [65]

OpenGL3.0

Дата выпуска : 11 августа 2008 г.

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

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

OpenGL3.1

Дата выпуска : 24 марта 2009 г.

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

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

OpenGL3.2

Дата выпуска : 3 августа 2009 г.

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

OpenGL3.3

Дата релиза: 11 марта 2010 г.

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

OpenGL4.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 и новее. [66]

OpenGL4.1

Дата выпуска : 26 июля 2010 г.

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

OpenGL4.2

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

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

OpenGL4.3

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

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

OpenGL4.4

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

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

OpenGL4.5

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

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

OpenGL4.6

Дата выхода: 31 июля 2017 г. [15] [8] [58]

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

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

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

Apple отказалась от OpenGL в iOS 12 и macOS 10.14 Mojave в пользу Metal , но он по-прежнему доступен с macOS 14 Sonoma (в том числе на устройствах Apple Silicon ). [80] Последняя поддерживаемая версия OpenGL — 4.1 от 2011 года. [81] [82] Собственная библиотека от Molten — авторов MoltenVK — под названием MoltenGL может транслировать вызовы OpenGL в Metal. [83]

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

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

Вулкан

Vulkan, ранее называвшийся «Next Generation OpenGL Initiative» (glNext), [89] [90] представляет собой попытку полностью перепроектировать OpenGL и OpenGL ES в один общий API, который не будет обратно совместим с существующими версиями OpenGL. [91] [92] [93]

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

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

Ссылки

  1. ^ «Khronos выпускает OpenGL 4.6 с поддержкой SPIR-V».
  2. ^ Lextrait, Vincent (январь 2010 г.). "The Programming Languages ​​Beacon, v10.0". Архивировано из оригинала 30 мая 2012 г. Получено 14 марта 2010 г.
  3. ^ "Продукты: Программное обеспечение: OpenGL: Лицензирование и логотипы". SGI. Архивировано из оригинала 1 ноября 2012 г. Получено 7 ноября 2012 г.
  4. ^ "Графическая система OpenGL: Спецификация" (PDF) . 4.0 (Core Profile). 11 марта 2010 г.
  5. ^ "SGI – OpenGL Overview". Архивировано из оригинала 31 октября 2004 г. Получено 16 февраля 2007 г.
  6. ^ Педди, Джон (июль 2012 г.). «Кто прекраснее всех?». Computer Graphics World . Получено 30 мая 2018 г.
  7. ^ "OpenGL ARB передаст контроль над спецификацией OpenGL группе Khronos". Группа Khronos . 31 июля 2006 г. Получено 18 марта 2021 г.
  8. ^ abc "Khronos выпускает OpenGL 4.6 с поддержкой SPIR-V". Khronos Group Inc. 31 июля 2017 г. Получено 31 июля 2017 г.
  9. ^ "Будущее OpenGL (обсуждение на форуме)". Khronos Group . 2020.
  10. ^ "Архив новостей Khronos". Группа Khronos . 28 ноября 2022 г.
  11. ^ "Блог Khronos". Группа Khronos . 28 ноября 2022 г.
  12. ^ "GLSL_NV_ray_tracing".
  13. ^ "GL_NV_mesh_shader".
  14. ^ "Обзор и часто задаваемые вопросы о членстве в Khronos". Khronos.org . Получено 7 ноября 2012 г.
  15. ^ abcd "Khronos OpenGL Registry". Khronos Group . Получено 31 июля 2017 г.
  16. ^ "NV_half_float". Реестр OpenGL . Группа Khronos.
  17. ^ "Как создать расширения Khronos API". Khronos Group . Получено 31 июля 2017 г.
  18. ^ "OpenGL - отраслевая основа для высокопроизводительной графики". Khronos Group . 19 июля 2011 г. Получено 18 марта 2021 г.
  19. ^ "Список альтернатив GLUT, поддерживаемый". Khronos Group . Получено 2 мая 2013 г.
  20. ^ "Связанные наборы инструментов и API". www.opengl.org . OpenGL . Получено 8 октября 2014 г. .
  21. ^ «IRIS GL, собственность SGI».
  22. ^ Килгард, Марк (2008). «Предыстория OpenGL: IRIS GL (слайд)». www.slideshare.net .
  23. ^ "Создание OpenGL ARB". Архивировано из оригинала 22 февраля 2007 г. Получено 16 февраля 2007 г.
  24. ^ "Конец OpenGL++". Группа Khronos.
  25. ^ "Ведущие разработчики игр призывают Microsoft активно поддерживать OpenGL". Next Generation . № 32. Imagine Media . Август 1997. стр. 17.
  26. ^ "Объявление Фаренгейта". Архивировано из оригинала 27 сентября 2007 года.
  27. ^ "Участники Фаренгейта. 1998". Computergram International . 1998. Архивировано из оригинала 5 октября 2007 года.
  28. ^ "Конец Фаренгейта". The Register .
  29. ^ "OpenGL ARB передаст контроль над спецификацией OpenGL Khronos Group". Пресс-релиз Khronos. 31 июля 2006 г.
  30. ^ «OpenGL ARB передаст контроль над спецификацией OpenGL группе Khronos». Архив AccessMyLibrary.
  31. ^ Смит, Райан (5 июня 2018 г.). «Apple Deprecates OpenGL Across All OSes; Urges Developers to use Metal». www.anandtech.com . Покупка . Получено 5 июня 2018 г. .
  32. ^ "GLQuake". Quake Wiki .
  33. ^ "Лицензирование технологий: id Tech 2". Архивировано из оригинала 8 ноября 2009 г. Получено 17 сентября 2008 г.
  34. ^ "Doom Wiki: id Tech 7" . Получено 26 октября 2021 г. .
  35. Доу, Лиам (7 марта 2023 г.). «Dota 2 удаляет поддержку OpenGL, появился новый герой Муэрта, большое обновление выйдет в апреле». GamingOnLinux . Получено 26 марта 2023 г.
  36. ^ "AMD FidelityFX Super Resolution" . Получено 17 мая 2022 г. .
  37. ^ "AMD FidelityFX Super Resolution (FSR)".
  38. ^ "NVIDIA DLSS".
  39. ^ «Начало работы с DLSS». Июнь 2021 г.
  40. ^ «Jet Set Vulkan: размышления о переходе на Vulkan».
  41. ^ "Magma: Overview". fuchsia.dev . Получено 26 марта 2023 г. .
  42. ^ Килгард, Марк Дж. (2001). Программирование OpenGL для X Window System . Графическое программирование (6-е печатное издание). Бостон, Массачусетс. Мюнхен: Addison-Wesley. стр. 6. ISBN 978-0-201-48359-8.
  43. ^ "Графическая система OpenGL: Спецификация" (PDF) . 1.1. 4 марта 1997 г.
  44. Astle, Dave (1 апреля 2003 г.). «Moving Beyond OpenGL 1.1 for Windows». gamedev.net . Получено 15 ноября 2007 г.
  45. ^ Изорна, Дж. М. (2015). Визуальное моделирование материалов: теория, техника, анализ ситуаций. СКП Грау. Архитектура, урбанизм и строительство (на испанском языке). Политехнический университет Каталонии. п. 191. ИСБН 978-84-9880-564-2. Получено 21 августа 2019 г. .
  46. ^ abc "Графическая система OpenGL: Спецификация" (PDF) . 2.1. 1 декабря 2006 г.
  47. ^ «Точка примитива».
  48. ^ "Графическая система OpenGL: Спецификация" (PDF) . 3.0. 23 сентября 2008 г.
  49. ^ "Графическая система OpenGL: Спецификация" (PDF) . 3.1. 28 мая 2009 г.
  50. ^ "Графическая система OpenGL: Спецификация" (PDF) . 3.2 (Core Profile). 7 декабря 2009 г.
  51. ^ "Khronos представляет передовые возможности кроссплатформенного ускорения графики с OpenGL 4.0". 11 марта 2010 г.
  52. ^ «Khronos стимулирует развитие кроссплатформенной 3D-графики с выпуском спецификации OpenGL 4.1». 26 июля 2010 г.
  53. ^ ab "Khronos расширяет возможности кроссплатформенной 3D-графики с выпуском спецификации OpenGL 4.2". 8 августа 2011 г.
  54. ^ ab "Khronos выпускает спецификацию OpenGL 4.3 с существенными улучшениями". 6 августа 2012 г.
  55. ^ "Khronos выпускает спецификацию OpenGL 4.3 с существенными улучшениями". 6 августа 2012 г.
  56. ^ abc «Хронос выпускает спецификацию OpenGL 4.4» . 22 июля 2013 г.
  57. ^ ab "Khronos Group объявляет о ключевых достижениях в экосистеме OpenGL – пресс-релиз Khronos Group". Khronos Group Inc. 10 августа 2014 г. Получено 17 апреля 2015 г.
  58. ^ ab Кессенич, Джон; Болдуин, Дэйв. «Язык шейдеров OpenGL, версия 4.60.7». The Khronos Group Inc. Получено 21 августа 2019 г.
  59. ^ Abi-Chahla, Fedy (16 сентября 2008 г.). "OpenGL 3 (3DLabs и эволюция OpenGL)". Tom's Hardware . Получено 24 октября 2010 г.
  60. ^ "Графическая система OpenGL: Спецификация" (PDF) . 2.0. 22 октября 2004 г.
  61. ^ "OpenGL ARB объявляет об обновлении OpenGL 3.0". 30 октября 2007 г. Получено 31 октября 2007 г.
  62. ^ "OpenGL 3.0 выпущен, разработчики в ярости – Slashdot". Tech.slashdot.org . Получено 7 ноября 2012 г. .
  63. ^ «OpenGL BOF прошел успешно, никаких отклонений не наблюдалось».
  64. ^ "Промышленный стандарт для высокопроизводительной графики". OpenGL. 18 августа 2008 г. Получено 31 июля 2017 г.
  65. ^ «NVIDIA теперь предоставляет ранний драйвер OpenGL 3.0».
  66. ^ abcd "Intel Iris and HD Graphics Driver for Windows 7/8/8.1 64bit". Intel Download Center . Архивировано из оригинала 2 апреля 2015 г.
  67. ^ "Ожидаемый максимальный размер текстуры - Графика и программирование GPU". GameDev.net .
  68. ^ "Подробности о процессорах Intel Skylake-S и чипсетах серии 100 раскрыты в очевидной утечке". NDTV Gadgets . 17 апреля 2015 г.
  69. ^ abc Ларабель, Майкл (31 июля 2017 г.). «NVIDIA выпускает драйвер Linux 381.26.11 с поддержкой OpenGL 4.6». Phoronix .
  70. ^ «OpenGL 4.5 выпущен — с одной из лучших функций Direct3D». Ars Technica . 11 августа 2014 г. Получено 17 апреля 2015 г.
  71. ^ "SG4121: OpenGL Update для графических процессоров NVIDIA". Ustream . Архивировано из оригинала 17 мая 2015 г. Получено 17 апреля 2015 г.
  72. ^ Килгард, Марк (12 августа 2014 г.). "Обновление OpenGL 4.5 для графических процессоров NVIDIA" . Получено 17 апреля 2015 г.
  73. ^ Ларабель, Майкл (21 августа 2019 г.). «Драйвер OpenGL Linux от Intel теперь поддерживает OpenGL 4.6 для Mesa 19.2». Phoronix .
  74. ^ Ларабель, Майкл (27 ноября 2019 г.). «Драйвер AMD RadeonSI наконец-то поддерживает OpenGL 4.6». Phoronix .
  75. ^ "AMD Adrenalin 18.4.1 Graphics Driver Released (OpenGL 4.6, Vulkan 1.1.70) – Geeks3D". www.geeks3d.com . Получено 10 мая 2018 г. .
  76. ^ "Radeon Software Adrenalin Edition 18.4.1 Release Notes". support.amd.com . Получено 10 мая 2018 г. .
  77. ^ "Intel Graphics Driver 25.20.100.6861 Released (OpenGL 4.6 + Vulkan 1.1.103) | Geeks3D". 16 мая 2019 г. Получено 16 мая 2019 г.
  78. ^ "Windows 10 DCH Drivers". Intel DownloadCenter . Получено 21 августа 2019 г.
  79. ^ "Выпущен графический драйвер NVIDIA GeForce 397.31 (OpenGL 4.6, Vulkan 1.1, RTX, CUDA 9.2) – Geeks3D". www.geeks3d.com . 25 апреля 2018 г. . Получено 10 мая 2018 г. .
  80. ^ «Документация для разработчиков Apple». developer.apple.com .
  81. ^ Каннингем, Эндрю (7 октября 2019 г.). "macOS 10.15 Catalina: обзор Ars Technica". Ars Technica .
  82. ^ Axon, Samuel (6 июня 2018 г.). «Конец поддержки OpenGL, а также другие обновления, которыми Apple не поделилась на презентации». Ars Technica . Получено 19 октября 2020 г.
  83. ^ "Vulkan и более быстрый OpenGL ES на iOS и macOS". Molten . Получено 19 октября 2020 г. .
  84. ^ Авторы проекта ANGLE (14 октября 2020 г.). "google/angle: совместимая реализация OpenGL ES для Windows, Mac, Linux, iOS и Android". GitHub . Получено 17 декабря 2020 г.
  85. ^ "Zink". Последняя документация библиотеки 3D-графики Mesa .
  86. ^ «Состояние Windows на Arm64: перспектива высокого уровня». Chips and Cheese . 13 марта 2022 г. Получено 23 октября 2023 г.
  87. ^ "Введение в OpenCL и OpenGL в DirectX". Collabora | Open Source Consulting . Получено 23 октября 2023 г.
  88. ^ "Глубокое погружение в OpenGL через слои DirectX". Collabora | Open Source Consulting . Получено 23 октября 2023 г.
  89. ^ Дингман, Хейден (3 марта 2015 г.). «Встречайте Vulkan — мощную, независимую от платформы игровую технологию, нацеленную на DirectX 12». PC World . Получено 3 марта 2015 г.
  90. Брайт, Питер (3 марта 2015 г.). «Khronos представляет Vulkan: OpenGL, созданный для современных систем». Ars Technica . Получено 3 марта 2015 г.
  91. ^ "Khronos объявляет о следующем поколении инициативы OpenGL". AnandTech . Получено 20 августа 2014 г. .
  92. ^ "OpenGL 4.5 выпущен, представлено следующее поколение OpenGL: кроссплатформенный убийца Mantle, конкурент DX12" . Получено 20 августа 2014 г.
  93. ^ "Khronos публикует слайды об OpenGL-Next". Phoronix . Получено 22 августа 2014 г. .

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

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