Публикуйте этот вопрос здесь, а не SO, потому что он имеет отношение к разработке игр.
Моя дилемма заключается в следующем: это мой летний отпуск после моего первого семестра CompSci, и я выучил достаточно C ++, чтобы начать работу с более сложными вещами.
Я пока не хочу начинать программирование игр, пока не научусь линейной алгебре, тригонометрии и т. Д. Однако я хочу знать основы, теорию и методы, используемые в программировании игр!
Я думал, что в библиотеке колледжа есть несколько приличных книг, но они ужасно устарели с книгами по игровому программированию, игровым движкам или игре / графике (тема здесь) с начала 90-х до 2002 года.
Зная нестабильное состояние компьютерных технологий, я понял, что получение знаний о передовых технологиях из десятилетней книги не очень хорошая идея. Амазонка сама не дает мне понять, какую книгу я хочу.
Чего я не хочу: зависимая от платформы книга. Я не собираюсь изучать OpenGL, Direct3D или какой-либо конкретный API. Я просто хочу знать такие вещи, как тесселяция, как GPU справляется с вещами, что происходит под капотом и какие существуют методы трассировки лучей и радиации. Основы, основные понятия - такие вещи.
Надеюсь это понятно! Книги, ресурсы все приветствуются. Хотя я предпочитаю книгу, а не веб-сайт!
Ответы:
Они ни в коем случае не являются «исчерпывающими» для игр, но, в частности, они являются хорошими книгами для компьютерной графики, так что начнем.
Основы компьютерной графики
Питер Ширли, Стив Маршнер
Amazon Link (третье издание) | Книжный сайт (второе издание)
(источник: images-amazon.com )
Эта книга охватывает тонну информации о многих областях компьютерной графики. Понятия «онлайн» (например, в режиме реального времени), а также «офлайн» (например, глобальное освещение) охватывают такие вопросы, как математика, затенение, графический конвейер, текстуры, структуры данных, теория света и цвета, концепции сетки и т. Д. Это определенно не ориентировано конкретно на игры, а скорее на концепцию компьютерной графики в целом. Книга написана не на каком-то конкретном языке программирования, а на языке математики.
Рендеринг в реальном времени
Томас Акенин-Моллер, Эрик Хейнс, Нати Хоффман
Amazon Link (третье издание) | Книжный сайт (третье издание)
(источник: images-amazon.com )
Эта книга ориентирована в первую очередь на "онлайн" (в режиме реального времени) графические методы. Он охватывает графический конвейер и связанную с ним математику, затенение и текстурирование, освещение, эффекты экранного пространства, NPR, сетки и кривые, а также некоторые методы ускорения. Глава, посвященная методам тестирования пересечений, стоит одной только книги, так как она является фантастическим справочником для тестирования коллизий между практически любым типом ограничивающего тома, который вы когда-либо захотите использовать. Здесь обсуждаются шейдеры, где они вписываются в конвейер, и для чего они могут быть использованы (что является важным знанием в современной графической работе), но вы, конечно, не могли изучить шейдерное программирование на любом языке из этой книги. Это общий обзор методов в реальном времени, а не книга по программированию. Опять же, язык, используемый в этой книге - математика.
Архитектура игрового движка
Джейсон Грегори
Amazon Link (первое издание) | Книжный сайт (первое издание)
(источник: gameenginebook.com )
Я бы добавил эту книгу в ваш список, если вы заинтересованы в графике, особенно в том, что касается игр. Грегори рассматривает системы больших игровых движков с высоты 10 000 футов, иногда давая вам примеры кода на C ++, чтобы проиллюстрировать свои идеи, но в основном это обзор того, что представляют собой основные подсистемы движка, как они работают, как они сочетаются друг с другом, и что вы следует подумать при проектировании / строительстве их. Рассматриваются 3D математика и C ++ (особое внимание уделяется программированию игр), а также менеджеры ресурсов, циклы симуляции, устройства ввода, методы отладки, движки рендеринга и анимации, столкновения и динамика твердого тела, а также системы игрового процесса. Единственные две основные подсистемы движка, отсутствующие в этой книге, - это аудио и сетевое взаимодействие, что честно, если не упомянуть об этом, поскольку книга уже занимает более 800 страниц.
источник
Если вы заинтересованы в путешествии в обе стороны по всем вопросам рендеринга, то в этом случае лучшим вариантом будет рендеринг в реальном времени .
С точки зрения математики, есть несколько хороших вводных книг, от более нежного 3D Math Primer для графики и разработки игр до более широкой математики для 3D-программирования игр и компьютерной графики .
Я также настоятельно рекомендую Game Engine Architecture, если вы заинтересованы в этом маршруте; это не всесторонняя книга по этому вопросу (и не может быть), но это прочная основа для широкого круга тем. Для начинающего я бы посчитал это бесценным.
источник