Начало 3D программирования / OpenGL - PullRequest
5 голосов
/ 03 мая 2011

Я довольно хорошо знаком с C / C ++ / java, но я в основном только когда-либо занимался программированием командной строки (за исключением GUI в java).

Я действительно заинтересован в 3D-программировании, но проблема, с которой я сталкиваюсь, заключается в том, что я так мало знаю, что даже не знаю, с чего начать, поэтому у меня возникают трудности с поиском указанных ресурсов.

Я надеялся, что кто-то может указать мне правильное направление в отношении некоторых ресурсов / учебных пособий для начала.

Я понимаю, что две большие платформы - OpenGL и Direct3d. Мои вопросы, что было бы «лучше» выучить?

Изначально я начал с небольшого OpenGl с нескольких руководств по http://nehe.gamedev.net, но позже я обнаружил, что большинство вещей там устарело / плохой стиль.

Затем я узнал, что самая последняя версия OpenGL - 4.x, и моя едва годовая карта VG поддерживает только OpenGL 2.x (HD 4890).

Я хотел бы узнать, как в основном "пройтись" по какой-то трехмерной среде, например, лабиринт.

Ответы [ 5 ]

1 голос
/ 20 сентября 2012

OpenGL и DirectX имеют много общих концепций, хотя если вы хотите быть кроссплатформенным, то OpenGL, безусловно, является лучшим выбором.Особенно, если вы хотите использовать новые платформы, такие как Android или WebGL.

Возможно, вам будет проще начать с готового 3D-движка, чем начинать с «сырого» OpenGL.Некоторые варианты для начала работы:

  • Если у вас есть опыт работы с Java, неплохо было бы проверить jMonkeyEngine .Это полноценный игровой движок OpenGL (использует LWJGL под капотом, поддерживает физику пули, архитектуру шейдеров, полный SDK и т. Д.) И поставляется с хорошим примером кода.
  • Что касается C ++, я слышал хорошие вещио Ogre3D и Irrlicht в прошлом.
  • В Википедии есть большой список игровых движков
1 голос
/ 24 мая 2011

Если вы больше интересуетесь 3D-программированием, а не базовым OpenGL / DirectX, я бы начал использовать какой-то фреймворк или игровой движок, например. XNA, так что вы не беспокоитесь (так сильно) о вещах низкого уровня. Однако, если вы хотите изучать OpenGL или DirectX, я бы начал с 2D, потому что он все равно научит вас API, но это будет проще (потому что, опять же, вам не придется иметь дело и с 3D, и с API одновременно ), хотя с этим можно было бы покончить, если вы просто делаете простую игру-лабиринт (как вы говорите).

Для современного OpenGL его охватывает новейшая SuperBible; http://www.arcsynthesis.org/gltut/ покрывает это; и http://www.swiftless.com/opengltuts/opengl4tuts.html также покрывает его.

Чтобы ответить, лучше ли OpenGL или DirectX, выберите последний, если вас интересует какой-либо из XNA / Xbox / Windows Phone или только он, и первый, если вы используете Linux / хотите писать кроссплатформенные игры. Я думаю, что новые версии OpenGL в любом случае похожи на DirectX.

https://gamedev.stackexchange.com/ может вам помочь; Есть много вопросов, направленных на начинающих; см https://gamedev.stackexchange.com/search?q=beginner. http://www.gamasutra.com/blogs/LewisPulsipher/20110516/7453/So_Youre_Going_To_Make_A_Game_For_The_Very_First_Time.php также дает несколько хороших советов (правда, для игр, а не для 3D-программирования)

1 голос
/ 03 мая 2011

Лично я не работал с OpenGL, и я работал только с DirectX через XNA, но насколько я знаю, OpenGL несколько проще, чем DirectX (не говоря уже о кроссплатформенности), так чтоможет быть, лучше начать.Вам не нужно беспокоиться о многих вещах, таких как создание текстур (например, с Maya) в специальном формате;Вы можете просто использовать файл JPEG или что-то еще, чтобы заставить его работать.Я слышал, что Java Monkey Engine хорош.

Если вы используете Windows и кросс-совместимость не является проблемой, обязательно попробуйте Microsoft XNA Game Studio, это отлично дляНачало программирования игры - быстро, но легко и мощно.(Вы должны изучить C #, но это должно быть легко, так как у вас более чем достаточно опыта.)

0 голосов
/ 24 мая 2011

This: http://www.amazon.com/Introduction-Game-Programming-Direct-9-0c/dp/1598220160 - отличная книга для изучения "современного" (он же шейдерного) графического программирования с помощью DirectX.Есть также более новая версия DX10, которая, я уверен, также хороша, но я на самом деле не смотрел на нее.

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

0 голосов
/ 03 мая 2011

Я бы действительно начал с XNA.Уже есть несколько хороших 3D-библиотек и учебных пособий.

например http://msdn.microsoft.com/en-us/library/bb197293%28v=xnagamestudio.31%29.aspx http://www.nfostergames.com/XNAQuickStartEngineWalkthrough.htm

И пример библиотеки:

http://quickstartengine.codeplex.com/

...