Подтвердить что ты не робот

OpenGL по-прежнему лучше Direct3D для не-игр?

Стандартная модель заключается в том, что OpenGL предназначен для профессиональных приложений (САПР) и Direct3D для игр.

С поражением openGL 3.0, openGl по-прежнему остается естественным выбором для технических 3D-приложений (cad/GIS)?
Существуют ли библиотеки сценариев для Direct3D?

(Конечно, Direct3D - это только окна.)

4b9b3361

Ответ 1

D3D заставляет вас платить налог на стратегию Microsoft. То есть D3D обслуживает двух мастеров. Один дает вам функции и производительность. Другой - обеспечить блокировку других продуктов MS и платформы Windows в целом. Это имеет некоторые последствия для вас:

  • Приложение D3D не будет работать ни на чем, кроме Windows (включая Xbox). Может быть, вы не думаете, что это важно сейчас. Но если, по дороге, вы хотите работать на Mac, Linux, PS3, будущих консолях и т.д., Вы можете быть рады, что выбрали независимый от платформы выбор.

  • MS может принимать некоторые произвольные решения. Будет ли следующая версия D3D работать только на ОС, которая требует нового оборудования, дорого, и многие люди не хотят обновляться? Будут ли они делать какое-то другое будущее решение, с которым вы не согласны?

  • Исторически OpenGL привел D3D к быстрой экспозиции новых функций HW. Это связано с тем, что в стандарте для продавцов существует механизм добавления своих собственных расширений, и для этих расширений в конечном итоге сворачиваются в основную спецификацию. D3D - это то, что MS хочет, чтобы это было, с уверенностью от поставщиков, но MS получает право вето. Вы можете легко оказаться в ситуации, например, с Vista, где MS решила не открывать новые функции HW для старого DX и только сделать новый DX доступным для Vista. Это была настоящая головная боль для разработчиков игр.

Итак, вот в чем причина того, почему "профессиональное приложение" (САПР, анимация, научная визуализация, ГИС и т.д.) будет способствовать использованию OGL - такие приложения, которые хотят быть стабильными на протяжении многих лет, нуждаются в постоянном обслуживании и улучшения, и хотят работать на многих платформах. Это в отличие от игр, которые довольно часто находятся только на одной платформе, будут выпущены, но в целом не "поддерживаются" (вероятно, не будет 2.0, обновление для другой ОС через три года, не нужно поддерживать старше HW и т.д.). Игры требуют максимальной производительности и должны работать только на короткое время и на фиксированном количестве платформ. Если им все равно нужно настроить таргетинг на Windows, а D3D - немного быстрее, это может быть правильным выбором, поскольку негативные последствия D3D не повредят им, как это было бы для приложения САПР, скажем.

Ответ 2

Как всегда, это зависит от вашей ситуации.

По моему опыту, в настоящее время (2008) качество драйверов OpenGL в Windows значительно хуже, чем качество драйвера Direct3D. Если ваша ситуация такова, что вы не можете разумно потребовать от своих клиентов всегда иметь обновленные драйверы или сказать им, чтобы они изменили свои графические карты на те, у которых есть лучшие драйверы OpenGL, тогда OpenGL - довольно плохой выбор. В этом случае я бы пошел на D3D-рендеринг в Windows и рендеринг OpenGL на OS X/Linux (если вам нужно поддерживать эти платформы, то есть).

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

Конечно, есть некоторые (конкретные) ситуации, когда D3D просто не имеет необходимых функций, например. квад-буферизованный обобщенный выход; или поддержка шейдеров геометрии в Windows XP.

Короче: если вам нужны лучшие драйверы в Windows, используйте D3D. Если вам не важно качество драйвера или нужны функции, которые находятся в OpenGL, но не в D3D, используйте OpenGL.

Ответ 3

Возможно, вам стоит попробовать слой абстракции, например OGRE, который позволяет переключаться между DirectX и OpenGL без необходимости переписывать что-нибудь? Он также добавляет много функциональности и не ориентирован на игры, но довольно общий.

Ответ 4

Это не отвечает прямо на ваш вопрос (извините), но я был одним из первых парней, работающих над Direct3D и хехе:

Существуют ли библиотеки сценографов для Direct3D?

Direct3D (Nee Reality Lab) используется просто как библиотека сценографа: -)

Позор, что Direct3D Retained Mode больше не отправлен...

Ответ 5

Direct3D доступен только для Windows и XBox. Если вы планируете нацеливать Unix или Mac, в дополнение к Windows, OpenGL - хороший выбор.

Ответ 6

Для меня, говорящего как графический программист в большой компании САПР, в настоящее время существуют три вещи, которые удерживают OpenGL от отказа в пользу Direct3D (10/11) для существующих приложений CAD/DCC:

  • Наследство. Большинство программных продуктов для САПР более или менее трудны Концепции OpenGL. Переписывание всего вокруг философии D3D не всегда управляемый (технический разговор и в зависимости от способности/готовности компания, чтобы бросить в нее ресурсы).

    Во-вторых, он может иметь отрицательный если что-то пойдет не так (функциональная речь и/или и компания просто не рискует отсрочить крупный выпуск из-за переключения API и архитектуры.

  • Человечки. Народы в тех отраслях старого мальчика довольно консервативны. Они предпочитают тратить деньги/время на IHV относительно всего драйвера OpenGL проблемы, которые они могут иметь или просто не будут рекомендовать использовать графику из определенного IHV (например, Intel или ATI).

    Кроме того, я считаю, что клиенты автомобильной/аэрокосмической промышленности как Boeing, Airbus, TMC, BMW и т.д. не важно, что большая часть Quadros только рабочая станция. аппаратные средства по-прежнему дешево в отношении программного обеспечения цены на лицензии.

  • Будущие тенденции. С будущим таких как Llano, Larrabee, Fermi и продукты, которые будет следовать, это определенно стоит инвестировать бюджеты R & D в программы и разработать новые языки/apis/рамки для этих будущих аппаратных средств (в графики, а также неграфические задачи).

    Индустрия САПР имеет огромный и не будет двигаться, если не для действительно разрушительной технологии. Таким образом, D3D может просто приходите немного поздно для больших игроков в САПР (за исключением Autodesk, конечно, это частный случай).

Ответ 7

Не ответ как таковой, но интересно отметить, что последние версии AutoCAD дают вам выбор между использованием OpenGL или Direct3D драйверов в настройке "3dconfig". По сути, AutoCAD - это приложение для Windows, поэтому для них было целесообразно (наконец) поддерживать Direct3D. Для получения дополнительной информации см. Стр. 15 этот документ от AutoDesk.

Ответ 8

Ответ, который каждый хочет поверить, - ДА, но реальный ответ - это зависит.

Около 50% всех аппаратных средств не будет запускать OpenGL на любой разумный уровень. Чтобы увидеть пример этого, прочитайте FAQ для Sketchup Google, который использует OpenGL

Производительность SketchUp сильно зависит от драйвера графической карты и способности поддерживать OpenGL 1.5 или выше. Исторически сложилось так, что люди видели проблемы с картами ATI Radeon и картами на базе Intel с SketchUp. В настоящее время мы не рекомендуем использовать эти видеокарты с SketchUp. (Требования к программному обеспечению для Google Sketchup

Итак, если вы пишете приложение САПР, и вы не возражаете сказать своим клиентам, "у вас должна быть открытая видеокарта с OpenGL", тогда ответ "да".

Если вместо этого вы создаете приложение для конечного пользователя (например, Google Планета Земля), тогда грустный ответ - вам нужно будет написать версию D3D и GL вашего приложения, если вы хотите достичь всего рынка.