Кривая обучения в OpenGL против Direct3D + другие компоненты игры
Не начинать пламенную войну....
но я нахожусь в главе 4 суперпопулярности OpenGL, и организация книг НЕ полезна для новичка,
Я также провел небольшое исследование предыстории каждого API, но многие пальцы указывают на Direct3D, как на более простой API будущего, учитывая его способность реально развиваться, добавлять новые функции и реализовывать их.
В основном, хотя, мне интересно, есть ли у кого-то более крутая кривая обучения, так как я нахожу OpenGL довольно трудным для использования моей книги...
Должен ли я перейти на Direct3D, если его легче освоить, и, возможно, вернуться к OpenGL позже, если они начнут работать и снова вернутся к Direct3D?
Кстати, я собираюсь изучить этот материал в контексте изучения C++ в течение года и будущего программирования игр, поэтому мне также нужно будет выяснить, как настроить аудио, ai и т. д. позже......
Спасибо!! знак равно
2 ответа
Стоит ли переходить на Direct3D? Задайте себе следующие вопросы:
- Вы хотите заниматься разработкой только для Windows? [ДА НЕТ]
- Готовы ли вы тратить время на изучение нового дизайна API каждый раз, когда увеличивается основная версия API? [ДА НЕТ]
- Вы в порядке, если возможности нового поколения графических процессоров доступны вам только с некоторой большой задержкой до выпуска следующей основной версии API? [ДА НЕТ]
Если вы ответили на любой из вышеперечисленных вопросов ДА, то Direct3D является правильным выбором. В противном случае я рекомендую OpenGL:
- OpenGL доступен для всех основных операционных систем и платформ, а также для более неясных.
- Дизайн API OpenGL удивительно стабилен, основные принципы не изменились за десятилетие. Взгляните на игру с открытым исходным кодом Nexuiz Classic, которая в значительной степени основана на движке Darkplaces, который представляет собой пересмотр движка с открытым исходным кодом Quake2 (написан для OpenGL-1.1) и был обновлен для поддержки всех современных свистков и колокольчиков на основе шейдеров. рендеринг.
- Механизм расширения OpenGL позволяет производителям графических процессоров предоставлять доступ к возможностям новейших поколений на дату выпуска. С Direct3D вы вынуждены ждать, пока Microsoft выпустит следующую версию. Когда NVidia выпустила свою GeForce8800 в 2006 году, потребовалось полгода, чтобы Joe Average Developer смог написать код Direct3D для своих новых функций. Однако через расширения OpenGL он был немедленно доступен для программ OpenGL; Я помню день, когда я купил свой GeForce8800 (через 4 дня после официального релиза), встроил его в свою машину и в тот же вечер начал взламывать геометрические шейдеры.
Для меня это звучит так, словно у тебя большая часть задом наперед.
OpenGL определенно легче освоить, чем Direct3D - в частности, вы можете использовать немедленный режим для простых вещей, когда вам не очень важны рабочие характеристики, откладываете работу с буферами вершин и пиксельными буферами и так далее.
OpenGL имел существенный недостаток производительности по сравнению с Direct3D и относительно медленный прогресс в добавлении новых функций. Новое развитие было передано Хроносу некоторое время назад. Хотя есть некоторые противоречия по поводу некоторых шагов, предпринятых Khronos, они довольно хорошо справились с паритетом функций, и прошло несколько лет с тех пор, как я увидел какое-то реальное преимущество в производительности для Direct3D.