Обложка книги «Ламот Андре Введение в компьютерное программиро..»

  • Название:

    Ламот Андре Введение в компьютерное программиро..

  • Размер: 13.89 Мб
  • Формат: DJVU
  • или


Краткий отрывок из начала книги (машинное распознавание)
Предисловие 17
Об авторе 18
О техническом редакторе 18
Благодарности 19
Введение 21
Часть I. Введение в программирование трехмерных игр 27
Глава 1 ¦ Основы программирования трехмерных игр 29
Краткое введение 30
Элементы двумерных и трехмерных игр 31
Общие советы по программированию игр 36
Использование инструментов 40
Редакторы трехмерных уровней 43
Использование компилятора 44
Пример трехмерной игры: Raiders 3D 48
Цикл событий 73
Внутренняя логика игры 73
Трехмерные проекции 75
Звездное поле 77
Лазерные пушки и обнаружение попаданий 77
Взрывы 77
Как играть в Raiders3D 77
Резюме 78
Глава 2. Краткий курс Windows и DirectX 79
Модель программирования Win32 80
Минимальныйкурспрограммированиядля Windows 81
Bce начинается с WinMain() 81
Базовое приложениедля Windows 87
Класс Windows 87
Регистрация класса Windows 92
Создание окна 93
Обработчик событий 95
Главный цикл событий 100
Создание цикла событий реального времени 104
Краткий курс DirectX и СОМ 106
HEL и HAL 107
Подробнее о базовых классах DirectX 108
Краткое введение в СОМ 110
Что такое СОМ-объект? 111
Создание и использование СОМ-интерфейсов DirectX 114
Запрос интерфейсов 115
Резюме 116
Глава 3. Виртуальный компьютер для программирования трехмерных игр 119
Введение в интерфейс виртуального компьютера 120
Построение интерфейса виртуального компьютера 122
Буфер кадра и видеосистема 122
Работа с цветом 126
Анимация 128
Полная виртуальная графическая система 130
Ввод-вывод, звук и музыка 131
Консоль игры T3DLIB 132
Обзор T3DLIB 132
Базовая консоль игры 132
Библиотека T3DLIB 138
Архитектура графического процессора DirectX 139
Основные определения 139
Макросы 141
Типы и структуры данных 142
Прототипы функций 145
Глобальные переменные 151
Интерфейс DirectDraw 152
Функции для работы с двумерными многоугольниками 156
Двумерные графические примитивы 159
Математические функции и функции обработки ошибок 163
Функции для работы с растровыми изображениями 165
Функциидляработыс 8-битовыми палитрами 169
Вспомогательные функции 172
Процессор для работы с объектами блиттера 174
Система ввода DirectX 182
Звуковая и музыкальная библиотека T3DLIB3 188
Заголовочный файл 189
Типы 189
Глобальные переменные 190
API оболочки DirectSound 190
API оболочки DirectMusic 194
Окончательная версия консоли игры 197
Графика — реальная и виртуальная 197
Консоль игры — окончательный вариант 200
Образцы приложений T3DLIB 211
Оконные приложения 211
Полноэкранное приложение 211
Звук и музыка 213
Работа с устройствами ввода 213
Резюме 216
Часть II. Трехмерная математика и преобразования 219
Глава 4. Запутанный мир математики 221
Математические обозначения 222
Двумерные системы координат 223
Двумерные декартовы координаты 223
Двумерные полярные координаты 225
Трехмерные системы координат 228
Трехмерные декартовыкоординаты 229
Трехмерные цилиндрические координаты 230
Трехмерные сферические координаты 233
Тригонометрия 234
Прямоугольный треугольник 235
Обратные тригонометрические функции 237
Тригонометрические тождества 237
Векторы 238
Длина вектора 239
Нормализация 240
Умножение на скаляр 240
Сложение векторов 241
Вычитание векторов 241
Скалярное произведение 242
Векторное умножение 245
Нулевой вектор 246
Радиус-вектор и вектор перемещения 246
Векторы как линейные комбинации 247
Матрицы и линейная алгебра 247
Единичная матрица 249
Сложение матриц 250
Транспонирование матрицы 250
Умножение матриц 250
Свойства матричныхопераций 252
Обращение матриц и решение систем линейныхуравнений 252
Правило Крамера 253
Преобразования с использованием матриц 255
Однородные координаты 256
Применение матричных преобразований 257
Фундаментальные геометрические объекты 263
Точки 263
Прямыелинии 263
Прямые в трехмерном пространстве 265
Плоскости 267
Использование параметрических уравнений 271
Двумерные и трехмерные параметрические прямые 271
Параметрическое представление отрезка с помощью стандартного вектора
направления 272
Параметрическое представление отрезка с помощью единичного вектора
направления 273
Параметрическое представление трехмерных прямых 273
Вычисление пересечения параметризованных прямых 274
Вычисление пересечения отрезка и плоскости 277
Введение в кватернионы 278
Теория комплексных чисел 278
Гиперкомплексные числа 282
Применение кватернионов 287
Дифференциальное исчисление 291
Концепция бесконечности 291
Пределы 293
Суммы и конечные ряды 294
Бесконечные ряды 296
Производные 297
Интегралы 303
Резюме 308
Глава 5. Создание математической библиотеки 309
Краткий обзор математической библиотеки 310
Структура математической библиотеки 310
Соглашения об именах 311
Обработка ошибок 312
Заключительное слово о C++ 312
Типы и структуры данных 313
Векторы и точки 313
Параметризованные прямые 314
Трехмерные плоскости 316
Матрицы 317
Кватернионы 320
Угловые системы координат 321
Двумерные полярные координаты 322
Трехмерные цилиндрические координаты 322
Трехмерные сферические координаты 323
Числа с фиксированной точкой 323
Математические константы 324
Макросы и встраиваемые функции 327
Утилиты общего назначения и преобразование величин 331
Точки и векторы 332
Матрицы 333
Кватернионы 335
Математика с фиксированной точкой 336
Прототипы 336
Глобальные переменные 341
API математической библиотеки 341
Тригонометрические функции 341
Функции для работы с системами координат 342
Функции для работы с векторами 345
Функции для работы с матрицами 353
Функции для работы с двумерными и трехмерными параметрическими
прямыми 365
Функции для работы с трехмерными плоскостями 369
Функции для работы с кватернионами 373
Функции для работы с числами с фиксированной точкой 382
Функции для решения систем уравнений 387
Работа математического сопроцессора 390
Архитектура сопроцессора 390
Стек сопроцессора 391
Набор команд сопроцессора 393
Классическийформаткоманд 396
Формат работы с памятью 396
Формат работы с регистрами 397
Формат работы с регистрами и снятие со стека 397
Примерыкомандсопроцессора 398
Замечанияпоиспользованиюматематическойбиблиотеки 406
Замечания об оптимизации 407
Резюме 408
Глава 6. Введение в трехмерную графику 409
Философия трехмерного игрового процессора 410
Структура трехмерного игрового процессора 410
Трехмерный процессор 411
Игровой процессор 411
Система ввода и работы в сети 412
Анимация 412
Система навигации и обнаружениястолкновений 418
Физический процессор 419
Система искусственного интеллекта 420
База данных трехмерных моделей и изображений 421
Трехмерные системы координат 423
Координаты модели (локальные координаты) 424
Мировые координаты 427
Координаты камеры 430
Дополнительные вопросы 439
Отбраковка скрытых объектов и поверхностей 441
Аксонометрические координаты 447
Экранные ко ординаты 458
Базовые трехмерные структурыданных 467
Представление трехмерныхмногоугольников 468
Определение многоугольников 470
Определение объектов 476
Представление миров 481
Инструментарий трехмерного моделирования 483
Анимационные данные 484
Загрузка внешних данных 484
PLG 485
NFF 488
3D Studio 492
СОВ-файлы Caligari 499
.Х-файлы Microsoft DirectX 501
Краткоерезюме 501
Основы преобразований твердых тел и анимации 502
Трехмерное перемещение 502
Трехмерное вращение 503
Морфинг 506
Обзор конвейера визуализации 507
Типы трехмерных игровых процессоров 508
Космические процессоры 508
Наземные процессоры 510
FSP-процессоры 511
Трассировкалучей и воксельные процессоры 512
Гибридные процессоры 513
Сборка игрового процессора 514
Резюме 514
Глава 7. Визуализация трехмерных каркасных объектов 516
Общая архитектура каркасного игрового процессора 516
Структуры данных и трехмерный игровой конвейер 517
Основной список многоугольников 521
Новые программные модули 524
Создание простогозагрузчикафайловстрехмернымимоделями 524
Загрузчик файлов в формате PLG/X 528
Разработка трехмерного игрового конвейера 536
Функции преобразования общего вида 537
Преобразование из локальной системы координат в мировую 545
Эйлерова модель камеры 550
Модель UVN камеры 554
Преобразование мировых координат в координаты камеры 569
Отбраковка объектов 574
Удаление обратных поверхностей 579
Аксонометрическое преобразование 583
Преобразование аксонометрических координат в экранные 589
Аксонометрическое преобразование в экранные координаты 596
Визуализация трехмерного игрового мира 600
Трехмерный игровой конвейер 600
Трехмерные демонстрационные программы 605
Вывод отдельного треугольника 605
Вывод трехмерного каркаса куба 608
Вывод трехмерного каркаса куба с удалением обратных поверхностей 612
Трехмерные танки 614
Трехмерные танки и перемешаемая камера 618
Перемещение по зоне боевых действий 620
Резюме 626
Часть III. Основы трехмерной визуализации 627
Глава 8. Основы моделирования освещения и поверхностей тел 629
Основные модели освещения в компьютерной графике 630
Цветовые модели и материалы 633
Виды освещения 643
Освещение и растеризация треугольников 652
Подготовка к моделированию освещения 657
Моделирование материалов 659
Определение источников освещения 664
Затенение в реальном мире 671
16-битовое затенение 671
8-битовое затенение 672
Сложная RGB-модельдля 8-битового режима 672
Упрошенная модель интенсивности освешениядля 8-битовыхрежимов 678
Постоянное затенение 684
Плоское затенение 687
Плоское затенение в 8-битовом режиме 707
Затенение по Гуро 710
Затенение по Фонгу 713
Сортировкапоглубинеиалгоритмхудожника 714
Работа с новыми форматами моделей 721
Класс-анализатор 721
Формат .ASC 3D Studio MAX 728
Текстовый формат .СОВ trueSpace 732
Первое знакомство с бинарным форматом Quake II .MD2 743
Обзор программных инструментов для создания трехмерных моделей 744
Резюме 748
Глава 9. Интерполяционные методы затенения и аффинное
отображение текстур 749
Особенности нового трехмерного процессора 750
Обновление и разработка структур трехмерных данных 751
Новые директивы #define 752
Добавление математических структур 755
Вспомогательные макросы 756
Новые возможности представления трехмерных каркасов 757
Обновление структур объектов и списка визуализации 766
Обзор списка функций и ихпрототипов 772
Новые версии загрузчиков 780
Обновление загрузчика .PLG/PLX-файлов 781
Обновление загрузчика файлов в формате .ASC 797
Обновление загрузчика файлов в формате Caligari.СОВ 798
Обзор растеризации многоугольников 805
Растеризация треугольников 805
Соглашение о заполнении 810
Отсечение графического изображения 814
Новые функции, связанныес обработкой треугольников 815
Оптимизация 821
Реализация затенения по Гуро 823
Затенение по Гуро без освещения 825
Добавление освещения вершин в функцию, выполняющую затенение по Гуро 837
Основы теории дискретизации 849
Дискретизация в одном измерении 850
Билинейная интерполяция 853
Интерполяция координат u и v 854
Реализация аффинного отображения текстуры 858
Обновление процессора освещения и растеризациидля работы стекстурами 861
Добавление освешениядля визуализации текстуры в 16-битовомрежиме 862
Вопросы оптимизации для 8-и 16-битовых режимов 869
Таблицы соответствия 870
Связность вершин каркаса 870
Кэширование математических результатов 871
Использование возможностей SIMD 872
Итоговые демонстрационные программы 872
Raiders 3D II 873
Резюме 877
Глава 10. Отсечение в трехмерном пространстве 879
Обшее представление об отсечении 880
Отсечение в пространстве объекта 880
Отсечение в пространстве изображений 884
Теоретические основы алгоритмов отсечения 884
Основы отсечени