Для программирования графической составляющей компьютерных игр уже давно используются специальные интерфейсы, которые также находят применение не только в играх. Самые известные из них это — библиотеки DirectX и OpenGL. В этой статье мы рассмотрим историю развития этих двух соперников.
Начнем с OpenGL.
Интерфейс OpenGL (Open Graphics Library) создан и запущен в 1992 году известными компаниями в сфере разработки программ. Он был представлен как кросс-платформенный интерфейс, не зависящий от аппаратного обеспечения. В базе лежала IRIS GL - библиотека, которую ранее разработали специалисты из Silicon Graphics Inc (SGI).
Но любая программа, а также библиотека не стоит на месте и постоянно развивается, используя новые возможности компьютерной графики и технологические особенности новых видеокарт.
Развитие библиотеки OpenGL происходит за счет специализированной структуры - Architectural Review Board (ARB). Это "Комитет по пересмотру архитектуры". В него включены несколько компаний, которые имеют определенные интересы в процесс развития рассматриваемой библиотеки. Сюда входят такие гиганты как 3D Labs, NVIDIA, ATI, Intel, id Software, SGI, Apple, и Microsoft, который в своих реализациях Windows использует OpenGL. Версия же этого OpenGL сходна с более ранними разработками и не может работать с аппаратным ускорением, но эти возможности появляются благодаря драйверам используемых видеокарт.
OpenGL используется повсюду, начиная с 90-х голов 20 века. Это связано с тем, что данная библиотека была грамотно написана с удачной архитектурой. Эта библиотека ведет себя стабильно при использовании, а также поведение OpenGL легко предсказать. Одним из недостатков является медленное развитие. Это связано с медленной работой ARB, а именно в том, что при изменении определенных стандартов много времени уходит на согласование различных документов.
Особенно это заметно в последнее время, когда дешевые видеокарты стали достаточно профессиональными и их возможности меняются примерно раз в год. А развитие OpenGL отстает от развития технологий видеокарт, поэтому существуют расширения, использующие отдельными разработчиками для возможности использования новых функций видеокарт.
Пришло время вспомнить историю развития DirectX.
К выходу операционной системы Windows 95 все же большая часть видеоигр работала под MS-DOS. Ранние версии Windows не представляли возможностей для разработок игр.
Уровни абстрагирования, обуславливающие универсальность и совместимость, не позволяли быстрый доступ к видеокартам и такая модель не подходила для игр.
В связи с этим приняли решение о создании совершенно новой библиотеки, позволяющей напрямую работу с оборудованием. Это могло увеличить производительность игр, а также следовательно и продажи Windows 95.
Компания Microsoft решила не использовать разработки своего API и взяли за основу решения небольшой фирмы RenderMorphic. Известно, что первоначально данный API был студенческим заданием и не узнал успеха на экзамене. Но все же Microsoft встроили эту библиотеку в Game SDK, считая это отличной возможностью.
Позже эта разработка называлась DirectX 1.0. и не стала популярной. Из-за медленной работы, кучи ошибок и негибкой архитектуры, а также достаточно сложного кода.
Microsoft учитывали методы разработчиков игр и продолжали развивать DirectX. Версия 3.0 была более работоспособной. Потом были разработаны версии 5, 6 и 7. Седьмая версия тоже неплохо работала и ее использование было более удобным. Вскоре вышел DirectX 8, принеся с собой нововведения, а именно шейдеры - мини-программы, занимающиеся расчетом освещения и созданием специальных эффектов. Позже вышел 9-й DirectX со своими наработками. В данный момент существуют 10 и 11 версия. Хотя некоторые считают, что последние версии DirectX являются больше маркетинговым ходом, чем новыми разработками.
Сначала DirectX считался неудачной заменой OpenGL, но позже нововведения сделали DirectX мощной и работоспособной библиотекой. Сейчас большинство считает именно эту библиотеку образцом для программирования графики, также компания Microsoft тесно сотрудничает с разработчиками аппаратного обеспечения и не отстают от них.
Ранее говорилось о DirectX как о графической библиотеке, хотя также в ней есть интерфейсы работы со звуком, мультимедиа и прочими составляющими. Это также превосходит возможности OpenGL, потому что последний работает только с графикой.
В будущем возможно усовершенствование существующих интерфейсов, а возможно и возникновение совершенно новых.
Время покажет.
Добавить комментарий