Главная | Архив | Рецензии | Регистрация | Войти
Меню
Категории
ИГРОВЫЕ НОВОСТИ [585]
ЖЕЛЕЗНЫЕ НОВОСТИ [41]
Мини-чат
Главная » 2008 » Ноябрь » 5 » OpenGL 3 против DirectX 11: война закончена
15:25
OpenGL 3 против DirectX 11: война закончена

Введение
Учитывая сегодняшнее доминирование DirectX, мы невольно забываем, что 10 лет назад шла жёсткая война между Microsoft и Silicon Graphics в области 3D API. Две компании пытались завоевать доверие разработчиков, Microsoft использовала свою мощную финансовую подпитку, а SGI опиралась на опыт и репутацию в области 3D реального времени. В этой современной битве "Давид против Голиафа", малыш получил на свою сторону одного из самых известных игровых разработчиков - Джона Кармака (John Carmack). Частично это произошло из-за успеха движка Quake; надёжная поддержка OpenGL стала важным фактором, чтобы заставить производителей GPU выпускать полный комплект драйверов. Фактически, это дало 3dfx одно из ранних преимуществ и отбросило ATI в аутсайдеры, пока компания решала проблемы с поддержкой OpenGL. 

 

Между тем Microsoft создавала свой API "с нуля", развитие было постепенным. Несколько лет возможности Direct3D были далеки до желаемого уровня, многие программисты находили API более запутанным и непонятным, чем OpenGL. Но никто не может обвинить Microsoft в том, что эта компания легко сдаётся. С каждой новой версией Direct3D, API постепенно догонял OpenGL. Инженеры в Редмонде работали, не покладая рук, чтобы обеспечить производительность до уровня конкурирующего API. 

 

Поворотный момент настал с выпуском DirectX 8, который появился в 2001 году. Впервые Microsoft API предоставил больше возможностей, нежели просто копировал API SGI. Были введены собственные инновации, подобно поддержке вершинных и пиксельных шейдеров. SGI, чей главный источник прибыли заключается в продаже дорогих рабочих станций 3D, оказалась в неудачном положении, поскольку компания не смогла предсказать взрывной рост видеокарт для геймеров, который позволил ATI и nVidia проникнуть и на профессиональный рынок с настольно низкими ценами (из-за экономии масштаба), что SGI просто не могла конкурировать. Разработка OpenGL была также осложнена горячими спорами между сторонниками API. Поскольку ARB (группа, отвечающая за принятие новых версий API) включала много разных и часто конкурирующих компаний, было сложно прийти к соглашению по поводу функций, которые нужно добавить к API. Вместо этого каждая компания защищала собственные интересы. Напротив, Microsoft тесно работала с ATI и nVidia, используя их вес для принятия решений, если возникали какие-то противоречия. 

 

С выпуском DirectX 9 Microsoft удалось одержать решающую победу и впечатлить разработчиков. Только Джон Кармак и те разработчики, которым была важна универсальность, остались привержены OpenGL. Но их авторитет пошатнулся. Впрочем, не будем забывать, что фортуна может и отворачиваться. Так, в конце концов, случилось с web-браузерами. Пусть даже компания преодолела трудный путь, заняв, фактически, монопольное положение, почивать на лаврах не стоит, поскольку конкуренты могут буквально возникнуть из ниоткуда. И когда группа Khronos взялась за разработку OpenGL два года назад, у многих затеплилась надежда, и к нынешней конференции SIGGRAPH был проявлен немалый интерес. 



 

 

В августе Khronos анонсировала OpenGL 3, серьёзное обновление API, которое призвано догнать Microsoft, а программный гигант, в свою очередь, запланировал DirectX 11 API следующего поколения. Но всё получилось несколько иначе. 

OpenGL 3 (3DLabs и эволюция OpenGL)

Чтобы полностью понять противоречия, окружающие объявление OpenGL 3, нам нужно вернуться на несколько лет назад, в 2002 год. Как мы уже сказали выше, примерно в то же время OpenGL стал терять почву под ногами. До того момента DirectX просто копировал возможности OpenGL. На этот же раз Microsoft удалось обогнать API SGI. С выпуском DirectX 9, Microsoft добавила поддержку высокоуровневого языка шейдеров HLSL, а у OpenGL не было ничего сравнимого. Следует напомнить, что корни OpenGL лежат в IRIS GL, API, которое было изначально создано SGI для поддержки всех функций "железа" компании. Долгое время ATI и nVidia просто следовали модели рендеринга SGI, то есть OpenGL очень даже хорошо подходил видеокартам производителей с самого их рождения. Но с появлением шейдеров новые GPU отклонились от традиционного конвейера рендеринга. 



В то время одна компания осознавала важность быстрого эволюционного развития OpenGL, если это API надеется работать на современных GPU: мы имеем в виду 3DLabs. Это неудивительно, поскольку 3DLabs забросила игровые карты после неудачи Permedia 2, сконцентрировавшись на профессиональном рынке, где OpenGL является стандартом. 3DLabs представила план из нескольких пунктов, который позволял OpenGL перейти в новую эру. Первый пункт: добавление высокоуровневого языка шейдеров GLSL. Затем планировался полный пересмотр API. Многие функции API уже потеряли смысл на современных 3D-видеокартах, но из-за обратной совместимости они требовали разработчиков GPU поддерживать их, по крайней мере, на программном уровне. Это не только приводило к тому, что писать драйверы становилось сложнее, а также повышало вероятность возникновения ошибок, но и наследственные функции делали API довольно запутанным для программистов-новичков. 

Поэтому 3DLabs хотела предложить набор функций, который гарантирует эффективное выполнение на GPU, а также устранит устаревшие или избыточные опции. Этот набор функций был назван OpenGL 2.0 Pure и предназначался для разработчиков новых приложений. Для обратной совместимости к Open GL 2.0 был добавлен полный набор расширений OpenGL 1.x. 

 

К сожалению, после бесконечных дискуссий в рамках ARB, этот план был отклонён. И когда OpenGL 2.0 стал, наконец, доступен, всё что в нём было сделано - всего лишь добавлена поддержка GLSL в API. Все другие предложения 3DLabs оказались в мусорной корзине, в результате OpenGL продолжал отставать от Microsoft API.


Просмотров: 891 | Добавил: ПАТРИАРХ | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Профиль
Пожалуйста, зарегистрируйтесь или войдите в свой аккаунт.
  • Войти
  • Календарь
    «  Ноябрь 2008  »
    Пн Вт Ср Чт Пт Сб Вс
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    Поиск
    Архив записей
    Наш опрос
    Сколько вам лет?
    Всего ответов: 906
    Статистика

    Онлайн всего: 2
    Гостей: 2
    Пользователей: 0