Введение в программирование трехмерных игр с DirectX 9.0

Free Download

Authors:

ISBN: 1-55622-922-4

Size: 6 MB (6126447 bytes)

Pages: 439/439

File format:

Language:

Publishing Year:

Category: Tags: , ,

Фрэнк Д. Луна1-55622-922-4

Книга ?Введение в программирование трехмерных игр с DirectX 9.0? представляет собой введение в программирование интерактивной трехмерной компьютерной графики с использованием DirectX 9.0, в котором основное внимание уделяется разработке игр. Книга начинается с исследования необходимых математических инструментов и базовых концепций трехмерной графики. Другие темы охватывают как выполнение в Direct3D базовых операций, таких как рисование графических примитивов, освещение, наложение текстур, альфа-смешивание и работу с трафаретами, так и использование Direct3D для реализации техник, необходимых в играх. Главы посвященные вершинным и пиксельным шейдерам включают описание каркасов эффектов и нового высокоуровневого языка программирования шейдеров (HLSL).

Это сделанный мной полный перевод на русский язык. Ранее публиковалась новость с этой же книгой, но на английском языке.

Английский вариант здесь:
Introduction to 3D Game Programming with DirectX 9.0


Table of contents :
Фрэнк Д. Луна……Page 3
Оглавление……Page 5
Благодарности……Page 15
Введение……Page 17
Использование документации и примеров из DirectX SDK……Page 24
Соглашения об оформлении кода……Page 25
Примеры программ и дополнительная поддержка……Page 26
Вычисление модуля вектора……Page 32
Нормализация вектора……Page 33
Сложение векторов……Page 34
Умножение вектора на скаляр……Page 35
Скалярное произведение векторов……Page 36
Векторное произведение……Page 37
Равенство, умножение матрицы на скаляр и сложение матриц……Page 39
Умножение……Page 40
Единичная матрица……Page 41
Транспонирование матриц……Page 42
Матрицы в библиотеке D3DX……Page 43
Основные преобразования……Page 46
Матрица перемещения……Page 47
Матрицы вращения……Page 49
Матрица масштабирования……Page 50
Комбинирование преобразований……Page 51
Некоторые функции для преобразования векторов……Page 53
D3DXPLANE……Page 54
Взаимное расположение точки и плоскости……Page 55
Создание плоскостей……Page 56
Преобразование плоскости……Page 57
Точка плоскости, ближайшая к заданной……Page 58
Лучи……Page 59
Пересечение луча и плоскости……Page 60
Глава 1 Инициализация Direct3D……Page 65
1.2 COM……Page 67
1.3.1 Поверхности……Page 68
1.3.3 Формат пикселей……Page 70
1.3.4 Пул памяти……Page 71
1.3.5 Цепочка обмена и переключение страниц……Page 72
1.3.6 Буфер глубины……Page 73
1.3.7 Обработка вершин……Page 74
1.3.8 Возможности устройств……Page 75
1.4.1 Запрос интерфейса IDirect3D9……Page 76
1.4.2 Проверка поддержки аппаратной обработки вершин……Page 77
1.4.3 Заполнение структуры D3DPRESENT_PARAMETERS……Page 79
1.4.4 Создание интерфейса IDirect3DDevice9……Page 81
1.5 Пример приложения: инициализация Direct3D……Page 82
1.5.1 Файлы d3dUtility.h/cpp……Page 83
1.5.3 Приложение D3D Init……Page 85
Глава 2 Конвейер визуализации……Page 91
2.1.1 Форматы вершин……Page 93
2.1.3 Индексы……Page 94
2.3.2 Мировое пространство……Page 97
2.3.3 Пространство вида……Page 99
2.3.4 Удаление невидимых поверхностей……Page 100
2.3.7 Проекция……Page 102
2.3.8 Преобразование порта просмотра……Page 104
2.3.9 Растеризация……Page 105
Глава 3 Рисование в Direct3D……Page 107
3.1.1 Создание буферов вершин и индексов……Page 108
3.1.2 Доступ к памяти буфера……Page 110
3.1.3 Получение информации о буфере……Page 112
3.4.2 IDirect3DDevice9::DrawIndexedPrimitive……Page 115
3.4.3 Начало и завершение сцены……Page 117
3.6 Примеры приложений: треугольники, кубы, чайники, D3DXCreate*……Page 119
Глава 4 Цвет……Page 125
4.4 Пример приложения: цветные треугольники……Page 130
Глава 5 Освещение……Page 133
5.5 Пример приложения: освещенная пирамида……Page 143
Глава 6 Текстурирование……Page 147
6.2 Создание текстур и разрешение текстурирования……Page 149
6.4.1 Фильтр детализации текстур……Page 152
6.4.2 Использование детализируемых текстур в Direct3D……Page 153
6.6 Пример приложения: текстурированный квадрат……Page 155
Глава 7 Смешивание……Page 159
7.3.1 Альфа-канал……Page 163
7.4 Создание альфа-канала с помощью утилиты DirectX Texture Tool……Page 164
7.5 Пример приложения: прозрачный чайник……Page 166
Глава 8 Трафареты……Page 171
8.1.2 Проверка трафарета……Page 174
8.1.3.3 Значение трафарета……Page 175
8.1.4 Обновление буфера трафарета……Page 176
8.2.1 Математика отражений……Page 178
8.2.2 Обзор реализации отражений……Page 180
8.2.3 Код и комментарии……Page 181
8.2.3.1 Часть I……Page 182
8.2.3.3 Часть III……Page 183
8.2.3.5 Часть V……Page 184
8.3 Пример приложения: плоская тень……Page 186
8.3.1 Тени от параллельного источника света……Page 187
8.3.3 Матрица тени……Page 188
8.3.4 Использование буфера трафарета для предотвращения двойного смешивания……Page 189
8.3.5 Код и комментарии……Page 190
Часть III Применение Direct3D……Page 193
Глава 9 Шрифты……Page 195
9.1.2 Рисование текста……Page 196
9.1.3 Вычисление частоты кадров……Page 197
9.2.1 Создание экземпляра CD3DFont……Page 198
9.2.3 Очистка……Page 199
Глава 10 Сетки: часть I……Page 203
10.5 Таблица атрибутов……Page 209
10.6 Данные о смежности……Page 211
10.8 Создание сетки (D3DXCreateMeshFVF)……Page 214
10.9 Пример приложения: создание и визуализация сетки……Page 215
Глава 11 Сетки: часть II……Page 223
11.2 X-файлы……Page 224
11.2.1 Загрузка X-файлов……Page 225
11.2.2 Материалы в X-файле……Page 226
11.2.3 Пример приложения: загрузка X-файла……Page 227
11.2.4 Генерация нормалей вершин……Page 230
11.3 Прогрессивные сетки……Page 231
11.3.1 Создание прогессивной сетки……Page 232
11.3.2 Веса атрибутов вершин……Page 233
11.3.3 Методы ID3DXPMesh……Page 234
11.3.4 Пример приложения: прогрессивная сетка……Page 235
11.4.1 Новые константы……Page 240
11.4.2 Типы ограничивающих объемов……Page 241
11.4.3 Пример приложения: ограничивающие объемы……Page 242
11.5 Итоги……Page 244
Глава 12 Построение гибкого класса камеры……Page 245
12.2.1 Вычисление матрицы вида……Page 248
12.2.1.2. Часть 2: Вращение……Page 249
12.2.1.3. Комбинирование обеих частей……Page 250
12.2.2 Вращение относительно произвольной оси……Page 251
12.2.3 Наклон, рыскание и вращение……Page 252
12.2.4 Ходьба, сдвиг и полет……Page 254
12.3 Пример приложения: камера……Page 255
Глава 13 Основы визуализации ландшафтов……Page 259
13.1.1 Создание карты высот……Page 261
13.1.2 Загрузка файла RAW……Page 262
13.1.3 Досуп к карте высот и ее модификация……Page 263
13.2.1 Вычисление вершин……Page 265
13.2.2 Вычисление индексов — определение треугольников……Page 268
13.3 Текстурирование……Page 269
13.3.1 Процедурный подход……Page 270
13.4.1 Обзор……Page 273
13.4.2 Вычисление затенения квадрата……Page 274
13.4.3 Затенение ландшафта……Page 275
13.5 «Ходьба» по ландшафту……Page 276
13.7 Возможные усовершенствования……Page 282
Глава 14 Системы частиц……Page 285
14.1.1 Формат структуры……Page 286
14.1.2 Режимы визуализации точечных спрайтов……Page 287
14.1.3 Частицы и их атрибуты……Page 289
14.2.1 Рисование системы частиц……Page 295
14.3 Примеры систем частиц: снег, фейерверк, след снаряда……Page 300
14.3.1 Пример приложения: снег……Page 301
14.3.2 Пример приложения: фейерверк……Page 303
14.3.3 Пример приложения: след снаряда……Page 306
14.4 Итоги……Page 307
Глава 15 Выбор объектов……Page 309
15.1 Преобразование из экранного пространства в окно проекции……Page 312
15.2 Вычисление луча выбора……Page 313
15.3 Преобразование лучей……Page 314
15.4 Пересечение луча и объекта……Page 315
15.5 Пример приложения: выбор объекта……Page 317
15.6 Итоги……Page 318
Часть IV Шейдеры и эффекты……Page 319
Глава 16 Введение в высокоуровневый язык шейдеров……Page 321
16.1 Пишем шейдер на HLSL……Page 323
16.1.1 Глобальные переменные……Page 324
16.1.2 Входная и выходная структуры……Page 325
16.1.3 Точка входа……Page 326
16.2.1.1. Получение дескриптора константы……Page 327
16.2.1.2. Установка констант……Page 328
16.2.2 Компиляция HLSL-шейдера……Page 331
16.3 Типы переменных……Page 333
16.3.2 Векторные типы……Page 334
16.3.3 Матричные типы……Page 335
16.3.6 Ключевое слово typedef……Page 337
16.4.1 Ключевые слова……Page 338
16.4.2 Поток выполнения программы……Page 339
16.5 Операторы……Page 340
16.6 Определяемые пользователем функции……Page 342
16.7 Встроенные функции……Page 344
16.8 Итоги……Page 346
Глава 17 Знакомство с вершинными шейдерами……Page 347
17.1.1 Описание объявления вершин……Page 349
17.1.2 Создание объявления вершин……Page 351
17.2 Использование данных вершин……Page 352
17.3.1 Написание и компиляция вершинного шейдера……Page 354
17.3.3 Установка вершинного шейдера……Page 355
17.4 Пример приложения: рассеянный свет……Page 356
17.5 Пример приложения: мультипликационная визуализация……Page 362
17.5.1 Мультипликационное затенение……Page 363
17.5.2 Код вершинного шейдера для мультипликационного затенения……Page 365
17.5.3.1. Представление краев……Page 367
17.5.3.2. Проверка для краев силуэта……Page 368
17.5.4 Код вершинного шейдера обводки силуэта……Page 370
17.6 Итоги……Page 372
Глава 18 Знакомство с пиксельными шейдерами……Page 373
18.1 Основы мультитекстурирования……Page 374
18.1.1 Разрешение работы с несколькими текстурами……Page 376
18.1.2 Координаты для нескольких текстур……Page 377
18.2 Входные и выходные данные пиксельного шейдера……Page 378
18.3.2 Создание пиксельного шейдера……Page 379
18.4 Объекты выборки в HLSL……Page 380
18.5 Пример приложения: мультитекстурирование в пиксельном шейдере……Page 382
18.6 Итоги……Page 389
Глава 19 Каркас эффектов……Page 391
19.1 Техники и проходы……Page 392
19.2.1 Объекты текстуры……Page 393
19.2.3 Объекты вершинных и пиксельных шейдеров……Page 394
19.3 Состояния устройства в файле эффекта……Page 396
19.4 Создание эффекта……Page 397
19.5 Установка констант……Page 399
19.6.1 Получение дескриптора эффекта……Page 401
19.6.3 Начало эффекта……Page 402
19.6.6 Пример……Page 403
19.7 Пример приложения: освещение и текстурирование в файле эффектов……Page 404
19.8 Пример приложения: туман……Page 410
19.9 Пример приложения: мультипликационный эффект……Page 413
19.10 EffectEdit……Page 414
19.11 Итоги……Page 415
Приложение Введение в программирование для Windows……Page 416
События, сообщения, очередь сообщений и цикл обработки сообщений……Page 417
GUI……Page 419
Windows-приложение Hello World……Page 420
WinMain……Page 424
WNDCLASS и регистрация……Page 425
Создание и отображение окна……Page 427
Цикл сообщений……Page 429
Оконная процедура……Page 431
Функция MessageBox……Page 432
Улучшенный цикл сообщений……Page 433
Итоги……Page 434
Список литературы……Page 435
Алфавитный указатель……Page 436

Reviews

There are no reviews yet.

Be the first to review “Введение в программирование трехмерных игр с DirectX 9.0”
Shopping Cart
Scroll to Top