Об ИТ из Канады

Блог Михаила Флёнова - программист, блогер, автор нескольких скандальных книг какими-то глазами...

Искусство программирования игр на С++

Описаны современные технологии программирования 3D игр, а также некоторые решения типичных проблем, с которыми может столкнуться программист при их разработке. В качестве практических примеров на протяжении всей книги рассматривается процесс создания простого движка игры, который использует все описываемые технологии: вершинные и пиксельные шейдеры, скелетную и вершинную анимацию, а также компоненты DirectMusic, DirectSound и DirectInput, входящие в библиотеку DirectX. Программный код, приведенный в книге, легко адаптировать и превратить в полноценную игру. Описываемый движок очень прост, но универсален и позволяет создавать игры любого жанра. На компактдиске к книге содержатся листинги примеров и дополнительная информация по DirectX.


Оглавление Предисловие 6
О чем эта книга 7
Что нужно знать 9
Что не вошло в книгу 9
Благодарности 9
Структура книги 10

Глава 1. Введение в программирование игр

12
1.1. Подготовка к созданию приложения 12
1.2. Скелет приложения 15
1.3. Инициализация Direct3D 20
1.4. Функция формирования сцены 23
1.5. Функция загрузки сетки 24
1.6. Пример загрузки сетки 26
1.7. Моделирование 29
1.8. Шейдеры 32
1.8.1. Простейший пример шейдеров 36
1.8.2. Использование вершинного шейдера 41
1.8.3. Пиксельный шейдер 46

Глава 2. Разработка движка

52
2.1. Структура движка 53
2.2. Двигатель объекта 54
2.3. Двигатель игры 62
2.4. Запуск движка 68
2.5. Тени 72
2.6. Множество источников освещения 83

Глава 3. Скелетная анимация

86
3.1. Что такое скелет 87
3.2. Формат хранения сетки 89
3.3. Основы программирования скелетов 95
3.4. Загрузка сетки и скелета из X-файла 98
3.5. Разбор объектов 103
3.6. Загрузка сетки 106
3.7. Загрузка дочерних элементов 109
3.8. Поиск фрейма 110
3.9. Обновление сетки 112
3.10. Обновление сетки 113
3.11. Анимация скелета 116
3.12. Анимация из X-файла 121
3.13. Загрузка анимации из X-файла 123
3.13.1. Необходимые классы 124
3.13.2. Анализ файла 125
3.13.3. Анализ блока анимации 126
3.13.4. Анализ ключа 127
3.14. Использование анимации 129

Глава 4. Войдите

132
4.1. Введение в DirectInput 132
4.2. Класс для входа 134
4.3. Реализация класса ввода 137
4.4. Перечисление устройств 141
4.5. Опрос состояния действий 145
4.6. Использование класса клавиатуры 149

Глава 5. "Фейсом об тейбл"

154
5.1. Алгоритмы обнаружения 154
5.1.1. Точка против плоскости 155
5.1.2. Точка против куба 155
5.1.3. Точка против сферы 156
5.1.4. Сфера против сферы 157
5.2. Столкновения в играх 157
5.3. Пример реализации коллизий 160
5.4. Ниже плинтуса 165
5.5. Напутствие 169

Глава 6. Вершинная анимация

170
6.1. Теория 170
6.2. Загрузка ключа 175
6.3. Отображение сетки 176
6.4. Использование шейдера 178
6.5. Множественность кадров 182
6.6. Практика использования 187

Глава 7. Программирование звука

189
7.1. Введение в звук 189
7.1.1. IDirectMusicLoader 191
7.1.2. IDirectMusicPerformance 193
7.1.3. IDirectMusicSegment8 194
7.2. Воспроизведение 194
7.3. Завершение воспроизведения 199
7.4. Погружение в 3D 199
7.5. Контроль над 3D 206
7.6. Мультизвук 207
7.7. Управление параметрами 208
7.8. Резюме 209

Глава 8. Игровые эффекты

210
8.1. Обман зрения 210
8.2. Видео 213
8.2.1. База для разработки фильтра 214
8.2.2. Разработка фильтра 216
8.2.3. Подтверждение типов медиаданных 219
8.2.4. Получение кадра 221
8.2.5. Загрузка видео и использование фильтра 223
8.2.6. Компиляция 227
8.3. Мелочи жизни 228
8.4. Не все золото, что блестит 230
8.5. Искусственный интеллект 235
8.6. Оптимизация графики 238
Заключение 251
Приложение. Описание компакт-диска 253
Список литературы 254
Предметный указатель 255
4 Оглавление 5 Оглавление

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Внимание!

А ты уже читал мою последнюю книгу о больших сайтах и приложениях? Узнай, что это такое здесь

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне