OpenGL или DirectX?
Я знаю, что это, вероятно, очень субъективный вопрос, но я просто хочу начать с того, который самый простой и быстрый для изучения, так что я могу как можно быстрее начать с небольшого моего проекта, маленькая 2D-игра, для начала, по крайней мере, с какой из них вы бы порекомендовали меня? И я использую С++
Ответы
Ответ 1
Первый вопрос: вы в Windows? Если нет, используйте OpenGL.
Если вы работаете в Windows, это сойдет до вкуса. API-интерфейсы разные, но требуемые концепции очень похожи для OpenGL и DirectX. Большинство вещей поддерживаются обоими, хотя они работают немного по-другому.
Microsoft предоставляет довольно много образцов и достойную структуру, которую вы можете использовать для DirectX (9 или 10), что упростит работу.
Если вы планируете использовать только Windows Vista/Win7, переход на DirectX 10 может облегчить жизнь. Многие неприятности в DX9 и ранее были удалены в DX10, и API немного чист.
Если говорить, если это для игры, я бы рекомендовал использовать механизм промежуточного программного обеспечения, например Ogre вместо того, чтобы писать непосредственно в DirectX OR OpenGL. Это сделает вашу жизнь намного проще, особенно во время обучения.
Ответ 2
Я не использовал DirectX, но OpenGL довольно прост и есть хорошие начальные уроки на NeHe. Кроме того, если вы даже хотите перейти на межплатформенную платформу, вам понадобится OpenGL.
Однако DirectX - это не просто графическая библиотека, вы также можете использовать ее для звука и т.д., Поэтому, возможно, стоит заглянуть в нее.
Ответ 3
Если это просто 2D, то, возможно, стоит подумать о SDL, который уже является кросс-платформой и кажется довольно легким для изучения, В сети много учебников, но один конкретный сайт, который я помню, Lazy Foo SDL Tutorials. Вы также можете смешивать OpenGL с SDL, есть также учебники для этого.
Если вы не хотите использовать SDL, а вы на окнах, я бы порекомендовал DirectX. Я действительно признаю, что выбор между ними в конечном итоге заканчивается пламенной войной в любом месте в Интернете, но я понимаю, что DirectX ориентирован на разработчиков игр, поэтому вы найдете множество библиотек, функций и классов, которые могут облегчить различные задания. С OpenGL у вас будет возможность писать код кросс-платформы, при условии, что вспомогательные функции, такие как загрузка изображений, также являются кросс-платформенными (для которых действительно существуют библиотеки с кросс-платформой).
Итак, моя нижняя строка: оба отлично, OpenGL дает вам кросс-платформенный код (если вы его пишете), а DirectX предоставляет вам больше инструментов и библиотек, ориентированных на развитие игр.
Ответ 4
Если все началось как можно быстрее, я бы рекомендовал OpenGL на графическом процессоре NVidia. Вы можете бросить на него что угодно, и он что-нибудь покажет. Однако, если вы хотите добиться достойной производительности при низких усилиях по программированию, я бы рекомендовал Direct3D. Есть слишком много способов сделать что-то в OpenGL, и новички наверняка обнаружат медленные пути сначала, так как они охвачены многими древними учебниками (см. NeHe). Кроме того, отладка приложений OpenGL является болезненной, хотя такие инструменты, как gDEBugger, могут помочь.
Ответ 5
Если у вас есть опыт работы с COM, и это не отразится на вашей голове, я бы порекомендовал DirectX только потому, что в SDK есть много хороших примеров/учебников прямо из коробки. Если вы предпочитаете больше программировать на C-стиле или путаетесь с COM-материалами, тогда я бы сказал OpenGL.
Ответ 6
Как отметили некоторые другие люди, если вы планируете переносить свою "Игру" на другие платформы, отличные от окон, лучше начать использовать 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, у вас нет выбора, так как есть так много тем, которые потребуют много времени для "Dig" и "Learn".