1. Главная страница » Компьютеры » Opengl direct3d что лучше

Opengl direct3d что лучше

Автор: | 16.12.2019

По всей видимости, очень многие пользователи, в частности, все те, кто предпочитает использовать компьютер для установки и прохождения современных ресурсоемких игр, знают, что в настройках графики можно использовать специальные средства ускорения вывода изображения и повышения качества картинки OpenGL или DirectX. Что лучше задействовать для полного использования всех скрытых ресурсов компьютерной системы и добиться максимальной производительности? Вопрос этот является достаточно спорным, и ответить однозначно в пользу какой-то одной платформы обычно не представляется возможным, поскольку все зависит от конкретной цели, которую ставит перед собой пользователь или разработчик, а также от каждой конкретной ситуации, которая частично может быть связана с «железным» оборудованием в виде графического ускорителя, его программной поддержкой в виде драйверов и некоторыми дополнительными аспектами. Попробуем разобраться, что лучше — OpenGL или DirectX, — обратившись и к официальным источникам информации, и опираясь на мнения пользователей и разработчиков программного обеспечения, которое может требовать поддержку таких технологий.

Что такое OpenGL и DirectX?

Начнем с того, что среди рядовых пользователей бытует ошибочное мнение, что эти два описываемых компонента представляют собой графические движки. Отсюда и возникают некорректные вопросы по поводу того, какой движок лучше — OpenGL или DirectX?

Дело в том, что к движкам этим платформы относятся лишь частично, поскольку являются исключительно программным обеспечением, которое позволяет взаимодействовать программному движку программы (игры) с установленным оборудованием (чаще всего с видео- и звуковым картами) через их драйверы, которые выполняют роль посредников. На самом же деле OpenGL и DirectX являются частью интерфейсов прикладного программирования с необходимым наборами библиотек, классов, дефиниций, структур, констант и функций, применяемых для обеспечения работы с внешними программными продуктами, устанавливаемыми в операционную систему.

Для чего используются эти технологии

Естественно, очень часто можно встретить и вопросы по поводу того, какая графика лучше — OpenGL или DirectX? Такая постановка тоже частично является некорректной, поскольку речь может идти не только о задействовании ресурсов видеокарт, но и звуковых или любых других «железных» и виртуальных устройств мультимедиа. Но чаще всего речь действительно идет именно о графических ускорителях. При этом нужно четко понимать, что выбор в пользу того или иного «моста», обеспечивающего взаимодействие видеокарты с установленной игрой или любой другой программой, где это необходимо, может зависеть и от того, насколько обязательной является такая поддержка.

В современных играх со сложными текстурами и досконально пририсованными динамическими сценами такая поддержка крайне необходима. Но проблема в том, что далеко не все графические ускорители могут корректно использовать такую поддержку. В этом случае все зависит уже от драйверов. Будь карта какой угодно ультрамодной, но с устаревшим управляющим ПО (драйверами) она не сможет использовать все те возможности, которые изначально были заявлены производителем. Тем не менее в большинстве игр или в программах для работы с мультимедиа (например, для обработки видео) очень часто и приходится выбирать, какую именно поддержку устанавливать в настройках противопоставляя одну платформу другой (в английском варианте это обычно выглядит как «OpenGL vs DirectX»).

Основные отличия DirectX и OpenGL

Что же касается основных отличий, не вдаваясь в технические аспекты функционирования, сразу же можно отметить, что платформа DirectX, являющая эксклюзивной разработкой корпорации Microsoft, предназначена исключительно для применения в Windows-системах и частично на Xbox, а OpenGL представляет свободно распространяемую кроссплатформенную технологию, применимую в других ОС (даже в мобильных). Лицензия GNU позволяет любому желающему вносить в компоненты этого API собственные изменения и дополнения, касающиеся ее усовершенствования с целью повышения производительности тех же видеокарт, в то время как улучшений DirectX приходится ждать только по мере выхода новых версий платформы. При этом даже с самыми новыми драйверами при использовании на старых версиях моста графические ускорители не выдают заявленных производителем показателей.

Главные преимущества и недостатки

Говоря о том, что лучше — OpenGL или DirectX 11 (12), отдельно стоит отметить, что первая платформа предназначена только для графики, а вторая может использоваться вообще для всего того, что относится к мультимедиа (за графику в данном случае отвечает компонент Direct3D).

Кроме того, многим экспертами отмечается, что в очень высокой степени выбор в пользу того или иного моста может зависеть и от типа графической карты. Но, если подходить к сравнению непредвзято, считается, что в плане охвата платформ лучше выглядит OpenGL, но DirectX выигрывает в плане того, что является готовым программным продуктом вроде класса Plug&Play. Однако не стоит забывать и том, что инструментальный набор DirectX последних версий и так доступен в OpenGL, а вот обратной поддержки нет.

OpenGL или DirectX: что лучше для игр?

Что же касается игр, и тут однозначного ответа дать нельзя. Так, например, довольно часто можно встретить комментарии по поводу того, что графические чипы линейки Radeon 9800 лучшие результаты в тестах показывают на основе DirectX, а карты GeForce серии 5XXX – при использовании OpenGL. Зато у DirectX есть еще одно неоспоримое преимущество.

Поскольку мост OpenGL изначально создавался для других платформ, с ним в Windows возможно появление разного рода багов, а вот DirectX позволяет довольно сносно пользоваться играми даже на относительно устаревших компьютерах без всяких торможений (яркий пример тому – игра Age Of Empires).

Бывает и наоборот. Так, например, некоторые пользователи отмечают, что DOOM 3 на картах серии Radeon X1XXX с использованием OpenGL просто «летает», а Half-Life 2 очень часто «тормозит». Но тут, видимо, все зависит еще и от драйверов.

Но, по большому счету, если игра поддерживает использование обеих технологий, лучше всего посмотреть, каким будет результат работы видеокарты при использовании каждого режима попеременно. Само собой разумеется, что достижения оптимальной производительности и сами платформы, и драйверы графических ускорителей должны быть обновлены до самых последних версий.

Что лучше для BlueStacks: DirectX или OpenGL?

Достаточно часто можно встретить и вопросы по поводу использования одного из самых популярных эмуляторов Android-систем под названием BlueStacks. Какую платформу предпочесть в BlueStacks — OpenGL или DirectX? Увы, и тут однозначного ответа дать нельзя.

Однако негласно считается, что в случае установки через этот эмулятор именно игр, лучше задействовать OpenGL, а вот, если игра будет тормозить, тогда придется переключиться на DirectX. Но, опять же, все это касается только игровой графики. В случае с профессиональной обработкой и рендерингом видео придется достаточно серьезно экспериментировать.

Рекомендации разработчикам

Наконец, если говорить о том, что лучше — OpenGL или DirectX – для разработчика, который только начинает освоение этих технологий и делает первые шаги, большинство специалистов в этой области отмечают, что сначала лучше ознакомиться с принципами функционирования и инструментальным набором DirectX, поскольку эта платформа выглядит для новичка более простой, и для нее постоянно выпускаются неплохие комплекты SDK, предназначенные как раз для упрощения адаптации программных продуктов к "железу", а только потом переходить к изучению OpenGL.

Впрочем, многое может зависеть и от того, какую конечную цель вы перед собой ставите и какой именно функционал каждой платформы будет использоваться в каждом конкретном случае (только графика, только звук или какие-то объединенные решения).

Краткие выводы

Подводя итоги, как уже понятно, однозначного вывода в пользу одного или другого компонента сделать достаточно сложно. Между этими платформами идет постоянное соревнование. Иногда новая версия DirectX по своим параметрам опережает OpenGL, но по мере устаревания, а также внесения в OpenGL каких-то инноваций начинает проигрывать. В целом же при выборе следует отталкиваться исключительно от общеизвестного принципа, что истина познается в сравнении. Пробуйте и то и другое! Только после получения конкретных результатов и для каждого конкретного случая и будет ясно, к какой чаше весов склонится ваш выбор.

Читайте также:  Aps 1000 бесперебойник инструкция

Я начинаю проект игры с хобби в Windows, который будет сильно использовать эффекты 3D-графики. Скорее всего, это будет написано на С++.

Должен ли я использовать OpenGL или Direct3D для моего графического сервера? Почему?

Или я должен использовать готовый графический движок, например OGRE 3D? Какой?

Некоторые ссылки "как начать" будут полезны. (Либо по технологии, либо по обоим.)

Изменить — Да, я действительно имел в виду Direct3D, а не DirectX, благодаря graham.reeds для разъяснения

Изменить — Михай Лазар указал, что я могу использовать графический движок, такой как OGRE 3D. Отредактировал вопрос, чтобы отразить эту альтернативу.

windows directx opengl

20 ответов

Начните с OpenGL, потому что на нем есть хорошие учебники и другие онлайн-ссылки. Как только вы получите возможность писать 3D-игру, вы сможете сами сделать это.

Завершение игры, даже если это действительно глупо и просто для вас, важнее выбора правильной библиотеки. С помощью glut вы можете получить 3D-объект, который будет отображаться на вашем экране за день. Начните с NeHe уроков.

8 lancekt [2008-09-17 20:46:00]

Если вы хотите рассмотреть С#, взгляните на XNA. Для проектов хобби, предполагая, что вы хотите, чтобы фактически начать игру и вместо того, чтобы перерабатывать сложный код API, я не могу рекомендовать ее достаточно высоко. Он становится все более зрелым, хорошо документированным и, по сравнению с D3D/OpenGL, очень быстрым и простым в использовании. В качестве бонуса с членством в Клубе авторов в размере 100 долларов в год вы даже можете использовать его для разработки игр для Xbox 360.

Вы также можете основывать свою работу на ogre, они предоставляют абстракцию сами, и у них действительно хорошие инструменты. Я думаю, что это проекты, которые существуют уже более 6 лет. Базовая библиотека не для начинающих, так как вам нужно немного узнать о разработке программного обеспечения, но я нашел много людей, которые написали игры, используя это.

Это было бы безопаснее и быстрее, чем изучение более тяжелых вещей, поскольку оно уже было абстрагировано. Плюс через пару месяцев вы будете говорить о трехмерном жаргоне. Существует также книга, которая поможет вам начать работу с Ogre, я думаю, что это уже кстати, но отправной точкой в ​​любом случае.

Вы должны помнить, что DirectX — это набор технологий — Input, Audio и Graphics. Однако для большинства людей DX является синонимом рендерера.

На мой взгляд, D3D (или DirectGraphics) на самом деле не так тяжело с DX8. Я не пробовал DX9 или DX10.

Бернард прав — старайтесь как можно больше абстрагироваться. Попробуйте сохранить вызовы DX или OGL вне ваших классов объектов.

У меня нет предыдущего опыта OpenGL, DirectX или видеоигр, и у меня есть видеоигр с открытым исходным кодом с Ogre3d. Является очень хорошей основой для запуска в видеоиграх: хорошо выполненный код, много docs и информация в сети и очень хорошие стартовые учебные пособия.

Механизм рендеринга является агностиком DirectX/OpenGl, позже вы можете отображать свою игру с помощью OpenGL или DirectX (с изменениями в вашем коде).

2 [2008-09-16 03:16:00]

В ситуации, которую вы описываете, я бы рекомендовал Direct3D.

Основная причина использования Direct3D вместо OpenGL заключается в том, что зачастую производители видеокарты отлично справляются с драйверами OpenGL для своих "high end" карт.

Карты с низким уровнем игрового типа, как правило, становятся бедными и обычно ошибочными драйверами, что создает проблемы на компьютерах конечного пользователя.

Если важна переносимость, то это будет большой причиной вместо OpenGL или Ogre.

Но если вы никогда не планируете порт, то сосредоточьтесь на Direct3D, так как это более стабильная платформа с лучшей поддержкой драйверов IHV.

Я сделал диссертацию на uni по сравнению OpenGL и Direct3D. Реальные преимущества Direct3D заключаются в том, что он имеет регулярный расписание релизов — он всегда обновляется, чтобы воспользоваться последними достижениями в графическом оборудовании. Сколько времени прошло между выпусками OpenGL 2.0 и 3.0? Кроме того, в расширениях OpenGL была проделана большая работа, что означает, что на некоторых картах будет работать только некоторый рендеринг.

Сказав это, OpenGL будет легче начать программирование. Поскольку Direct3D сильно основан на COM, он имеет крутую кривую обучения.

Если бы это был я, я бы выбрал DirectX поверх OpenGL. Это ценой не-платформенной независимости.

2 Bernard [2008-09-02 13:08:00]

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

1 [2008-09-22 02:22:00]

Я действительно согласен с тем, кто говорит вам учиться Ogre3D. Вы сказали, что используете С++, поэтому Ogre3D — отличный выбор. XNA использует С#, и вам нужно будет изучить различия между ним и С++, кроме изучения самой XNA. Также XNA не является ни Open Source, ни кросс-платформой, поэтому, если вы хотите получить более широкие знания об игре, я бы предложил сначала изучить SDL, а затем Ogre3D.

Вам нужно подумать о том, чего вы хотите от него, поскольку это хобби-проект, который я предполагаю, что "учебный материал" станет основной частью опыта, поэтому избегайте собирать то, что скрывает от вас вещи и делает что-то за кулисами, так как это даст вам лишь часть изображения.

Я бы пошел с Direct3D, потому что получил лучшую поддержку, я считаю, что документы легко читаются, и есть достойные образцы, которые поставляются с SDK. Вы можете даже использовать эти образцы в качестве основы для построения, если вы хотите начать игру без начальной кривой крутого обучения, чтобы настроить вещи.

Я начал с OpenGL для записи, и примерно через месяц пошел на Direct3d (в то время это была версия 7). Я обнаружил, что Direct3D заставил меня больше узнать о том, что я хотел сделать, и о том, как я настраивал ситуацию, но я предпочел этот уровень понимания.

Важно, чтобы IMO, какой бы способ вы ни выбрали, делайте это шаг за шагом и регулярно вещайте на экране. Там всевозможные причины, почему что-то не на экране (оно прозрачно, камера внутри объекта и т.д.), Поэтому, принимая детские шаги и регулярно получая информацию, вы оба проверяете, что все еще движется вперед и небольшая визуальная награда.

То, что вы должны рассмотреть, — это решение независимости платформы. Вы хотите связать свою игру с Windows или хотите выпустить ее в Mac OS X или Linux в какой-то момент. Если вы решите, что хотите поддерживать Linux, OS X в будущем, вам нужно будет использовать OpenGL.

Похоже, что сообщество Linux проявляет большую доброжелательность, если игра по крайней мере частично выпущена для Linux.

1 dreamlax [2008-09-16 03:18:00]

Я понимаю, что в Direct3D вы должны обрабатывать все распределение ресурсов и управление самостоятельно, тогда как спецификация OpenGL оставляет это для драйвера/реализации, а не для приложения.

Это позволяет разработчикам Direct3D использовать наилучшие методы распределения и управления, подходящие для приложения, но также является дополнительной работой.

Я делал типичные приложения Hello World в каждом, и я предпочитаю OpenGL поверх Direct3D, но это только мое мнение. Вы должны попробовать оба, провести день или два обучения и поиграть с каждым, и решить для себя.

Читайте также:  Amlogic s912 android tv box

1 Perry [2008-09-16 03:04:00]

Чтобы ответить на этот вопрос, вам нужно больше информации о вас:

  • Какова ваша способность программирования?

Если бы он был высоким, я бы, вероятно, начинал с Ogre (лучший механизм с открытым исходным кодом, IMHO) или другого движка с открытым исходным кодом, такого как Delta3D, если вы хотите добавить дополнительные функции (звук, физику и т.д.), чтобы игровой движок.

Если вы не хотите работать с движком, я бы пошел с Direct3D, потому что он обновляется намного быстрее, чем OpenGL. Я не хочу разбираться во всех проблемах, но версия 3.0 OpenGL была анонсирована во время SIGGRAPH, и большинство из них были очень разочарованы. Direct3D ставит вас в гораздо лучшем положении, чтобы использовать шейдеры и другие варианты использования программируемого конвейера.

Если ваша способность программирования не слишком высока, и вы делаете это, чтобы научиться программированию, я бы начал с OpenGL, потому что ее легче изучить, а в Интернете больше ресурсов (см. http://nehe.gamedev.net, например).

Очевидно, что из полученных вами ответов вы можете начать с D3D или OpenGL для вашего 3D-графического API. Тройно-игровые названия были разработаны с использованием обеих технологий, и у них есть свои сильные и слабые стороны.

Если вы уже достаточно хорошо разбираетесь в С++, то один из них будет обслуживать, однако в вашем выборе есть ряд других соображений:

  • Переносимость: OpenGL (и OpenGL ES) доступен в Windows, Linux, OS X, iOS, Android и других системах. D3D/DirectX блокирует вас только на платформах MS.
  • Ввод игры: в DirectX API DirectInput предоставляет вам доступ к контроллерам. OpenGL здесь не имеет эквивалента.
  • Звуки: DirectAudio поддерживает звуки, OpenGL не имеет эквивалента (однако OpenAL часто используется)
  • Физика. В зависимости от потребностей вашей игры вам может потребоваться продвинутое физическое моделирование.

Обычно фактический "игровой процесс" фокусируется на AI, бое, сюжетной линии и т.д.

Если вы все еще поднимаетесь на кривой обучения С++ (стоит, но занимает некоторое время), вместо этого вы можете использовать С# и OpenTK, Это обеспечит вам преимущества "игровой инфраструктуры", такой как Ogre, разумный прямой доступ к OpenGL и значительные преимущества использования управляемого кода (и IDE) для логики игры. OpenTK является кросс-платформенным с помощью Mono, поэтому ваш код может работать и на OS X, и на Linux.

0 Mark [2008-09-12 21:43:00]

Предложения по абстракции двигателя хороши, предполагая, что вы знаете, что делаете. Трудно написать хороший уровень абстракции для графики, не сделав этого уже.

Я бы посоветовал вам просто выбрать один. Вы выберете концепции из достаточно легко — достаточно, чтобы вы могли работать на уровне абстракции или в другой библиотеке достаточно просто. Но просто сделайте это. Я действительно не стал бы беспокоиться о том, что правильно. Они оба хорошие, солидные исполнители. DX10 (если у вас есть Vista) может иметь небольшое преимущество в более современных моделях шейдеров, но для кого-то, начинающего сейчас, это довольно неуместно, я думаю. GL имеет то преимущество, что некоторые из математических или математических математических операций либо скрыты от вас, либо предоставлены вам (хотя я думаю, что у DX есть и некоторые из них).

0 Adi [2008-09-15 21:22:00]

В то время как OpenGL на сегодняшний день легко начать с того, как уже писали некоторые люди — получение треугольника для отображения на экране и оттуда перемещение в текстуры, частицы и многое другое можно сделать в течение дня.

Однако я считаю, что хороший вопрос, который нужно задать, является вашей конечной целью.
Если это простая игра, никакая скелетная анимация и простое 3D — OpenGL — это определенно ответ. Если вы нацелитесь выше и не хотите тратить время на разработку всех технологий с нуля (или пойти на охоту за бесплатными библиотеками и собрать все вместе), тогда DX — хороший выбор, я бы пошел на DX9c, пока DX11 не выйдет.

Если вы не против возиться с другими языками, отличными от С++, вы также должны взглянуть на среду разработки XNA — она ​​стала довольно зрелой и хорошей.

Точно так же, используя уже существующий движок, хорошо, если вы знаете, что он даст вам большую часть того, что вам нужно, за правильную цену и сэкономит вам время, чтобы развить ее самостоятельно, главная проблема заключается в том, что вы вам нужно пройти несколько игровых движков (Ogre, Game Studio, Torque и т.д.), а затем сделать свой выбор на основе ограниченного опыта — прочитайте столько отзывов от случайных разработчиков, сколько сможете, прежде чем продолжить, и попытайтесь взять посмотрите на код, если вы намерены его изменить.

Вопрос конечно вечен, но.


Magikan © ( 2004-03-16 02:56 ) [1]


TButton © ( 2004-03-16 12:45 ) [2]

DirectX лучше работает под виндами
OGL одинаково криво работает на любой платформе, выбор за тобой.


hexone © ( 2004-03-16 13:30 ) [3]


> OGL одинаково криво работает на любой платформе,

.. если руки кривые.


WebError ( 2004-03-16 17:28 ) [4]

Смотря, что тебе надо, какие у тебя знания ООП (если никаких, то DX противопоказан!) OGL предполагает хорошее знание платформы на которой пишешь, но заточена под процеДуры, а вот DX — чистейший ООПс! COM — forever! Вообще-то что-то несложное, тогда выбирай OpenGL, подключи GL, GLU, GLAUX и работай себе на здоровье! 🙂


cyborg © ( 2004-03-16 19:35 ) [5]

Корректней вопрос звучать должен так: "Что лучше Direct3D или OpenGL?".
А в данном случае DirectX естественно лучше, так, как там много чего есть.


Mihey © ( 2004-03-16 20:16 ) [6]

А если корректно?


cyborg © ( 2004-03-16 21:30 ) [7]

А если корректно, то я не знаю.


Magikan © ( 2004-03-17 05:01 ) [8]

Кто там что про OGL заливает? Про Quake 3 забыли? После того, как Loki Entertaiment перенесла его на SDL (которая отлично работает совместно с OpenGL) — компилируется на любой платформе (windows, linux, FreeBSD, MacOS classic, MacOS X, BeOS, Solaris и пр.) без изменения кода. Быстродействие ничуть не хуже, чем в оригинале (по крайней мере в версии для Linux). А DirectX — это лишняя головная боль, особенно для начинающих геймеров. Не для игровой библиотеки была придумана COM-архитектура.


wiz ( 2004-03-17 15:05 ) [9]

а если немного перевести вопрос в другую плоскость:

Что работает быстрее Direct3D или OpenGL? (при одинаковых условиях нагрузки, одинаковом железе, одной винде и каких-то стандартных драйверах)

—————
PS: (off-topic) хочу поприветсвовать всех и извиниться за почти годовое отсутствие


hexone © ( 2004-03-17 16:11 ) [10]


> Что работает быстрее Direct3D или OpenGL? (при одинаковых
> условиях нагрузки, одинаковом железе, одной винде и каких-то
> стандартных драйверах)

На этот вопрос тебе могут ответить только в ATI или nVidia


wiz © ( 2004-03-17 20:34 ) [11]

hexone: неужели никто не проверял ручками (на своей машине)?

воспрос созник отсюда: я сам разобрался (и продолжаю разбираться) с OpenGL, поэтому использую его. Периодически слышу от обывателей заявления типа: "Зачем ты делаешь под oGL, ведь D3D быстрее и лучше!". Заявления эти при ближайшем рассмотрении оказываются голословными, но некий осадок на душе остаётся.


Magikan © ( 2004-03-18 04:16 ) [12]

Читайте также:  Ati radeon hd 5770 отзывы

Что быстрее, OpenGL или Direct3D ?
Если в OpenGL задать программный рендеринг сцены, а в DirectX — аппаратный, то Direct3D будет работать быстрее. Если наоборот, то и результат будет, очевидно, наоборот (только в последнее время одна мелкомягкая фирмочка отказалась продолжать поддержку программного рендеринга, из-за чего Direct3D выпадет в осадок). Если использовать и в OpenGL аппаратный и в DirectX тоже аппаратный рендеринг, то результат будет примерно одинаковый. Примерно — из-за того, что макрософт сдуру игровую библиотеку написала на COM-технологии, которая на заднем фоне создает шумы в производительности (точнее часть процессорного времени уходит на обработку вызовов интерфейсов, для удостоверения в этом более внимательно ознакомьтесь с самой технологией), что немного медленне OpenGL. Аппаратная поддержка железа что там, что там одинаковая (если драйверы установлены правильно), все новые возможности, которые появились в DirectX9, доступны в OpenGL через расширения. А если нет разницы (ну почти нет), зачем платить больше? Зачем изучать интерфейсы DirectX9, которые в DirectX10 будут другими?


NailMan © ( 2004-03-20 15:43 ) [13]

Magikan ©
Примерно — из-за того, что макрософт сдуру игровую библиотеку написала на COM-технологии, которая на заднем фоне создает шумы в производительности (точнее часть процессорного времени уходит на обработку вызовов интерфейсов, для удостоверения в этом более внимательно ознакомьтесь с самой технологией), что немного медленне OpenGL.
Что-то не сильно я заметил шума производительности.

COM D3D удобен и эффективен, в отличие от.

Аппаратная поддержка железа что там, что там одинаковая (если драйверы установлены правильно), все новые возможности, которые появились в DirectX9, доступны в OpenGL через расширения
Хех. молодой еще, зеленый(C) Кин-дза-дза.

OGL и D3D на одной и той же видеокарте идут по разному из-за того что вендор этой видеокарты отдал предпочтение(заточка дров) одному API.
У ATI это D3D, у nVidia это OGL.

С учетом того что игра пишется не под конкретное железо — надо вибирать компромисс.

А если нет разницы (ну почти нет), зачем платить больше?
В чем заключается платеж?

Зачем изучать интерфейсы DirectX9, которые в DirectX10 будут другими?
Что-то я не заметил особенно сильных отклонений в интерфейсах D3D при переписывании движка с D3D8 на D3D9. Ну изменил некоторые названия и имена структур — это практически все изменения.

Тем более я не думаю что будучи написав игру на D3D9 я буду ее переписывать заново на DX10 когда он появится. Тем более что появится он не раньше Лонгхорна, т.е. не ранее середины 2005г.


Magikan © ( 2004-03-24 03:38 ) [14]

NailMan ©
Насчет заточки драйверов — это ты зря. Производители одинаково поддерживают как OGL так и D3D. Иначе на играх бы писали — что эта игра для ATI Radeon, а эта игра для NVidia GeForce. Ты представляешь, как это было бы глупо. Приходишь в магазин и говоришь: "продайте мне видеокарту, чтобы я мог в Quake3 поиграть" или "мне подарили Warcraft III, а моя видеокарта его не держит" или еще тупее: "мне, пожалуйста, GeForce FX 5200, чтобы я мог в Quake3 погонять и ATI Radeon 9200, чтобы в Warcraft III c друзьями порубиться". Бывают игры заточенными под конкретную видеокарту (как Seriouse Sam или Unreal Turnament 2003), но никак ни дрова под игровой движок.


wiz © ( 2004-03-24 08:49 ) [15]

>Производители одинаково поддерживают как OGL так и D3D
Вот тут ты не совсем прав. Как минимум реализация openGL у каждого производителя своя (через свой набор расширений). А вот D3D (насколько я понимаю) — штука универсальная. Таким образом уже есть расхождения.

>Иначе на играх бы писали — что эта игра для.
. и зря не пишут. Хотя сейчас ситуация (похоже) выравнивается, но еще совсем недавно (2-3 года назад) игрушки вели себя очень по разному на nV и ATI.

я сам тогда только начинал использовать openGL и сильно удивился (и огорчился) в следующей ситуации:

а) написание и отладка проекта велась на компах с nVidia-картами (TNT2, GeForce-GTS, GeForce-2 MX, GeForce-2)
б) показ происходил у заказчика на машине с ATI FireGL 8800 (зверь а не карта, но ATI"шная)
в) Хотя различий (по картинке) не было на рабочих машинах, мы увидели совсем не то у заказчика.

Немного по другому работал AlphaBlending. Чуть-чуть по другому работал z-test (такое чувство, что округление по разному реализовано). Немного по другому выглядели материалы.

г) нас (программеров графики) спасло только то, что проект был не особо важный, а кроме того отсыл заказчику произошёл раньше установленного срока, так что у нас было время всё исправить.


suic >2004-03-24 09:25 ) [16]

>Производители одинаково поддерживают как OGL так и D3D

А ты попробуй поиграть в DroneZ на ATI видюхе, я пробовал на Radeon 9800Pro — не идёт. Зато на вшивой TNT абы как. И как после этого понимать этих конкурентов: берите берите ATI, да вы что берите Nvidia они круче. Вообщем одни вытесняют других с рынка любым всевозможным способом.


hexone © ( 2004-03-24 10:40 ) [17]


> Вообщем одни вытесняют других с рынка любым всевозможным
> способом.

Вот это очень даже может быть.


TButton © ( 2004-03-24 15:02 ) [18]

>.. если руки кривые.

а че ж у меня контра в OGL глючит? у кого руки корявые?


hexone © ( 2004-03-24 16:03 ) [19]


> а че ж у меня контра в OGL глючит? у кого руки корявые?

Зачем путать конкретную специфику твоей машины с руганью в сторону OpenGL. На OpenGL разрабатываются серьезные программы типа САПР как раз из-за того, что он продуманный и кроссплатформенный. Нужно конечно отметить, что там(GL) не очень удобно реализованы расширения, да они серьезным программам не очень-то и нужны. Игры прежде всего иллюзия реальности. Там(в САПР) не нужна реальность, там реальность не в визуализации а в расчетах и чертежах. А где нужна реальность там используется алгоритмы типа RayTracing, до которых, к сожалению, еще любой реализации DX и GL еще топать и топать. Резюмируя могу сказать: Выбор библиотеки зависит от задач, которые призвана решать твоя программа, а не от "что тебе приглянется на том и пиши". Любой задаче всегда предшествует анализ, в этот анализ и входит выбор библиотеки.


TButton © ( 2004-03-24 17:36 ) [20]

>Зачем путать конкретную специфику твоей машины с руганью в
>сторону OpenGL
и что мне теперь удавиться и не жить если у меня машина такая.

3ds MAX R4 тоже глючит, на OGL. viewport"ы постоянно замусориваются, зато на Direct3D все нормально (не то чтоб хорошо, но нормально). что еще раз подтверждает основную идею моего первого поста Direct3D будет работать (пусть не на 5+ и даже не на 4-, но) на любой машине (под виндами)


Magikan © ( 2004-03-25 03:31 ) [21]

😉
Да нравится вам пользоваться макрософтовскими библиотеками — пользуйтесь наздоровье 🙂 Все равно это неудобно 😉 и ненадолго B)


GrayFace © ( 2004-03-25 12:49 ) [22]

[20], 3ds MAX 6 глючит на Direct3D.
[21], неудобно — навеное, но ненадолго — это не так.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code