Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > DirectX vs. Open GL


Автор: Vit 26.7.2002, 18:57
DirectX versus Open GL
Кто просветит по поводу преимуществ и недостатков каждой системы?

Автор: Baa 26.7.2002, 19:02
Начнем с самого главного (на мой взгляд).
В ОпенГл ОЧЕНЬ неудобная работа с объектами.
Например, чтобы повернуть какой-либо объект, надо создать новую систему координат и вращать систему координать, а не объект.
Вобщем-то в ОпенГл все так - через пятую точку.
Если че еще вспомню, то обязательно напишу.

Автор: Mikel 27.7.2002, 08:05
Мне как-то ближе OpenGL, может потому что нормальная DirectX 3D графика на моем ПК не хочет инициализироваться. :D

Автор: desyatnik 18.8.2002, 17:29
OpenlGL:
а) старше Direct X,
б) намного более логичен, если излечиться (хотя бы временно) от ООП,
в) есть не только на винде.

Автор: Sun 22.8.2002, 02:05
Под Виндой OpenGL все равно взаимодействует с железом через DirectDraw и  Direct3D.
Поэтому DirectX ближе к ситемным вызовам, что позоляет делать более производительные приложения по отношению к OpenGL

Автор: Kesh 2.9.2002, 09:56
Насколько я знаю, OGL подходит больше для инженерного проектирования, а DX предназначен, скажем так, для украшательств... :0|

Автор: desyatnik 12.9.2002, 16:02
OpenGL работает с железом непосредственно. Что он
использует DDraw и D3D - сказки Мелкософта (которому
OpenGL как шило в заднице).

Как показывает пример QIII, производительность зависит
в основном от программиста.

Современные фишки типа Hw T&L, Shaders etc. тоже поддерживаются
(в OpenGL, помимо всего прочего, продуманная система расширений,
поэтому совместимость даже с совсем старыми программами не
теряется).

Вот так... :)

Автор: Guest 1.5.2004, 11:37
smile.gif Господа, с праздником Вас. Поделитесь опытом рисования в OpenGL и его "озвучивания" обычного стрелочного прибора, например вольтметра, спидометра и тому подобное.

Автор: cardinal 1.5.2004, 12:33
Да, с праздником для начала! smile.gif

Когда я был на CeBIT 2004, то наткнулся на один стенд от фирмы, которая в том числе делает модели машин для автомобильной промышленности. Так как мне во-первых интересно было, а во вторых ноги уже болели, я решил с ними побазарить smile.gif.
Так вот сказали мне след.: OpenGL намного круче DirectX. DirectX не имеет большое кол-во, тех функций, которые есть у OpenGL. Вообщем он сказал, что для игрушек - это все без разницы, а вот если профессионально заниматься (до того у них дело доходит, что модели из CAD программ берут), то надо все делать на OpenGL, чтобы не ограничивать себя на будущее.

Все это мной не проверяно, так что может что-то и не так.

Автор: chipset 1.5.2004, 18:51
В одном только у ОГЛа гемморой,в полноэкранном режиме...
А все остальное рулез, мой выбор - ОпенГЛ

Автор: gepard 2.5.2004, 10:50
Я постов не читал, просто напишу что знаю:
OpenGL круче! biggrin.gif
Первое - DX - набор стандартных алгоритмов. Не помню, где-то читал, что они очень не оптимизированны - соосно лаги, а в ОпеГЛ всё своё.
OpenGL - Open Graphics Library. Как следует из название он "открытый". Короче, он мыльтисистемный и мультиплатформенный, а DX только для PC и для Windows.
На сосно мои знания и ограничиваются.

Автор: Новичок 9.10.2004, 13:48
Люди, возникла необходимость написать прогу на GL. Посоветуйте какую-нибудь книгу, чтобы разобраться. В сети есть только Краснов "GL в проектах Delphi" она как, ничего?

Автор: Cheba 10.10.2004, 16:40
Ничего. Присенительно к Delphi - это лучшая книга про OpenGL на русском. Есть кинги намного лучше, но они в основном на С опираются.

Автор: chipset 10.11.2004, 16:59
Если серьёзно заниматься гейм-девелопингом необходимо срочно забыть Delphi и выучить плюс-плюсы..
Добавлено @ 17:04
ИМХО

Автор: Dark Elf 16.5.2005, 11:10
2 Guest - входит в поставку Винды начиная с Win95 OSR2 - opengl32.dll, glu32.dll

Автор: DeeZ 17.5.2005, 22:01
Мона юзать и то и другое - как многие и делают.
Для рендеринга картинки OGL, например, а для I\O, звука, и всяких сетевых примочек - D3D
Если важна "картинка" - OGL, а если требуется больше интерактивности, динамики, работы с различным железом - D3D (лично меня DirectX COM вгоняет в трансово-паническое состояние)

Автор: chipset 17.5.2005, 23:28
Цитата(DeeZ @ 17.5.2005, 12:01)
Мона юзать и то и другое - как многие и делают.
Для рендеринга картинки OGL, например, а для I\O, звука, и всяких сетевых примочек - D3D
Если важна "картинка" - OGL, а если требуется больше интерактивности, динамики, работы с различным железом - D3D (лично меня DirectX COM вгоняет в трансово-паническое состояние)

Так часто делают кстати. Ну а кроссплатформенность?

Автор: DeeZ 18.5.2005, 00:31
Цитата
Ну а кроссплатформенность?

Саш, а она сильно кому нужна, положа руку на печень? 8)
-
Сори за офффтоп

Автор: DeeZ 24.5.2005, 02:04
Цитата

OpenGL работает с железом непосредственно. Что он
использует DDraw и D3D - сказки Мелкософта...

В opengl32.dll есть импорт функции DirectDrawCreate из DDRAW.dll, как это понимать?

Автор: chipset 24.5.2005, 02:53
Цитата(DeeZ @ 17.5.2005, 14:31)
Саш, а она сильно кому нужна, положа руку на печень? 8)

Другой вопрос. Есть задачи, больше из не-игровой части где она желательна или необходима.

Автор: Kagor 24.5.2005, 21:53
smile
Цитата
Люди, возникла необходимость написать прогу на GL. Посоветуйте какую-нибудь книгу, чтобы разобраться.
http://opengl.org.ru/books/open_gl/
http://pmg.org.ru/nehe/index.html
P.S. Но, правда, там не на Delphi...

Цитата(chipset @ 10.11.2004, 17:59)
Если серьёзно заниматься гейм-девелопингом необходимо срочно забыть Delphi и выучить плюс-плюсы..
Полностью согласен. smile

Автор: DeeZ 27.5.2005, 23:09
Млин... начал тут активно учить DirectX9, сижу - весело так по клаве бряцаю, радуюсь - эка конфетка ООП, в сравнении с OpenGL. Потом в инет полез, наткнулся на вот ету ссылочку: http://www.frustum.org/ и сразу у меня все упало 8(
Парень всего на два года меня старше, мне почти земляк (я в Томске учился... пока не бросил...), а таааакие вещи вытворяет под OpenGL. Да еще и под *nix'ами!
А я тут треугольнички вывожу...
Прям дипресняк, ей Богу.

Автор: Alastis 28.5.2005, 08:04
DeeZ
все с чего то начинают... этот парень наверняка тоже с треугольников начинал.. тем более у тебя еще 2 года естьsmile

Автор: Ch0bits 28.5.2005, 08:05
Цитата(DeeZ @ 24.5.2005, 02:04)
В opengl32.dll есть импорт функции DirectDrawCreate из DDRAW.dll, как это понимать?

Это падлянка от мелкомягких, их dll'ка.

Автор: Nemesis 12.6.2005, 19:57
На мой взгляд, OpenGL не уступает Direct`у. Если взять в рассмотрение еще тот факт, что Директ под крылышком у Гейтса, то подумайте насколько силен ОпенГЛ, если он до сих пор существует и будет существовать! Обладая кроссплатформеностью он зацепил еще и U*ix. А о расширениях можно говорить долго. Пока майкр впихнет новые функции в свою очередную версию Директа, ОпенГЛ уже их юзает по полнойsmile и ненужно никого ждатьsmile главное дрова обновить для видюхи. Да, быть может написание полноценных игр затруднено из-за того,что нет работы со звуком, но в скором времени эта проблема разрешится, уже разрешается OpenAL:) Но выбор за каждым и у каждого свой.
Вопрос такой же как и этот: "Что лучше Maya или 3DS Max?".
На мой взгляд сколько людей откликнется на него, столкь мнений и будет. Эти вопросы некорректны. А что лучше, каждый решит для себя сам и не потому,что ему так сказали, а потому что он это ощутил. Каждому нужно свое от этих программ.

Автор: Амортизатор 14.6.2005, 20:14
По моему, при выборе библиотеки надо учитывать не только то, кто к чему привык, что удобнее и тп, а перспективы ее дальнейшего развития. Open GL выдыхается и с этим никто не будет спорить. Для трехмерных приложений кроссплатформенность ни нафиг не нужна - ну подумайте, кто будет играть игры под L-x, что касается практического моделирования, то хотя я и соглашаюсь с тем. что пока возможности OGL здесь повыше, вместе с тем уверен, что это дело временное.

Автор: yaja 14.6.2005, 20:35
Прочитал что тут написали и просто обалдел...
http://steps3d.narod.ru/одного достаточно известного человека написано все по поводу этого вопроса, достаточно немного прокрутить вниз smile smile

Автор: Cheba 14.6.2005, 22:48
Амортизатор, я поигрываю иногда. В TuxRacer и в Shogo. smile

Автор: Yanis 18.6.2005, 17:31
Вообще то в общем виде OpenGL это библиотека с функциями. А DirectX
Цитата
is a Windows technology that enables higher performance in graphics and sound when you’re playing games or watching video on your PC.
Поэтому DirectX реально намного круче, проще и т.д. Но OpenGL круче Direct3D!

Автор: MarS 28.6.2005, 13:12
А все равно ОпенГЛ лучше, я полгода усердно этим занимался на VC++, и мне кажется что это ТАК. Вспомните хотя бы тот факт, что библиотека эта разрабатывалось монстрами: Silicon grafics, MS, HP... их всего было ок. 10 штук, всех не помню, за основу взяли библиотеку IrisGL от Силикон Графикс. Вот.

Автор: empter 28.6.2005, 17:24
Если необходимо работать только в Win системах, то однозначно DirectX, т.к он обьедьиняет в себе более быстрый (под Win OpenGL работает через "Нпосредственный Direct3D") Direct3D, Input, Play и т.д. Если же планируется кроссплатформа - OpenGL рулит. smile

Автор: MikeTselinko 1.8.2005, 16:19
Я бы поставил вопрос так. В каком случае больше шансов найти работу? Когда ты знаешь OpenGL или DirectX ? smile

Автор: Kagor 1.8.2005, 17:56
Цитата(MikeTselinko @ 1.8.2005, 17:19)
Я бы поставил вопрос так. В каком случае больше шансов найти работу? Когда ты знаешь OpenGL или DirectX ? smile

Если ставить вопрос так, то шансов больше если знаешь и то, и то. smile

Автор: chipset 2.8.2005, 03:18
В большинстве случаев необходимости в 3D программировании -- гейм-девелопинге - OpenGL нафиг не нужен, ибо в нём нету ООП а кроссплатформенность компьютерным играм как птице самолет.

Автор: ManiaK 2.8.2005, 08:34
Цитата(chipset @ 2.8.2005, 04:18)
В большинстве случаев необходимости в 3D программировании -- гейм-девелопинге - OpenGL нафиг не нужен

Не нужон, а пользуются. Не логично блин smile

Автор: empter 2.8.2005, 18:04
Цитата(ManiaK @ 2.8.2005, 08:34)
Не нужон, а пользуются. Не логично блин smile

А кто пользуется smile
Дело в том что приемлимая версия DirectX 8.1 вышла сравнительно недавно, а 9.0 вобще свежак smile.
Последние мощные движки:

HL2 - Direct9.0
UnrealEngine3 - Direct9.0
Они только начинают появлятся smile

Doom3 - OpenGl, но это потому, что Кармак начал на OpenGl и ему наверное лень периучиваться.


Цитата(MikeTselinko @ 1.8.2005, 16:19)
Я бы поставил вопрос так. В каком случае больше шансов найти работу? Когда ты знаешь OpenGL или DirectX ? smile


Желательно и то и другое. smile

Автор: Dubinsky 3.8.2005, 11:43
Цитата(empter @ 2.8.2005, 18:04)
А кто пользуется 


Цитата(empter @ 2.8.2005, 18:04)
HL2 - Direct9.0
UnrealEngine3 - Direct9.0
Они только начинают появлятся 

Doom3 - OpenGl, но это потому, что Кармак начал на OpenGl и ему наверное лень периучиваться.


это значит если Халф директ пользует так нормально , а Дум это изврат ?
графика хороша у обоих - вывод : пишите игры обязаны знать оба варианта. пишите для себя - знайте что удобно.

Автор: chipset 3.8.2005, 15:23
Знать два варианта в любом случае полезно.
Но покажите мне хотя бы ещё несколько игр кроме задолбавшей меня Doom3 на OpenGL?

Автор: Dubinsky 3.8.2005, 15:30
X-Plane ! правда графика там ...
но они над этим работают ...

Автор: Dark Elf 3.8.2005, 15:52
chipset ИЛ-2 Штурмовик

Автор: DENNN 3.8.2005, 16:03
Цитата(chipset @ 3.8.2005, 15:23)
Но покажите мне хотя бы ещё несколько игр кроме задолбавшей меня Doom3 на OpenGL?

Задолбал этот подход: "где игры круче, там и технология лучше". Недавно так один человек видеокарты сравнивал, а потом резюмировал: "Я помотрел, у всех игроманов NVIDIA просто "рвет" Wildcat от 3DLabs. Зачем на него деньги тогда тратить? - дрянь какая-то." Я даже объяснять ничего не стал - пусть живет с этим мнением, это его собственная правда.

Автор: Kagor 3.8.2005, 18:26
Цитата(chipset @ 3.8.2005, 16:23)
Но покажите мне хотя бы ещё несколько игр кроме задолбавшей меня Doom3 на OpenGL?
Quake smile

Автор: chipset 4.8.2005, 10:26
Народ, куча игр каждый день клепаеться на DirectX, OGL же сейчас очень и очень непопулярен у серьёзных компаний создающих игры. Я согласен, допустим, что OGL круче и всё такое но обьясните это 90% гейм-девелоперских фирм.

Автор: ManiaK 4.8.2005, 12:26
Цитата(chipset @ 4.8.2005, 11:26)
Я согласен, допустим, что OGL круче и всё такое но обьясните это 90% гейм-девелоперских фирм.

Дык мы не популярность обсуждаем вроде. Мы вообщем. Слепое следование моде - вещь опасная...

Автор: Амортизатор 5.8.2005, 12:01
ManiaK, и тем не менее мода порождает спрос, а спрос сегодня - это эффективность и преимущество завтра. Особенно если речь идет о продуктах m$.

Добавлено @ 12:07
Кстати, никто не знает, на чем склепали Storm2 (Это лучший на сегодня движок для эмуляции волнений на поверхности океана, полная эмуляция шторма до 7 баллов, игра "Корсары" от отечественной "Акеллы")

Автор: Dubinsky 5.8.2005, 12:19
плавно дискуссия о преимуществах и недостатках ОпенЖеЛе или Директа , перешла в обсуждение чья игра лучше , жаль конечно , мне действительно хотелось бы услышать мнения людей , подтверждённые весомыми аргументами.

а насчёт игр : на чём делали Фаллаут ? да и не важно , игра стоящая . Сюжеты игр не на Директе или Опен ЖеЛе пишутся.

Автор: Coriolis 16.9.2005, 10:09
smile
Уррраааа!!!
Фол рулит однозначно!!!
(кста, они не сделали конкретную привязку, т.к. существует версия под дос(не помню как этот двиг называется) и под виндыDX(кажется 4-тый или 5-тый, но могу и ошибаться)
smile

Автор: mr.DUDA 16.9.2005, 22:19
MODERATOR: В религиозные войны, однозначно !

Автор: Maniac 15.5.2006, 03:48
ИМХО.
на самом деле не суть важно по какой дороге пойти, если они обе приводят к цели. Разница может заключаться в том, какая дорога быстрее приведет к месту и какую дорогу оставят в будущем (если не объединят их как писал Кармак в своей речи 96-го года). 

просто мы на распутье и это распутье будет продолжаться пока на рынке не появиться достойная альтернатива Windows. ) 

конечно лучше изучать обе системы, а еще лучше объединить в один гибрид, разработать принципы, создать движок - и дать людям for free для доработки.

Итог: пробовал писать на OGL, хорошо, гладко, спору нет. Сейчас пишу на DirectX, не стоит на месте, развивается относительно предыдущих версий, хорош. и выбор мой зависит только от одного - DX в будущем будет только лучше, это соревнование заставит отточить его до уровня гибкости OGL в плане кода. Тем более, что поддержка ведется на уровне OS, а не со стороны (ценично, но что делать). 

а на счет заявления Кармака - да, все так, но на 96 год)) а это было 10 лет назад!
В статьях говориться, что было соревнование OGL vs DX - той же давности - OGL выиграла. ОК, значит надо провести такое-же соревнование и сейчас (или каждый год) - это даст возможность конкретно заявлять ...то-то лучше чем то-то, причем однозначно!  Дураку понятно, что написанное на компиляторе ранней версии будет давать код хуже по производительности поздней версии, только из-за того, что он не имеет понятия о новых командах процессора (к-рые позволяют коду выполняться быстрее). Не относиться к OGL - т.к. поддержка в основном зависит от ICD драйвера видеокарты.

ЗЫ. Все кто хочет выбрать API для работы, стоит изучить сразу 2, сделать одну и ту же программу и посмотреть что лучше ). 

Автор: alir 15.5.2006, 15:01
Цитата

Все кто хочет выбрать API для работы, стоит изучить сразу 2, сделать одну и ту же программу и посмотреть что лучше ).  

Не слишком удачная затея, даже связи с однообразной структурой создания приложений, ибо 
разные задачи буду решаться по-разному, т.е. какой-то проект получится быстрее разработать на Gl, нежели на DirectX и наоборот. 

Автор: Maniac 18.5.2006, 00:42
alir Согласен

вот статья на тему дискуссии в ней подробно все объясняется

http://gamesanatomy.ru/index.php?name=Pages&op=page&pid=114 

Автор: Амортизатор 18.5.2006, 19:32
Не забывайте. что при появлении новых фич в картах, первыми смогут заценить это огл-щики, в dx это появится тогда, когда MS взбредет в голову выпустить очердной апдейт.  А так -почти для любой серъезный проект поддерживает обе библиотеки, т к у каждого серъезного производителя сто лет назад уже готовы врапперы для каждой системы вывода и на уровне соответсвующего апи никто уже не работает. 

Автор: ToshaCh 24.5.2006, 07:37
Цитата(chipset @  3.8.2005,  15:23 Найти цитируемый пост)
Знать два варианта в любом случае полезно.
Но покажите мне хотя бы ещё несколько игр кроме задолбавшей меня Doom3 на OpenGL?


Ну я в этом вопросе ламер, но на мой взгляд самый лучший движок который на данный момент был сделан это Q3(для своего времени естественно), а он был сделан на OpenGL.

Добавлено @ 07:39 
Doom, кстати, на мой взгляд не уступает Half-Life, по качеству движка, но сама игра..... 

Автор: bsa 29.5.2006, 17:44
Имхо, это пока Windows доминирует дома и под нее пишутся игры, можно продолжать спорить что лучше. А под *nix альтернативы OpenGL, например, нет. Кому нужно ООП, могут использовать надстройки над графическими библиотеками (http://www.ogre3d.org, например) - они позволяют вообще абстрагироваться от конкретной библиотеки, а работать будут даже на MacOS (при перекомпиляции).
На мой взгляд, OpenGL лучше, так как позволяет не привязываться к конкретной платформе. Сегодня для игр лучше Windows, а завтра Linux или MacOS (и еще хлеще - Solaris)... Тот кто сегодня пишет на DirectX будет дольше перестраиваться (читай, больше денег потеряет). А разговоры о том, что OGL умрет, имхо, совершенно беспочвенны - сначала должны умереть все *nix'ы. smile

Кстати, драйвера NVIDIA, ставят свой nvoglnt.dll. А opengl32.dll очень кривая версия библиотеки от MS - ничего не работает. 

Автор: Void 29.5.2006, 17:56
Цитата(bsa @  29.5.2006,  19:44 Найти цитируемый пост)
Кстати, драйвера NVIDIA, ставят свой nvoglnt.dll. А opengl32.dll очень кривая версия библиотеки от MS - ничего не работает.

В поставку виндов входит OpenGL 1.1 с минимальным аппаратным ускорением. При наличии стороннего OpenGL-драйвера opengl32.dll перенаправляет вызовы ему. Функции, появившиеся в OpenGL 1.2 и выше получаем через wglGetProcAddress. 

Автор: $tatic 7.7.2006, 20:20
Я тут немного начал OpenGL изучать. Причем под C#!!!. Для себя выбрал SDL.NET/Tao.GL - проблем вообще нет - создание окна, разрешение экрана, клавиатура, мышь, видео, аудио (даже Ogg Vorbis) берет на себя SDL, а рисует OpenGL. Во-первых удобно (для функций и констант просто добавляется 'Gl.', а SDL.NET - вообще ООП), во-вторых понятно. Да, есть и Managed DX, но GL - это GL! 

Автор: Hidrag 6.10.2006, 13:53
$tatic, Что нужно для работы с OpenGL из C#?
Что откуда скачать, как установить, мануалы?

Автор: $tatic 7.10.2006, 12:12
http://www.taoframework.com/
http://cs-sdl.sourceforge.net/
К проекту необходимо просто подключить эти библиотеки. Из SDL.NET инициализировать окно, из Tao.GL производить прорисовку. На сайте SDL.NET есть туториалы. Есть даже порты уроков NeHe!

Автор: NeoKesha 25.8.2011, 07:40
Цитата

Но покажите мне хотя бы ещё несколько игр кроме задолбавшей меня Doom3 на OpenGL? 

Minecraft на OGL.
Я за Директ, но Опен ничем не хуже.
Сейчас большая часть игр пишится на ДиректХ но нотч на опене написал такую классную игру. За один день когдато ее купили так что он заработал 28 миллионов долларов.
Но я все равно за ДиректХ потому чо он на ВБ .НЕТ идет.)
Что бы не было флуда на счет того что переходи на с++ то:
На платформе .NET с++ и VB уровнялись
И в конце то концов есть человеческий фактор) Можно даже на кубасике написать классную игру и свой примитивный 3Д движок, значимый как изометрия.
Кто на чем программирует тот то и прославляет.
Тоже китаец говорит: мы супер а америка фуфло! 
А америкосы: МЫ лучше вас это вы фуфло!

Автор: esperanto 29.8.2011, 08:56
Думаю будущее за ОпенСЛ.

Автор: A5uKa 1.9.2011, 13:35
OpenGL

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)