Я понимаю, что следующие математические темы необходимы для программирования трехмерной графики. Я начал делать некоторые из них в моем курсе математики. Может ли кто-то указать мне в направлении ресурса, который объясняет, как они применяются? Какие графические / игровые проблемы они используют для решения?
- вектор математика
- Математическая математика
- кватернионы
- линейная алгебра
Насколько я вижу, это все линейные алгебраические / матричные темы. Есть ли какие-либо другие темы, требующиеся?
3d
mathematics
matrix
linear-algebra
quaternion
Кэтрин Рикс
источник
источник
Ответы:
Линейная алгебра является основной дисциплиной для программирования трехмерной графики просто потому, что это математический язык для описания пространственной геометрии. Остальные три темы - это просто подмножества линейной алгебры:
Что касается других важных разделов математики для программирования трехмерной графики, то я бы порекомендовал, что не получаю достаточно любви, это вычислительная геометрия. Многие естественные проблемы сводятся к темам в вычислительной геометрии:
После этого я бы рекомендовал изучить основные исчисления и, в частности, численные методы для дифференциальных уравнений; они менее относятся к трехмерной графике как таковой, чем к трехмерной физике, но в целом эти две темы довольно тесно связаны (даже для простых задач кинематики - например, для анимации персонажей и т. п.), и некоторые знания обоих будут существенно расширить ваши знания либо; Трудно, если не невозможно, работать с соответствующей физикой без тех же базовых знаний линейной алгебры, которые используются в графике, но в то же время наличие знаний по физике обеспечивает другую точку отсчета для понимания тем в графике.
источник
Вот отличное вступление http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-2/
источник
http://www.dickbaldwin.com/KjellTutorial/KjellVectorTutorialIndex.htm - довольно хорошее и понятное руководство по 2D / 3D векторной математике и ее приложениям для графического программирования.
источник
Если вы знакомы с декартовыми координатами, то применение указанных тем к компьютерной графике должно быть достаточно ясным. Есть такие учебные пособия для OpenGL , которые помогут прояснить применение математики для решения основных проблем отображения, например, как заставить каркасную модель вращаться. Статья в Википедии о перспективном рисовании может помочь с историческим прошлым.
Помимо этого есть много тем для отображения, которые выигрывают от математической формулировки. Например, трехмерные тела обычно представлены триангуляциями их поверхности. Как мы показываем только ту часть поверхности, которую «должен» увидеть наблюдатель (алгоритмы скрытой поверхности / линии)? Если объект должен освещаться от определенного источника / направления, как это взаимодействует с перспективой, чтобы дать убедительную визуализацию поверхности?
Помимо этого есть множество интересных тем для моделирования, таких как анимация тумана или пламени. Но преобразование координат, поскольку ваш список тем, кажется, сосредоточен, является основой всех последующих достижений.
источник
Практическая линейная алгебра и основы компьютерной графики - это две очень хорошие книги, которые будут охватывать темы, которые вы упоминаете (и их использование в компьютерной графике), если вы изучаете книги и тому подобное.
источник
Они не все обязательны. Векторная математика - это трехмерная графика, вы можете настроить геометрию, не зная тонкостей векторной математики, но такие вещи, как рельефные карты, станут очень сложными, и вы разберетесь с физикой.
Кватернионы просто предлагают другое описание для некоторых математик, это может быть неплохо, но это, безусловно, не нужно, поскольку более обычной математики достаточно для описания любого вычисления, которое вы можете сделать с кватернионами.
Математическая математика и линейная алгебра очень тесно связаны, в первую очередь они описывают линейные операции над множествами чисел. Но опять же, это просто еще один способ описания некоторых вещей, которые можно описать с помощью векторов и алгебры.
Я не знаю, считаете ли вы это частью математики, но тригонометрия, безусловно, должна также составить список.
источник