2008-09-24 5 views
23

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

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

(Конечно Direct3D есть окна только.)

+2

Это сумасшедший субъект. Слова и фразы, такие как «лучший» и «естественный выбор», не помогают. Если ваш вопрос состоит из нескольких вопросов, все субъективные («год рабочего стола Linux») также не помогают. Пересмотрите вопрос, чтобы быть более конкретным. – SCdF 2008-09-24 06:35:51

+1

ok Я попробую, ps. Рабочий стол Linux был шуткой. – 2008-09-24 18:05:54

+0

Ссылка на статью Тима Суини была отличной! http://arstechnica.com/articles/paedia/gpu-sweeney-interview.ars – bobobobo 2010-05-23 13:36:12

ответ

35

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

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

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

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

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

3

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

+0

Не менее важно, если вы в конечном итоге решите нацелить Unix и Mac, вы должны выбрать OpenGL, чтобы минимизировать конверсии, необходимые для их поддержки. – Guvante 2008-09-24 01:26:30

+0

@Guvante: Извините, но нет. Сведение к минимуму конверсий в данном бизнесе не является проблемой. Это все о надежности графических драйверов/времени, которое вы тратите на решение их проблем. – Stringer 2009-11-20 01:01:37

20

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

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

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

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

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

+1

Как вы оцениваете качество драйвера? Любые примеры? – 2009-03-13 12:39:01

+3

@Jon: Одна точка данных: ваш продукт будет использоваться миллионами людей. Сравните количество сбоев, которые попадают в DLL драйверов при использовании GL vs D3D. Другая точка данных: написать обходные пути для известных сломанных функций драйвера. Сравните количество обходных решений, необходимых для GL против D3D. – NeARAZ 2009-03-14 17:02:37

+3

@Jon: D3D имеет ссылочное устройство, GL не имеет. Справочное устройство позволяет проверить, есть ли у вас проблемы, на приложении или на стороне IHV. Это огромное преимущество, так как вы можете обнаружить проблемы ранее в этом процессе. – Stringer 2009-11-20 01:07:57

2

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

14

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

4

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

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

Direct3D (урожд Reality Lab) используется только быть библиотека :-) дерева сцены

Позор, что Direct3D Нераспределенная Режим не поставляется больше ...

1

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

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

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

Итак, если вы пишете приложение САПР, и вы не скрою своих клиентов «вы должны иметь видеокарту OpenGL complient», то ответ да.

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

3

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

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

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

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

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

  3. Тенденции будущего. С будущего поколением процессоров, таких как Льяно, Larrabee, Ферми и продуктов, которые будет следовать, это определенно стоит инвестировать R & D бюджеты о том, как программы и разрабатывать новые языки/Apis/рамки для тех будущих оборудований (в срок графических и неграфических задач).

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

 Смежные вопросы

  • Нет связанных вопросов^_^