- •Введение
- •Глава 1. Подготовка к изучению книги
- •Установка DirectX SDK
- •Выбор отладочных или рабочих версий библиотек
- •Настройка вашего компилятора
- •Установка директорий DirectX SDK
- •Привязывание к библиотекам DirectX
- •Установка используемого по умолчанию состояния символа
- •Использование вспомогательного кода книги
- •Использование вспомогательных объектов
- •Проверка вспомогательных функций
- •Двигаясь дальше по книге
- •Глава 2. Синхронизация анимации и движения
- •Использование движения, синхронизированного по времени
- •Считывание времени в Windows
- •Анимирование с использованием временных меток
- •Перемещение, синхронизированное со временем
- •Движение вдоль траекторий
- •Создание анализатора маршрутов .X файла
- •Создание внутриигровых кинематографических последовательностей
- •Посмотрите демонстрационные программы
- •TimedAnim
- •TimedMovement
- •Route
- •Cinematic
- •Глава 3. Использование формата файла .X
- •Работа с .X шаблонами и объектами данных
- •Определение шаблонов
- •Работа со стандартными шаблонами DirectX
- •Открытие .X файла
- •Перечисление объектов данных
- •Получение данных объекта
- •Создание класса .X анализатора
- •Загрузка мешей с использованием D3DX
- •Загрузка мешей, используя анализатор .X
- •Загрузка скелетных мешей
- •Загрузка анимации из .X
- •Загрузка специализированных данных из .X
- •Посмотрите демонстрационные программы
- •ParseFrame
- •Глава 4. Работа со скелетной анимацией
- •Начало скелетной анимации
- •Использование структур скелетов и иерархий костей
- •Использование скелетной структуры и скелетного меша
- •Загрузка иерархий из .X
- •Изменение положения костей
- •Обновление иерархии
- •Работа со скелетными мешами
- •Загрузка скелетных мешей из .X
- •Создание контейнера вторичного меша
- •Сопоставление костей фреймам
- •Обновление скелетного меша
- •Визуализация скелетных мешей
- •Глава 5. Использование скелетной анимации, основанной на ключевых кадрах
- •Использование наборов скелетных анимаций, основанных на ключевых кадрах
- •Использование ключей при анимации
- •Работа с четырьмя типами ключей
- •Считывание данных анимации из .X файлов
- •Прикрепление анимации к костям
- •Обновление анимации
- •Посмотрите демонстрационные программы
- •Глава 6. Комбинирование скелетных анимаций
- •Комбинирование скелетных анимаций
- •Соединение преобразований
- •Улучшение объектов скелетной анимации
- •Посмотрите демонстрационные программы
- •Глава 7. Создание кукольной анимации
- •Работа с физикой твердого тела
- •Создание твердого тела
- •Расположение и ориентирование твердых тел
- •Обработка движения твердых тел
- •Использование сил для создания движения
- •Соединение твердых тел с помощью пружин
- •Обеспечение обнаружения столкновений и ответной реакции
- •Создание систем кукольной анимации
- •Определение состояния твердого тела
- •Хранение костей
- •Создание класса управления куклой
- •Создание данных костей
- •Вычисление ограничивающего параллелепипеда кости
- •Установка сил
- •Объединение костей
- •Обработка столкновений
- •Восстановление соединений костей
- •Перестроение иерархии
- •Посмотрите демонстрационные программы
- •Глава 8. Работа с морфирующей анимацией
- •Морфинг в действии
- •Определение исходного и целевого меша
- •Морфинг мешей
- •Создание морфированного меша при помощи обработки
- •Визуализация морфированных мешей
- •Расчленение наборов
- •Создание морфирующего вершинного шейдера
- •Посмотрите демонстрационные программы
- •Глава 9. Использование морфирующей анимации, основанной на ключевых кадрах
- •Использование наборов морфируемой анимации
- •Создание шаблонов .X для морфируемой анимации
- •Загрузка данных морфируемой анимации
- •Визуализации морфированного меша
- •Получение данных морфируемого меша из альтернативных источников
- •Посмотрите демонстрационные программы
- •Глава 10. Комбинирование морфированных анимаций
- •Комбинирование морфированных анимаций
- •Использование базового меша в комбинированных морфированных анимациях
- •Вычисление разностей
- •Комбинирование разностей
- •Создание вершинных шейдеров комбинированного морфирования
- •Использование вершинного шейдера морфируемого комбинирования
- •Посмотрите демонстрационные программы
- •Глава 11. Морфируемая лицевая анимация
- •Основы лицевой анимации
- •Использование комбинированного морфирования
- •Использования фонем для речи
- •Создание лицевых мешей
- •Создание базового меша
- •Создание выражений лица
- •Создание мешей визем
- •Создание анимационных последовательностей
- •Создание последовательностей фонем
- •Использование анализатора файлов .X для последовательностей
- •Проигрывание лицевых последовательностей со звуком
- •Использование DirectShow для звука
- •Синхронизация анимации со звуком
- •Зацикливание воспроизведения звуков
- •Посмотрите демонстрационные программы
- •Глава 12. Использование частиц в анимации
- •Работа с частицами
- •Основы
- •Рисование частиц с помощью квадратных полигонов
- •Работа с точечными спрайтами
- •Улучшения визуализации частиц при помощи вершинных шейдеров
- •Оживление частиц
- •Передвижение частиц при помощи скорости
- •Использование интеллекта при обработке
- •Создание и уничтожение частиц
- •Управление частицами с помощью класса
- •Использование излучателей в проектах
- •Создание движков частиц в вершинных шейдерах
- •Посмотрите демонстрационные программы
- •Глава 13. Имитирование одежды и анимация мешей мягких тел
- •Имитация одежды в ваших проектах
- •Получение данных одежды из мешей
- •Приложение сил для создания движения
- •Воссоздание и визуализация меша одежды
- •Восстановление исходного меша
- •Добавление дополнительных пружин
- •Загрузка данных масс и пружин из .X файла
- •Создание анализатора .X данных одежды
- •Работа с обнаружением столкновений и реакцией на них
- •Определение объектов столкновений
- •Обнаружение и реакция на столкновения
- •Создание класса меша одежды
- •Использование мешей мягких тел
- •Восстановление мешей мягких тел
- •Посмотрите демонстрационные программы
- •Глава 14. Использование анимированных текстур
- •Использование анимации текстур в ваших проектах
- •Работа с преобразованиями текстур
- •Создание преобразования текстур
- •Установка матриц преобразования текстуры
- •Использование преобразования текстур в проектах
- •Использование файлов видео в качестве текстур
- •Импорт видео при помощи DirectShow
- •Создание специализированного фильтра
- •Работа со специализированным фильтром
- •Создание менеджера анимированных текстур
- •Окончание современной анимации
- •Веб-сайты
- •Рекомендуемые книги
- •DirectX 9.0 SDK
- •GoldWave Demo
- •Paint Shop Pro Trial Version
- •TrueSpace Demo
- •Microsoft Agent and LISET
- •Предметный указатель
18 |
Глава 1 |
дочные сообщения во время разработки проекта. Опять же, это замедляет выполнение вашей программы, но зато вы можете контролировать все, что происходит. Когда ваш проект близится к завершению, быстро измените используемые библиотеки в панели управления DirectX.
Когда вы установили динамические библиотеки и уровень отладки, щелкните "Oк" и закройте диалоговое окно свойств DirectX.
Настройка вашего компилятора
После того как вы проинсталлировали DirectX SDK, вам необходимо подготовить ваш компилятор для работы с кодом и примерами книги. Несмотря на то, что инсталляционная программа DirectX SDK хорошо настраивает некоторые опции компилятора для вас, я хочу рассмотреть все настройки, которые вам надо изменить.
Установка директорий DirectX SDK
Основная (и наиболее важная) настройка для инсталляции DirectX SDKдиректории. Ваш компилятор должен знать, где искать заголовочные и библиотечные файлы DirectX. Обычно инсталляционная программа вставляет директории SDK в компилятор Microsoft Visual C/C++ сама, но возможно когда-нибудь вам потребуется самостоятельно добавлять эти директории.
Чтобы добавить директории в MSVC версии 6, откройте ваш компилятор и выберите "Tools" ("Инструменты"). В появившемся списке выберите "Options" ("Опции") и щелкните вкладку "Directories" ("Директории"). Появиться диалоговое окно "Options" (как показано на рис. 1.4).
Пользователи Visual Studio .NET должны выбрать "Tools", после чего выбрать "Projects folder" ("Папки проекта") в диалоговом окне "Options". Далее выберите "VC++ Directories" ("Директории VC++"), чтобы открыть список директорий справа от диалогового окна "Options" (как показано на рис. 1.5).
В обоих случаях вы увидите список директорий, в которых компилятор ищет библиотеки и заголовочные файлы. Обратите внимание на раскрывающееся меню "Show Directories Fоr"("Показывать директории для"). Для начала вам необходимо установить директорию для заголовочных файлов DirectX SDK, так что выберите из раскрывающегося меню "Include Files" ("Подключаемые файлы").
Подготовкакизучениюкниги |
19 |
Рис. 1.4. Диалоговое окно "Options" отображает список директорий, в которых Visual C/C++ ищет заголовочные и библиотечные файлы
Рис. 1.5. Выбор " VC++ Directories " приводит к появлению списка директорий справа от диалогового окна в Visual Studio .NET
20
Далее щелкните кнопку "New"("Hoвый" - небольшой заштрихованный квадрат слева от красного X). Новая строчка списка директорий станет активна в разделе диалогового окна "Directories" . Щелкните по кнопке с многоточием справа от текстового курсора, чтобы открылось диалоговое окно "Choose Directory" ("Выберите директорию"). Укажите проинсталлированную директорию с заголовочными файлами DirectX и нажмите "OК".
Далее вам необходимо указать директорию, в которой находятся библиотечные файлы DirectX SDK, так что ещё раз щелкните на раскрывающееся меню "Show Directories For" и выберите "Library files" ("Библиотечные файлы"). Повторите процесс, щелкнув на кнопку "New" и указав расположение библиотечных файлов DirectX SDK. Когда вы закончите, ваш компилятор будет готов использовать директории DirectX для компиляции.
Привязывание к библиотекам DirectX
После того как вы указали установочные директории DirectX, следующим важным шагом является привязывание библиотек, которые вы будете использовать в проекте. Заметьте, привязывание файлов действует только в пределах проекта, так что убедитесь, что ваш проект игры открыт, перед тем как продолжить.
Для MSVC 6 щелкните "Project" ("Проект"), выберите "Settings" ("Настройки"). Выберите вкладку "Link"("Связь"). Появятся свойства "The Project Settings Link" (как показано на рис. 1.6).
Для Visual Studio .NET откройте ваш проект, потом выделите его в "Solution Explorer" ("Проводник решений") (как показано на рис. 1.7). Далее выберите "Project", а потом "Properties", чтобы открыть диалоговое окно проекта "Property Pages" ("Страницы свойств"). В отображенной папке, выберите папку "Linker" ("Связыватель") и щелкните "Input" ("Ввод"). Справа от диалогового окна "Property Pages" вы увидите проектные настройки связи (как показано на рис. 1.8).
Для этой книги я использовал только библиотеки Direct3D, D3DX и DirectShow, так что в процессе связывания вам необходимо добавить только эти библиотеки (кроме стандартных прикладных библиотек уже включенных в блоке "Object/Library Modules" (Объектные/Библиотечные модули)). Чтобы добавить необходимые библиотеки, вставьте следующий текст в текстовый блок "Object/Library Modules" (для MSVC 6) или в "Additioanl Dependecies" ("Дополнительные зависимости") (для VC.NET):
d3d9.lib d3dx9.lib d3dxof.lib dxguid.lib winmm.lib
Подготовкакизучению книги |
21 |
РИС. 1.6. Свойства " Project Settings Link " позволяют непосредственно задать, какие библиотечные файлы привязываются к вашему приложению
Рис. 1.7. Visual Studio .NET показывает все файлы и проекты, используя Solution Explorer