Open GL и Direct 3D
-
- Модератор
- Сообщения: 2043
- Зарегистрирован: 01.01.1970 3:00
- Откуда: Орбитальная станция "МИР"
- Контактная информация:
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.
Простите, но вопрос не ясен. "Лучше" для чего? Если для портирования программы под другие платформы, то 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.
Detonator/LX я имел в виду качество графики в играх. Мне лично кажется что Open Gl намного лучше Direct 3D. Интересную момент я подметил в HL: They hunger. Когда спускаешся под воду видно как свет солнце пробивается сквозь воду (эффект не плохо сделан). Это можно увидеть только когда установлен режим Open GL. Direct 3D такого эффекта не даёт. Что под водой, что на суши одно и тоже.
-
- Клубмен
- Сообщения: 1433
- Зарегистрирован: 01.01.1970 3:00
- Откуда: Moscow region, Russia
- Контактная информация:
Вообще-то оба API практически идентичны по результатам: всё упирается в качество драйвера видеокарты. А так, OpenGL и DirectX - это два способа "сказать" видеокарте, что она должна нарисовать. Если разговор пройдёт не по испорченному телефону (читай: драйверу), то качество картинки будет одним и тем же.
-
- Модератор
- Сообщения: 2043
- Зарегистрирован: 01.01.1970 3:00
- Откуда: Орбитальная станция "МИР"
- Контактная информация:
-
- Старожил
- Сообщения: 3419
- Зарегистрирован: 01.01.1970 3:00
- Откуда: Беларусь, Минск
- Контактная информация:
-
- Клубмен
- Сообщения: 772
- Зарегистрирован: 01.01.1970 3:00
- Откуда: the Point of No Return ...
- Контактная информация:
Freeman_Jack
Detonator/LX
API изжил себя? Так для этого и делаются новые версии, расширения и т.д. и т.п. И вобще откуда такая серьезная информация?На сколько мне известно, OpenGL уже изжил себя. Из него вытянули по максимуму.
Detonator/LX
Точнее только на картах от ATi ...Не всегда. Если не ошибаюсь, то в том-же самом Half-Life1 TruForm работает только под OpenGL.
D3D
Это от игры зависит. Обычно игра использует только один АПИ как основной, а второй, как вспомогательный (например для совместимости с игрой определенного железа имеющего проблемы с основным АПИ). Тот же НЛ - это Q2 движок, изначально использующий OGL только. Однако к HL, был "прикручен" еще и D3D, видимо для совместимости с видеокартами не имеющими нормальных OGL драйверов (а на момент выхода игры таких карт было немало). Или напротив, UT2003 - D3D движок. OGL туда прикрутили для поддержки других (не Windows) платформ. Епики говорили об этом задолго до выхода игры.
Т.е. для пользователя не стоит ставить вопрос так: - "что лучше D3D или OGL". Стоит ставить вопрос: - "какой АПИ является основным для этой, конкретной, игры".
Это от игры зависит. Обычно игра использует только один АПИ как основной, а второй, как вспомогательный (например для совместимости с игрой определенного железа имеющего проблемы с основным АПИ). Тот же НЛ - это Q2 движок, изначально использующий OGL только. Однако к HL, был "прикручен" еще и D3D, видимо для совместимости с видеокартами не имеющими нормальных OGL драйверов (а на момент выхода игры таких карт было немало). Или напротив, UT2003 - D3D движок. OGL туда прикрутили для поддержки других (не Windows) платформ. Епики говорили об этом задолго до выхода игры.
Т.е. для пользователя не стоит ставить вопрос так: - "что лучше D3D или OGL". Стоит ставить вопрос: - "какой АПИ является основным для этой, конкретной, игры".
Последний раз редактировалось andser 15.03.2004 0:57, всего редактировалось 1 раз.
-
- Старожил
- Сообщения: 1247
- Зарегистрирован: 01.01.1970 3:00
- Откуда: Москва, Россия
- Контактная информация:
На чем основан столь пессимистический вывод? На том, что Билли любит DirectX, а OpenGL ножками пинает?Freeman_Jack писал(а):На сколько мне известно, 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, поэтому
А код, IMHO, в OpenGL попроще, Direct3D с его COM-архитектурой, более громоздкий."человекообразные" среды разработки под него более распространены, нежели под OGL.. <...> для создания игр, то, IMHO, D3D рулит
Согласен с тем, что эти два API соответствующих версий практически идентичны по результатам, а различия в основном происходят от внешних причин - драйверов, того, как реализована поддержка API в движке игры и так далее.
Последний раз редактировалось Timich 23.03.2004 1:05, всего редактировалось 4 раза.
-
- Клубмен
- Сообщения: 772
- Зарегистрирован: 01.01.1970 3:00
- Откуда: the Point of No Return ...
- Контактная информация:
Timich
Любит Microsoft это дело COM .NET etc. ...Direct3D с его COM-архитектурой, более громоздкий
А еще была такая вещь, как Geforce2 GTS - Giga Texel Shader. Однако эти шейдеры были несовместимы с DirectX и об их наличии быстро забыли ...тест с инопланетянином в 3D Mark 2000, однако Direct3D 7 видеокарта GeForce 2 его не поддерживала).
-
- Старожил
- Сообщения: 3419
- Зарегистрирован: 01.01.1970 3:00
- Откуда: Беларусь, Минск
- Контактная информация:
-
- Старожил
- Сообщения: 1762
- Зарегистрирован: 01.01.1970 3:00
- Откуда: Россия, Курск-Москва
- Контактная информация:
Freeman_Jack OpenGL -- Doom3, Quake4 и все будущие игры на движках от id, не тормозящий на Ti4200 FarCry, все демки от производителей видеокарт, 3D Studio MAX (до сравнительно недавнего времени, сейчас там можно использовать и OpenGL и D3D), а также достаточно популярные бенчмарки поколения DX8 -- Vulpine GLMark и GL Excess. Это то, что могу вспомнить "с ходу". Кроме этого, некоторые игры идут под OpenGL, не сообщая об этом юзеру (а, действительно, зачем? ), и понять это можно только из логов. Что за игры -- сказать прямо сейчас не могу, но были случаи.
-
- Старожил
- Сообщения: 3419
- Зарегистрирован: 01.01.1970 3:00
- Откуда: Беларусь, Минск
- Контактная информация:
-
- Модератор
- Сообщения: 2043
- Зарегистрирован: 01.01.1970 3:00
- Откуда: Орбитальная станция "МИР"
- Контактная информация:
DrEvil
Если честно, то подавляющее большинство юниксоидов и OpenGL то на NIX'ах не используют. У них есть на работе Linux, а дома Windows XP. Конечно, есть "фрукты", юзающие всякие извращения, типа WineX, но это уже клиника.. Из принципа запускать игры на Linux, теряя в скорости и качестве картинки.
Если честно, то подавляющее большинство юниксоидов и OpenGL то на NIX'ах не используют. У них есть на работе Linux, а дома Windows XP. Конечно, есть "фрукты", юзающие всякие извращения, типа WineX, но это уже клиника.. Из принципа запускать игры на Linux, теряя в скорости и качестве картинки.
Извините что немножко не в тему!
Вчера вышла новая версия программы 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 году.
Вчера вышла новая версия программы 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 году.
А аппаратно?
Полную поддержку можно и в GF3 сделать!
Интересно получается. Официально 1.5 версию поддерживает только GF FX5950(из Nvidia'и). Интересно в чем разница между ним и FX5900Ultrа кроме частоты?
По моему мнению вся эта чехарда с поддержками той или иной версии OpenGL негативно влияет только на сами компании производителей графических чипов.
Интересно а Unwinder не может такой патч-скрипт сделать чтоб неработающие функции некоторых версий разблокировались на аппартном уровне?
Полную поддержку можно и в GF3 сделать!
Интересно получается. Официально 1.5 версию поддерживает только GF FX5950(из Nvidia'и). Интересно в чем разница между ним и FX5900Ultrа кроме частоты?
По моему мнению вся эта чехарда с поддержками той или иной версии OpenGL негативно влияет только на сами компании производителей графических чипов.
Интересно а Unwinder не может такой патч-скрипт сделать чтоб неработающие функции некоторых версий разблокировались на аппартном уровне?
NeVeR
Нельзя вытащить из графического конвейера какую-то стадию (на которой, например, используется возможность, неподдерживаемая, аппаратно, графическим чипом - читай расширение OpenGL), выполнить ее программно и засунуть результат обратно в конвейер. Можно эмулировать весь конвейер (что и происходит при установке флага "NV40 Emulate" в твикере). Получится программный рендеринг в OpenGL. Видеокарта будет работать только как фрейм-буфер, а графику будет расчитываеть полностью CPU. Cкорость рендеринга при этом будет 1-2 кадра в минуту, зато "русалки" и "эльфийки", заработают хоть на Riva TNT, с качеством не хуже NV40.Интересно с чего это будут эмулироваться функции которые аппаратно поддерживаются?