Open GL и Direct 3D

Решение вопросов, связанных с прикладными программами, операционными системами и прочим ПО.

Модераторы: BlackIsle, Lovrik

D3D

Open GL и Direct 3D

Сообщение D3D » 10.11.2003 19:01

Какой из вышеперечисленных режимов лучший на ваш взгляд?

Detonator/LX
Модератор
Сообщения: 2043
Зарегистрирован: 01.01.1970 3:00
Откуда: Орбитальная станция "МИР"
Контактная информация:

Сообщение Detonator/LX » 10.11.2003 19:14

D3D
Простите, но вопрос не ясен. "Лучше" для чего? Если для портирования программы под другие платформы, то OpenGL, ибо D3D попросту не поддерживается ничем, кроме Win32-x86-PC. Кроссплатформенную прогу на D3D не создащь. Если для создания игр, то, IMHO, D3D рулит по той-же причине, по которой Visual Basic рулит у ASM'а - он понятнее, он универсальнее для различных видеокарт, а "человекообразные" среды разработки под него более распространены, нежели под OGL..
Если под "лучше" подразумевается не лучше для разработчика, а лучше для юзверя, то скажу так: "Рыба ищет, где глубже, а человек - где рыба. ;)" Если некая программа, способная работать как под OpenGL, так и под Direct 3D, в одном API показывает себя несколько лучше (напр, Hitman показывает несколько более качественную графику в OpenGL, а в Blood Rayne поддержка OpenGL реализованна лишь для того, чтоб она была.. Rayne быстрее и красивее в D3D), то его и надо выбирать.
Интересный факт:
JDooM под OpenGL работает почти вдвое быстрее, чем под Direct 3D.

D3D

Сообщение D3D » 10.11.2003 20:22

Detonator/LX я имел в виду качество графики в играх. Мне лично кажется что Open Gl намного лучше Direct 3D. Интересную момент я подметил в HL: They hunger. Когда спускаешся под воду видно как свет солнце пробивается сквозь воду (эффект не плохо сделан). Это можно увидеть только когда установлен режим Open GL. Direct 3D такого эффекта не даёт. Что под водой, что на суши одно и тоже.

Ian
Старожил
Сообщения: 1762
Зарегистрирован: 01.01.1970 3:00
Откуда: Россия, Курск-Москва
Контактная информация:

Сообщение Ian » 11.11.2003 17:51

D3D Все зависит от кривости рук программистов и желания делать прогу мультиплатформенной или мультисистемной. Как говорится, главное не "чем", а "как" этим "чем" :)

Detonator/LX А что, на Х-ящике Директа нет? Не верю ! :)

ViC
Клубмен
Клубмен
Сообщения: 1433
Зарегистрирован: 01.01.1970 3:00
Откуда: Moscow region, Russia
Контактная информация:

Сообщение ViC » 11.11.2003 18:01

Вообще-то оба API практически идентичны по результатам: всё упирается в качество драйвера видеокарты. А так, OpenGL и DirectX - это два способа "сказать" видеокарте, что она должна нарисовать. Если разговор пройдёт не по испорченному телефону (читай: драйверу), то качество картинки будет одним и тем же.

Detonator/LX
Модератор
Сообщения: 2043
Зарегистрирован: 01.01.1970 3:00
Откуда: Орбитальная станция "МИР"
Контактная информация:

Сообщение Detonator/LX » 12.11.2003 13:48

Ian
Ыкс ящик - это P3 733 + nVidia MBoard with integrated GeForce3 + 64 Mb DDR.. Ну и какой-же это не ПК? :?

ViC
Не всегда. Если не ошибаюсь, то в том-же самом Half-Life1 TruForm работает только под OpenGL.

Ian
Старожил
Сообщения: 1762
Зарегистрирован: 01.01.1970 3:00
Откуда: Россия, Курск-Москва
Контактная информация:

Сообщение Ian » 12.11.2003 13:59

Detonator/LX Тогда почему игры с него (M$ X-Box) так долго и криво портируются? :?

TtT

[b]OPEN GL[/b]

Сообщение TtT » 14.03.2004 17:33

[size=18]Где скачать open GL?[/size] :?: :?: :?:
albka1986@mail.ru

Timich
Старожил
Сообщения: 1247
Зарегистрирован: 01.01.1970 3:00
Откуда: Москва, Россия
Контактная информация:

Сообщение Timich » 14.03.2004 18:12

http://www.opengl.org :)

Freeman_Jack
Старожил
Сообщения: 3419
Зарегистрирован: 01.01.1970 3:00
Откуда: Беларусь, Минск
Контактная информация:

Сообщение Freeman_Jack » 14.03.2004 23:24

На сколько мне известно, OpenGL уже изжил себя. Из него вытянули по максимуму.

BLiTZ
Клубмен
Клубмен
Сообщения: 772
Зарегистрирован: 01.01.1970 3:00
Откуда: the Point of No Return ...
Контактная информация:

Сообщение BLiTZ » 15.03.2004 0:36

Freeman_Jack
На сколько мне известно, OpenGL уже изжил себя. Из него вытянули по максимуму.
API изжил себя? Так для этого и делаются новые версии, расширения и т.д. и т.п. И вобще откуда такая серьезная информация?
Detonator/LX
Не всегда. Если не ошибаюсь, то в том-же самом Half-Life1 TruForm работает только под OpenGL.
Точнее только на картах от ATi ...

andser
Модератор
Сообщения: 3189
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение andser » 15.03.2004 0:38

D3D

Это от игры зависит. Обычно игра использует только один АПИ как основной, а второй, как вспомогательный (например для совместимости с игрой определенного железа имеющего проблемы с основным АПИ). Тот же НЛ - это Q2 движок, изначально использующий OGL только. Однако к HL, был "прикручен" еще и D3D, видимо для совместимости с видеокартами не имеющими нормальных OGL драйверов (а на момент выхода игры таких карт было немало). Или напротив, UT2003 - D3D движок. OGL туда прикрутили для поддержки других (не Windows) платформ. Епики говорили об этом задолго до выхода игры.
Т.е. для пользователя не стоит ставить вопрос так: - "что лучше D3D или OGL". Стоит ставить вопрос: - "какой АПИ является основным для этой, конкретной, игры".
Последний раз редактировалось andser 15.03.2004 0:57, всего редактировалось 1 раз.

BLiTZ
Клубмен
Клубмен
Сообщения: 772
Зарегистрирован: 01.01.1970 3:00
Откуда: the Point of No Return ...
Контактная информация:

Сообщение BLiTZ » 15.03.2004 0:56

HL, был "прикручен" для совместимости с видеокартами не имеющими нормальных OGL драйверов (а на тот момент таких карт было немало)
Это Ati :) ... OpenGL драйвера времен Rage это нечто ... Разве что S3 мог с ними сравнится.

Timich
Старожил
Сообщения: 1247
Зарегистрирован: 01.01.1970 3:00
Откуда: Москва, Россия
Контактная информация:

Сообщение Timich » 15.03.2004 1:01

Freeman_Jack писал(а):На сколько мне известно, OpenGL уже изжил себя. Из него вытянули по максимуму.
На чем основан столь пессимистический вывод? На том, что Билли любит DirectX, а OpenGL ножками пинает? :)
Все новомодные функции последней версии Direct3D (пиксельные и вершинные шейдеры 2.0 и так далее) поддерживаются и OpenGL. OpenGL - кроссплатформенный API, и в этом его большое приемущество. Другое приемущество - гибкость. Фирма-производитель может легко расширить возможности базовой библиотеки OpenGL, установив в систему свой драйвер - ICD-библиотеку, например nvoglnt.dll для видеокарт NVIDIA под Win2000/XP. И программы смогут использовать специфические расширения OpenGL (например NV_что-то_там). Обратная сторона - проблемы с совместимостью. Только шаман сможет заставить GL-демки NVIDIA идти на картах ATI и наоборот. ;)
Расширять возможности Direct3D может только Microsoft. Как она решит, так и придется действовать фирмам-производителям железа. Они только могут ограничить функциональность на уровне своего железа и (или) драйвера, не осуществив поддержку некоторых функций Direct3D. (Например, поддержка Bump Mapping уже была в Direct3D 7 - тест с инопланетянином в 3D Mark 2001, однако Direct3D 7 видеокарта GeForce 2 его не поддерживала). Добавить новые функции сторонние производители НЕ МОГУТ.
Самое большее, на что можно рассчитывать - обратиться к Биллу с челобитной: "А не внесете ли вы в следующую версию эту феньку... По-жаа-луйстаааа...". :) :)
Direct3D - детище Microsoft, фирма не жалеет сил на продвижение этого API, а основной ОС для геймеров является именно Windows...
IMHO, поэтому
"человекообразные" среды разработки под него более распространены, нежели под OGL.. <...> для создания игр, то, IMHO, D3D рулит
А код, IMHO, в OpenGL попроще, Direct3D с его COM-архитектурой, более громоздкий.

Согласен с тем, что эти два API соответствующих версий практически идентичны по результатам, а различия в основном происходят от внешних причин - драйверов, того, как реализована поддержка API в движке игры и так далее.
Последний раз редактировалось Timich 23.03.2004 1:05, всего редактировалось 4 раза.

BLiTZ
Клубмен
Клубмен
Сообщения: 772
Зарегистрирован: 01.01.1970 3:00
Откуда: the Point of No Return ...
Контактная информация:

Сообщение BLiTZ » 15.03.2004 1:06

Timich
Direct3D с его COM-архитектурой, более громоздкий
:beer: Любит Microsoft это дело COM .NET etc. ...
тест с инопланетянином в 3D Mark 2000, однако Direct3D 7 видеокарта GeForce 2 его не поддерживала).
А еще была такая вещь, как Geforce2 GTS - Giga Texel Shader. Однако эти шейдеры были несовместимы с DirectX и об их наличии быстро забыли ...

DrEvil
Администратор Judge Dredd
Сообщения: 17062
Зарегистрирован: 17.01.2003 11:52
Контактная информация:

Сообщение DrEvil » 12.05.2004 21:45

kuuuper wse@list.ru
Обращаемся в раздел Games!

Freeman_Jack
Старожил
Сообщения: 3419
Зарегистрирован: 01.01.1970 3:00
Откуда: Беларусь, Минск
Контактная информация:

Сообщение Freeman_Jack » 12.05.2004 23:00

Timich BLiTZ Ну вроде игр на D3D выходит намного больше, чем на OpenGL. Отсюда и МОЙ вывод. Я в программировании ни бум-бум. Просто у меня что-то типа стереотипа OpenGL - Quake, а D3D - все новомодное.

Ian
Старожил
Сообщения: 1762
Зарегистрирован: 01.01.1970 3:00
Откуда: Россия, Курск-Москва
Контактная информация:

Сообщение Ian » 13.05.2004 13:41

Freeman_Jack OpenGL -- Doom3, Quake4 и все будущие игры на движках от id, не тормозящий на Ti4200 FarCry, все демки от производителей видеокарт, 3D Studio MAX (до сравнительно недавнего времени, сейчас там можно использовать и OpenGL и D3D), а также достаточно популярные бенчмарки поколения DX8 -- Vulpine GLMark и GL Excess. Это то, что могу вспомнить "с ходу". Кроме этого, некоторые игры идут под OpenGL, не сообщая об этом юзеру :) (а, действительно, зачем? ;) ), и понять это можно только из логов. Что за игры -- сказать прямо сейчас не могу, но были случаи.

Freeman_Jack
Старожил
Сообщения: 3419
Зарегистрирован: 01.01.1970 3:00
Откуда: Беларусь, Минск
Контактная информация:

Сообщение Freeman_Jack » 13.05.2004 15:25

Ian Понял. Ты меня переубедил и разрушил мой стереотип. :beer:

DrEvil
Администратор Judge Dredd
Сообщения: 17062
Зарегистрирован: 17.01.2003 11:52
Контактная информация:

Сообщение DrEvil » 13.05.2004 20:36

Freeman_Jack
Ну и юниксоидам деваться с OpenGL некуда.

Detonator/LX
Модератор
Сообщения: 2043
Зарегистрирован: 01.01.1970 3:00
Откуда: Орбитальная станция "МИР"
Контактная информация:

Сообщение Detonator/LX » 13.05.2004 21:36

DrEvil
Если честно, то подавляющее большинство юниксоидов и OpenGL то на NIX'ах не используют. У них есть на работе Linux, а дома Windows XP. ;) Конечно, есть "фрукты", юзающие всякие извращения, типа WineX, но это уже клиника.. Из принципа запускать игры на Linux, теряя в скорости и качестве картинки.

DrEvil
Администратор Judge Dredd
Сообщения: 17062
Зарегистрирован: 17.01.2003 11:52
Контактная информация:

Сообщение DrEvil » 14.05.2004 8:40

Detonator/LX
В качестве картинки может и да, но не в скорости. Где-то на iXBT было сравнение.

ALF
Участник
Сообщения: 231
Зарегистрирован: 01.01.1970 3:00
Откуда: Зеленодольск (есть такое место ;))
Контактная информация:

Сообщение ALF » 16.05.2004 21:49

DrEvil Согласен, что скорость не теряется. Проверено мной :) Ну а графика - это только местами ;)

NeVeR

Сообщение NeVeR » 17.05.2004 0:53

Извините что немножко не в тему!

Вчера вышла новая версия программы OpenGL Extension Viewer v. 2.08, среди прочих новвоведений есть такая фишка - включение функций OpenGL 2.0 на видеокартах nVidia. У меня GeForce3 Ti200.
Если судить по этой проге, то почти все версии у меня поддерживаются. 1.3 - полностью, 1.4 - кроме одной функции, 1.5 - кроме одной функции. После включения вьювером функций OpenGL 2.0 стало показывать что и 2.0 у меня поддерживается тоже не полностью, кроме одной функции.
Если включить прогой aTuner эмуляцию FX и NV40 то все версии полностью заработают (естественно некоторые функции эмулируются).
Вопрос - значит ли это, что в принципе поддержка версии 2.0 есть уже на видеокартах класса GF3.
К слову вьювер не просто эмулирует он просто включает одну ветвь в реестре.
Еще кое-что - судя по вьюверу версия 2.0 это просто поддержка пиксельных и вертексных шейдеров в OpenGL. Типа DirectX 8.1. Именно 8.1. Думаю что если была бы видюха типа FX или даже 4Ti 2.0 бы полностью заработал.
И еще драйвера версии 56.72. Заметил что тольк после установки драйверов версии ниже 52.16 появилась некоторая поддержка функций OpenGL версиий 1.4 и 1.5.

К чему это я, а к тому что, по моему мнению поддержку 2.0 можно было бы реализовать еще и в 2001 году.

Гость
Старожил
Сообщения: 1418
Зарегистрирован: 01.01.1970 3:00
Откуда: Из матери..
Контактная информация:

Сообщение Гость » 17.05.2004 2:02

NeVeR
К чему это я, а к тому что, по моему мнению поддержку 2.0 можно было бы реализовать еще и в 2001 году.
Программно(теоретически) хоть в 1975..

NeVeR

Сообщение NeVeR » 17.05.2004 4:04

А аппаратно?
Полную поддержку можно и в GF3 сделать!
Интересно получается. Официально 1.5 версию поддерживает только GF FX5950(из Nvidia'и). Интересно в чем разница между ним и FX5900Ultrа кроме частоты?
По моему мнению вся эта чехарда с поддержками той или иной версии OpenGL негативно влияет только на сами компании производителей графических чипов.
Интересно а Unwinder не может такой патч-скрипт сделать чтоб неработающие функции некоторых версий разблокировались на аппартном уровне?

andser
Модератор
Сообщения: 3189
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение andser » 17.05.2004 4:25

NeVeR
Если включить прогой aTuner эмуляцию FX и NV40 то все версии полностью заработают (естественно некоторые функции эмулируются).
Все, а не "некоторые".

NeVeR

Сообщение NeVeR » 17.05.2004 19:48

Интересно с чего это будут эмулироваться функции которые аппаратно поддерживаются?

andser
Модератор
Сообщения: 3189
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение andser » 17.05.2004 23:49

NeVeR
Интересно с чего это будут эмулироваться функции которые аппаратно поддерживаются?
Нельзя вытащить из графического конвейера какую-то стадию (на которой, например, используется возможность, неподдерживаемая, аппаратно, графическим чипом - читай расширение OpenGL), выполнить ее программно и засунуть результат обратно в конвейер. Можно эмулировать весь конвейер (что и происходит при установке флага "NV40 Emulate" в твикере). Получится программный рендеринг в OpenGL. Видеокарта будет работать только как фрейм-буфер, а графику будет расчитываеть полностью CPU. Cкорость рендеринга при этом будет 1-2 кадра в минуту, зато "русалки" и "эльфийки", заработают хоть на Riva TNT, с качеством не хуже NV40.

Джен

Сообщение Джен » 06.11.2004 16:59

А где скачать Direct 3D?

Ответить