С чего начать обучение математике для программирования игр для новичка по математике? - PullRequest
8 голосов
/ 09 сентября 2010

Я не новичок в программировании, но я новичок в программировании игр.Я всегда мечтал создавать игры, и, поскольку мне сегодня 21 год, думаю, лучше начать сейчас, чем позже.

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

«Почему я делаю это и что именно это решает?»

С чего бы начать, если я хочу начать изучать математику для игрыпрограммирование?

Редактировать: Некоторые люди просят меня сказать, какую математику я ищу, но, по правде говоря, я даже не знаю этого.Я полный математик новичок.Я учился в Исчислении в Uni, но, как я уже сказал, я решил их, но не знал, почему и как.

Ответы [ 9 ]

12 голосов
/ 09 сентября 2010

Линейная алгебра и тригонометрия, вероятно, являются наиболее важными в графическом программировании. Это будет включать такие вещи, как матрицы / векторы, скалярное произведение и кватернионы. В области физики это будет механика и свет, которые используют триг. Кроме того, существуют библиотеки для решения самых сложных математических задач.

1 голос
/ 13 сентября 2010

Наиболее важной «продвинутой» математикой в ​​разработке игр являются матричные и векторные манипуляции. Они считаются частью линейной алгебры. Матрицы и векторы - это типы данных, используемые как в 2D, так и в 3D графике и физике. Матрицы обычно представляют масштаб, ориентацию и положение объекта. Векторы обычно представляют точку в пространстве или направление и величину в этом направлении.

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

Увы, мне трудно найти практическое преподавание математики в литературе. Чаще всего это не похоронено под слоями теории. Мне нравится, когда мне прямо говорят, что матрица 4 x 4 может хранить вектор положения и три вектора оси, которые представляют положение, ориентацию и масштаб объекта.

1 голос
/ 10 сентября 2010

Если вы хотите научить себя, как «понимать», что делать для решения математических задач, попробуйте эти 2 превосходные книги, которые потребуют только математических навыков в средней школе:

http://www.amazon.com/How-Solve-Aspect-Mathematical-Method/dp/4871878309/ref=sr_1_1?ie=UTF8&s=books&qid=1284140178&sr=8-1
http://www.amazon.com/Mathematical-Discovery-Understanding-Learning-Teaching/dp/4871878317/ref=sr_1_6?ie=UTF8&s=books&qid=1284140178&sr=8-6

1 голос
/ 09 сентября 2010

GameDev.net - хороший ресурс, он имеет форум по математике и физике и явно сосредоточен на разработке игр.

http://www.gamedev.net/community/forums/forum.asp?forum_id=20

1 голос
/ 09 сентября 2010

Не забудьте, если у вас есть конкретные вопросы по математике, к которым можно обратиться http://math.stackexchange.com!

Если вы обнаружите, что вам нужен определенный предмет, такой как линейная алгебра, Google "Открыть программу курса" + "Тема".Вы найдете, что MIT в Штатах отлично подходит для этого - они публикуют довольно много своего курса.Например: http://ocw.mit.edu/courses/#mathematics.

1 голос
/ 09 сентября 2010

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

0 голосов
/ 11 сентября 2010

Не покупайте книги, если можете помочь. Вместо этого скачивайте книги из сети. Если вам нужно купить (некоторые книги того стоят), покупайте подержанные (например, в abebooks). Учебная индустрия - афера.

  • С точки зрения математики, вам, по крайней мере, нужно понимание базовой геометрии и линейной алгебры.
  • Некоторое понимание исчисления может быть очень полезным.
  • Некоторая статистика не помешает.
  • Вышеуказанные четыре предмета обычно преподаются в течение первого года обучения в университете (то есть в Северной Америке). Они не сложные. Решительный человек, который не безнадежен в математике, может охватить основы евклидовой геометрии, линейной алгебры, исчисления и статистики в течение одного лета без излишних усилий (2-3 часа в день должны делать это).
  • Численный анализ очень важен для вычислений. Изучение численного анализа требует знания линейной алгебры.

Когда вы становитесь лучше в математике, вы автоматически становитесь лучше и в программировании.

Помимо математики, вы, возможно, захотите изучить некоторую физику - в частности, базовую механику.

Удачи и веселья!

0 голосов
/ 10 сентября 2010

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

Если вы можете сделать исчисление в любой степени, то это поможет. В другом ответе упоминаются линейная алгебра и тригонометрия, которые полезны ежедневно. Нет никакого способа сказать, что вам нужно знать, не зная, что вам нужно сделать, так что просто начните программировать и выясните, что вам нужно! Если вам нужна помощь по какому-то конкретному вопросу, задайте вопрос https://gamedev.stackexchange.com/. Действительно, в последнее время для решения нескольких вопросов требуется только тригонометрия.

0 голосов
/ 09 сентября 2010

Я думаю, что ответ, который дал большинство людей, то есть "Какая математика?" наиболее актуален.

Арс дигита прочитал серию лекций по дискретной математике: http://aduni.org/courses/discrete/

Или, может быть, вы ищете физику, а не математику для игры, если так, то недавно была опубликована книга под названием «Физика для программистов игр». Погугли это. Возможно, это не из печати, но вы все равно можете найти его в библиотеке.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...