OpenGL или DirectX? [закрытый]

БитТоррент . Это полностью поворачивает то, что ранее походило на очевидно неизменное правило о его голове - время, которое требуется для единственного человека для загрузки файла по Интернету, растет в пропорции к числу людей, загружающих его. Это также обращается к дефектам предыдущих одноранговых решений, особенно вокруг 'leeching', способом который является органическим к самому решению.

БитТоррент изящно поворачивает то, что обычно является недостатком - многие пользователи, пытающиеся загружать единственный файл одновременно - в преимущество, распределяя файл географически как естественную часть процесса загрузки. Его стратегия оптимизации использования пропускной способности между двумя коллегами препятствует вожделению как побочному эффекту - это на благо всех участников для осуществления регулировки.

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

14
задан Goz 6 August 2009 в 19:07
поделиться

6 ответов

Первый вопрос: у вас Windows? Если нет, используйте OpenGL.

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

Microsoft предоставляет довольно много примеров и достойную среду, которую вы можете использовать для DirectX (9 или 10), что может облегчить начало работы.

] При этом, если вы ориентируетесь только на Windows Vista / Win7, переход на DirectX 10 может облегчить жизнь. Многие неприятности в DX9 и ранее были удалены в DX10, а API стал немного более чистым.

При этом, если это для игры, я Я рекомендую использовать механизм промежуточного программного обеспечения, такой как Ogre , вместо того, чтобы писать непосредственно в DirectX ИЛИ OpenGL. Это сделает вашу жизнь намного проще, особенно во время учебы.

20
ответ дан 1 December 2019 в 06:59
поделиться

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

6
ответ дан 1 December 2019 в 06:59
поделиться

Если все дело в том, чтобы как можно быстрее начать работу, я бы порекомендовал OpenGL на графическом процессоре NVidia. Вы можете бросить в него что угодно, и он что-то отобразит. Однако, если вы хотите добиться достойной производительности при минимальных усилиях по программированию, я бы рекомендовал Direct3D. В OpenGL существует слишком много способов сделать что-то, и новички наверняка первыми обнаружат медленные пути, поскольку они описаны во многих древних руководствах (см. NeHe). Кроме того, отладка приложений OpenGL болезненна, хотя такие инструменты, как gDEBugger, могут помочь.

4
ответ дан 1 December 2019 в 06:59
поделиться

Как указали некоторые другие люди, если вы планируете портировать вашу «Игру» на другие платформы, отличные от Windows, вам лучше начать использовать OpenGL.

Если это простая 2D-игра, и вам не нужна поддержка 3D на данный момент, SDL будет лучшим выбором, позже вы можете объединить «SDL» и «OpenGL» вместе. (вы можете напрямую использовать openGL из SDL, у него даже есть собственный заголовок в SDL).

В то же время DirectX предлагает функции, которые ни OpenGL, ни SDL не могут предоставить вам. OpenGL сильно отстает от DirectX. [OpenGL 3.0 - это не более чем инкрементное обновление, API не сильно изменился с 2.x].

Так что, если вы планируете написать игру для Windows, просто используйте «DirectX», если не «OpenGL» и "Sdl".

Наконец, если вы не В поисках головной боли просто используйте GameEngine, например C4 Engine . Поверьте мне, когда вы выбираете 3D, у вас нет выбора, поскольку существует очень много тем, на то, чтобы «копать» и «изучать» потребуется много времени.

2
ответ дан 1 December 2019 в 06:59
поделиться

Если у вас есть некоторый опыт работы с COM, и это не вызывает у вас головной боли, я бы порекомендовал DirectX, просто потому, что SDK имеет много хороших примеров / руководств прямо из коробки. Если вам лучше больше нравится программирование в стиле C или вы не понимаете, что такое COM, то я бы сказал OpenGL.

3
ответ дан 1 December 2019 в 06:59
поделиться

Если это просто 2D, то, возможно, Возможно, стоит изучить SDL , который уже является кроссплатформенным и кажется довольно простым для изучения. В сети есть много руководств, но я помню один конкретный сайт Lazy Foo's SDL Tutorials . Вы также можете смешивать OpenGL с SDL, для этого также есть учебники.

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

Итак, мое дно строка: Оба в порядке, OpenGL дает вам кроссплатформенный код ( При условии, что вы его напишете ), а DirectX дает вам больше инструментов и библиотек, ориентированных на разработку игр.

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

Итак, мое дно строка: Оба в порядке, OpenGL дает вам кроссплатформенный код ( При условии, что вы его напишете ), а DirectX дает вам больше инструментов и библиотек, ориентированных на разработку игр.

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

Итак, мое дно строка: Оба в порядке, OpenGL дает вам кроссплатформенный код ( При условии, что вы его напишете ), а DirectX дает вам больше инструментов и библиотек, ориентированных на разработку игр.

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

Итак, мое дно строка: Оба в порядке, OpenGL дает вам кроссплатформенный код ( При условии, что вы его напишете ), а DirectX дает вам больше инструментов и библиотек, ориентированных на разработку игр.

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

Итак, мое дно строка: Оба в порядке, OpenGL дает вам кроссплатформенный код ( При условии, что вы его напишете ), а DirectX дает вам больше инструментов и библиотек, ориентированных на разработку игр.

5
ответ дан 1 December 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: