OpenGL — то, что заставит забыть о DirectX

OpenGL — то, что заставит забыть о DirectX Когда мы иной раз говорим другим разработчикам игр, что в нашей игре Overgrowth мы использовали OpenGL, нам недоуменно возражают: зачем, разве будущее не за DirectX? Когда мы говорим представителям видеокарт, что используем OpenGL, температура в помещении опускается на 10 градусов.
Это нас озадачивает. Среди веб-разработчиков считается хорошим тоном ругать стандартные технологии, такие как Silverlight, Flash или ActiveX, зато всячески приветствуется кросс-платформенная разработка. Ни один уважающий себя спец не испытывает восторга от работы с закрытыми стандартами типа документов Word или серверов Exchange. И что же произошло с этим миром, что инженеры вдруг принялись не только рукоплескать проприетарному API Microsoft, но ещё и активно ругать его открытого конкурента? Прежде чем мы объясним, почему мы за OpenGL, немного истории. Что такое OpenGL ?[/left] OpenGL — то, что заставит забыть о DirectX В 1982 году Silicon Graphics начала продажи высокопроизводительных графических терминалов на основе проприетарного API под названием Iris GL (GL — graphics library, графическая библиотека). Через несколько лет Iris GL превратился в монстра, которого стало очень сложно поддерживать. Тогда Silicon Graphics пошла на радикальный шаг — полностью переработала Iris GL и создала на его основе открытый стандарт. Теперь Открытую графическую библиотеку (OpenGL) могли использовать конкуренты, но при этом они должны были её поддерживать и обновлять. Сегодня поддержкой OpenGL занимается Khronos Group — некоммерческая организация, в которую входят представители самых разных компаний, объединённых общим интересом: иметь высококачественные медийные API. Непосредственной поддержкой занимается Наблюдательная комиссия по архитектуре OpenGL. OpenGL поддерживают все игровые платформы, включая Mac, Windows, Linux, PS3 (через GCM), Wii, iPhone, PSP и DS. То есть все платформы, кроме Xbox. И это плавно приводит нас к следующей теме: Что такое DirectX? OpenGL — то, что заставит забыть о DirectX После MS-DOS в Microsoft осознали, что при выборе операционной системы пользователь не в последнюю очередь принимает во внимание игры. Тогда в 1995 году Microsoft создала проприетарный набор библиотек с целью поощрить выход эксклюзивных игр для новой ОС Windows 95. Среди этих библиотек были Direct3D, DirectInput и DirectSound, а весь набор в совокупности получил название DirectX. Когда в 2001 году Microsoft сама вошла в игровой рынок, появилась консоль DirectX Box, она же Xbox. Xbox стала рекордсменом по убыткам, потеряв свыше $4 млрд. Целью проекта было заложить основы для доминирования на игровом рынке, которое предполагалось осуществить только в следующем поколении. Если судить по сегодняшнему игровому рынку, эта стратегия себя оправдала. Большинство главных игр для PC используют DirectX и работают на Windows и Xbox 360. За редкими исключениями они не работают на конкурирующих платформах, таких как PlayStation, Mac OS или Wii. Так Microsoft теряет довольно серьёзные рынки, а мы ставим важный вопрос: Почему все используют DirectX? Все используют DirectX потому, что выбор API при разработке игры обладает эффектом обратной связи — своего рода замкнутый круг. Начиная с 2005 года популярность DirectX постоянно растёт: чем больше разработчиков её использует, тем лучше её поддерживают поставщики видеокарт, тем лучше программисты умеют с ней работать и опять-таки тем популярнее она становится — круг замыкается. Рынок начал смещаться в сторону DirectX под воздействием двух факторов: агрессивная реклама DirectX при запуске Xbox 360 и Windows Vista, которая заставила многих усомниться в будущем OpenGL, и оголтелое преувеличение достоинств DirectX. Эти факторы были усилены описанным эффектом обратной связи, и в результате OpenGL почти полностью исчезла из главных игровых новинок. Факт и в том, что в DirectX разбирается больше программистов графики, чем в OpenGL; следовательно, создать игру под DirectX дешевле, потому что для этого требуется меньше затрат на обучение. И это ещё один порочный круг: чем больше игр использует DirectX, тем больше программистов должны её изучить. Чем больше программистов изучают DirectX, тем дешевле DirectX обходится игровым проектам в сравнении с OpenGL. OpenGL — то, что заставит забыть о DirectX 3. Лживые рекламные кампании OpenGL — то, что заставит забыть о DirectX Выпуск Windows Vista и Windows 7 сопровождался агрессивной рекламой DirectX: Microsoft показывала эффектные картинки «до» и «после» применения различных версий DirectX. Сегодня многие игроки искренне верят, что переход от DirectX 9 к DirectX 10 волшебным образом улучшает яркость картинки, тогда как раньше она была убого затемнённой, а уровень реализма сразу же становится как в Crysis. Игровые журналисты уже доказали, что в том же Crysis на DX9 и DX10 нет никакой разницы, а пресловутые эксклюзивные для DX10 функции работают и под DX9 при соответствующих настройках в конфигурационном файле. Однако рекламная кампания снова сделала своё дело: многие игроки поверили, что установка DX10 — единственный способ получить графику по последней моде. Далеко не все игры поддерживают этот маркетинговый фарс Microsoft. Многие настоящие профессионалы графики, такие как Джон Кармак (John Carmack), относятся к DX10 скептически. Он однажды сказал: «Лично я не стал бы сейчас переходить на что-то вроде DX10. Я бы подождал, когда всё немного утрясётся и для этого появится действительно объективная необходимость». Так почему же мы используем OpenGL? Учитывая всё вышесказанное: слабую поддержку производителей, отсутствие в играх, нападения со стороны Microsoft, спорные рыночные перспективы, – почему мы по-прежнему её используем? Не выгоднее ли отказаться от OpenGL и перейти к DirectX, как все остальные? Нет, потому что на самом деле OpenGL мощнее DirectX, поддерживает больше платформ и крайне важна для игровой индустрии. 1. OpenGL мощнее DirectX OpenGL — то, что заставит забыть о DirectX [left]Общеизвестно, что вызовы отрисовки в OpenGL быстрее, чем в DirectX. Верить нам на слово необязательно: на этот счёт существуют официальные презентации NVIDIA. Благодаря расширениям поставщиков новые функции видеопроцессоров на OpenGL начинают поддерживаться раньше. OpenGL сразу даёт прямой доступ ко всем новым графическим решениям на всех платформах, тогда как DirectX лишь предоставляет выборочные снимки на новых версиях Windows. Та же мозаичная технология (tesselation), которую Microsoft активно продвигает в DirectX 11, уже три года существует для OpenGL в качестве расширения. Я не знаю, какие новые технологии появятся в ближайшие годы, но я точно знаю, что первыми они появятся в OpenGL. Microsoft хорошо поработала над DirectX 10 и 11, и теперь они почти так же быстры и функциональны, как и OpenGL. Однако остаётся одна большая проблема: они не работают в Windows XP! У половины игроков PC по-прежнему стоит XP, и для них варианта DirectX 10 и 11 просто не существует. Поэтому, если вы действительно хотите добиться наилучших результатов и донести их до максимально возможного числа игроков, вариантов помимо OpenGL просто нет. Cможет ли OpenGL вернуть утраченные позиции? В 1997 году была очень похожая ситуация. Microsoft начала агрессивную рекламную кампанию в пользу Direct3D, и однажды утром все проснулись и узнали, что она и быстрее, и лучше, чем OpenGL. Ситуация стала меняться после того, как Крис Хэкер (Chris Hecker) опубликовал открытое письмо против DirectX. Вскоре после этого Джон Кармак опубликовал свою знаменитую оду OpenGL, которую тут же подкрепил делом: перевёл все игры Id Software на OpenGL. Так он раз и навсегда доказал, что DirectX совершенно необязательна для трёхмерных игр высшей категории. Однако за последние несколько лет этот урок оказался подзабыт. Большинство игровых разработчиков либо поддались чарам маркетологов Microsoft, либо утонули в порочных кругах рыночной конъюнктуры. Настало время отбросить пустые рекламации и модные тренды и посмотреть в глаза правде. Если вы пишете под DirectX, вам приходится либо брать слабую и раздутую DX9, либо жертвовать значительной частью пользовательской базы с DX10 и 11. С другой стороны, если вы пишете под OpenGL, вы получаете более быструю и мощную графику, чем в DirectX 11, причём на всех версиях Windows, Mac и Linux, а также PS3, Wii, PSP, DS и iPhone. Кроме того, вы получаете всё это в рамках динамично развивающегося стандарта WebGL, который вполне может стать базовым для браузерных игр следующего поколения. Если вы — разработчик игр, я прошу вас провести исследование, сравнить цифры и решить для себя, лучше OpenGL или нет. Некоторые программисты привержены стилю DirectX 11, но вы в любом случае перенесёте низкоуровневые API на уровень абстракции, поэтому этот фактор не может быть решающим. Если что-то в OpenGL вам не нравится, просто попросите наблюдательную комиссию это поменять — она для того и существует! Если вы играете в игры на Windows XP, Mac или Linux, вы должны понять, что DirectX существует только для того, чтобы закрыть вам доступ к новым играм. И у вас есть только один способ повлиять на ситуацию — начать поддерживать игры, использующие OpenGL.
  • +8
  • 27 апреля 2010, 09:30
  • NDW

Комментарии (5)

RSSсвернуть /развернуть
+
0
так-то дело говорят
avatar

CapJS

  • 27 апреля 2010, 16:44
+
0
вот это действительно интересно)\nнадо прочитать по подробнее моно полисты конечным пользователям ни разу добра не делали, вспомнить хотя -бы висту)
avatar

Alaus

  • 27 апреля 2010, 18:30
+
0
я за
avatar

Bistie

  • 29 апреля 2010, 03:23
+
0
Кстати да! На некоторых играх я раньше (когда ещё OpenGL чаще использовали) ощущал то, что при DirectX ФПС в игре падало весьма заметно для моего глаза, хотя блджад раньше моник у меня был ЭЛТ, а OpenGL по каким-то причинам заставляла игры выбирать минимальную частоту для разрешения в итоге я физически не мог сидеть и играть под OpenGL на 60 Гц и приходилося переходить на DirectX. Вроде бы я чаще замечал это на играх valve (в КС если не ошибаюсь было тоже так), хотя уже не помню точно.
avatar

SM0KE

  • 29 апреля 2010, 08:41
+
0
К сожалению в настоящее время OGL из лидера превратился в догоняющего.\nМелкософт со своими возможностями обогнал OGL на пару поколений своим Direct3D 11.\nСтстья www.thg.ru/graphic/open_gl_3_directx_11/onepage.html
avatar

ighor111

  • 10 августа 2010, 11:16

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Валидный HTMLВалидный CSSRambler's Top100