- •Введение
- •Глава 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
- •Предметный указатель
Глава 1
Подготовка к изучению книги
Альфа и омега - начало и конец. Все имеет начало и в этой книге данная глава представляет собой начало грандиозного путешествия в мир современной анимации. Позади вас - мощь Microsoft DirectX SDK (средство разработки программного обеспечения DirectX); перед вами - длинный извилистый путь, заполненный неуверенностью. Однако прежде чем вы начнете, необходимо сделать множество вещей, чтобы получаемый опыт был радостным.
Эта глава содержит информацию, которая поможет вам подготовиться к изучению разделов и кодов книги, от инсталляции DirectX SDK до понимания, как использовать ряд полезных функций для уменьшения времени разработки ваших проектов. Прежде чем вы углубитесь в книгу, я настоятельно рекомендую вам полностью прочитать эту главу и не торопиться устанавливать DirectX и компилятор. После этой главы вы будете готовы начать грандиозное путешествие.
К концу этой книги вы обнаружите, что мир современной анимации настолько труден или настолько прост, насколько вы его сделаете. С теми знаниями, которыми вы уже обладаете и с помощью этой книги, я уверен, что для вас это будет просто!
В этой главе вы научитесь:
•Устанавливать DirectX SDK;
•Выбирать подходящие динамические библиотеки DirectX;
•Конфигурировать ваш компилятор для использования DirectX;
•Использовать полезные функции, описанные в книге, для облегчения процесса разработки.
14 Глава 1
Установка DirectX SDK
Добро пожаловать в грандиозный мир программирования DirectX! Прежде чем углубляться в текст и коды этой книги, установите Microsoft DirectX Software Development Kit (DX SDK), если вы еще этого не сделали. Если вы незнакомы с процессом установки DirectX, не волнуйтесь - он был настолько упрощен, что вам не придется сделать более нескольких щелчков мыши. Что же касается опытных программистов DirectX, вам тоже будет полезно взглянуть на инструкции по установке, на случай если вы чего-то не заметили.
Во время написания этой книги, вышло Microsoft DirectX SDK, версия 9. Всегда лучше удалять предыдущие установки DirectX SDK, прежде чем устанавливать новые. Не волнуйтесь, вы не потеряете ценного кода, потому что каждая новая версия DirectX SDK включает в себя неизмененный код предыдущих выпусков! Именно так, с DirectX 9 (и предыдущими версиями DirectX) у вас имеется полный доступ к каждому компоненту, когда-либо сделанному в DirectX, от самого старого объекта поверхности DirectDraw до объектов для работы с новейшими устройствами трехмерного ускорения! Так что код пользователей DirectX 8 будет работать и с DirectX 9, т. к. версия 9 содержит объекты всех предыдущих версий.
Для пользователей DirectX 8 обновление от DirectX 8 SDK до DirectX 9 SDK может выглядеть немного шокирующим, но как только вы присмотритесь, вы поймете, что не так уж много изменилось. Просто в DirectX 9 SDK добавлено несколько новых особенностей по сравнению с версией 8.
Microsoft упаковала DirectX SDK в единый, легко запускаемый инсталляционный пакет, который возможно вы найдете на компакт-диске, поставляемом с книгой. Процесс инсталляции DirectX остается неизменным для последних версий, так что если вы инсталлировали его ранее, вы уже знаете, что нужно делать. В DirectX 9, инсталляционный экран (показанный на рис. 1.1 и рис. 1.2) немного изменился внешне, в то время как основные шаги установки остаются неизменными во всех версиях.
Для простоты, люди из Primier Press создали меню в интерфейсе компакт-диска, чтобы вы могли легко находить нужные программы. Так получилось, что одна из этих программ - DirectX SDK. Чтобы получить доступ к меню (если оно автоматически не появилось при вставке компакт-диска), нажмите Start (Пуск) и выберете Run (Выполнить). Напечатайте "D:\start_here.html" (где D - буква вашего CD_ROM) в текстовом поле и нажмите кнопку "Oк".
Подготовка кизучению книги |
15 |
Рис. 1.1. Вводный экран DirectX 9 SDK предоставляет вам несколько вариантов - наиболее важные инсталляционные опции, связанные с DirectX 9 SDK
Рис. 1.2. Щелкнув по "Install"("Установка") DirectX 9.0 SDK вы попадете в мастер InstallShield, где вы можете решить, какие компоненты SDK установить
16 |
Глава 1 |
Вы увидите лицензионное соглашение Primier Press. Пожалуйста, прочитайте соглашение и, если вы согласны с условиями, щелкните "I agree" ("Я согласен"), чтобы продолжить. Появится основной интерфейс диска, где вы можете увидеть и выбрать опцию "Install DirectX SDK" ("Установка DirectX SDK").
После того как появится диалоговое окно установки Microsoft DirectX SDK мастера InstallShield, вам придется решить, какие компоненты включить в инсталляцию. Если вы неопытный пользователь, вам необходимо щелкнуть "Next" ("Далее") чтобы установить компоненты, выбранные по умолчанию. Опытные пользователи могут расширить настройки, чтобы выбрать то, что им необходимо. В любом случае, для завершения установки DirectX 9.0 SDK, убедитесь, что вы нажали "Next", и следуете указаниям, появляющимся на экране. Прежде чем вы узнаете об этом, вы будете готовы работать с SDK!
Выбор отладочных или рабочих версий библиотек
Другая важная часть использования DirectX SDK - это выбор динамических (run-time) библиотек разработчика, которые вы будете использовать. Эти библиотеки отличаются от динамических библиотек, которые будут использовать конечные пользователи; они позволяют вам выбирать, будут ли использованы отладочные (debug) или рабочие (retail) библиотеки.
Разработчики используют отладочные run-time библиотеки для отслеживания ошибок в проекте. Отладочные библиотеки предоставляют полезные сообщения во время компиляции и выполняют специальные операции во время выполнения программы. Например, DirectSound во время тестирования звуковых буферов заполняет их статическим звуком, который вы можете услышать.
Когда вы разрабатываете игровой проект, рекомендуется использовать отладочные динамические библиотеки, заменяя их на рабочие динамические библиотеки во время финального тестирования ваших игр. Чтобы переключаться между этими двумя библиотеками, откройте "Control Panel" ("Панель управления") и выберите иконку "DirectX". Появится диалоговое окно "DirectX Properties" ("Свойства DirectX"), как показано на рис. 1.3.
На рис. 1.3 вы видите, что я выбрал вкладку "Direct3D". В этой вкладке вы можете выбирать динамическую библиотеку, используемую в секции "Debug/Retail D3D Runtime". Вы можете выбрать "Use Debug Version of Direct3D" ("Использовать
1. Retail - рабочая версия; версия, выпущенная в продажу; окончательная версия. — Примеч. перев.
Подготовка кизучению книги |
17 |
Рис. 1.3. Системные свойства DirectX предоставляют вам множество вариантов. Если выбрана вкладка Direct3D, вы можете видеть, что используются отладочные библиотеки на самом высоком уровне отладки
отладочную версию Direct3D") или "Use Retail Version of Direct3D"("Использовать
рабочую версию Direct3D"). Я рекомендую использовать вариант "Use Debug Version of Direct3D" везде, где только возможно.
Однако, если вы решите использовать отладочные библиотеки, имейте ввиду, что программы будут работать не максимально эффективно. Отладочные библиотеки созданы для отладки ваших DirectX приложений; некоторые особенности реализованы так, что изменяют принцип работы DirectX. Например, отладочные библиотеки будут выдавать отладочную информацию о каждом интерфейсе DirectX, о его использовании, освобождении. Каждый нюанс записывается, что замедляет выполнение вашего приложения.
Чтобы корректировать количество отладочных сообщений Direct3D, которые Direct3D будет предоставлять отладчику, вы можете перемещать ползунок в части "Debug Output Level"("Уровень вывода отладки") свойств Direct3D. Чем больше уровень отладки, тем больше сообщений вы будете получать. Я рекомендую переместить этот ползунок в крайнее правое положение, чтобы получать все отла-