- •Введение
- •Глава 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
- •Предметный указатель
450 |
Глава 14 |
После того как вы установили источник, FVF шейдер, материал и текстуру, все, что необходимо сделать, - это нарисовать примитив.
Рисованиеипредставлениесцены
Опять же, чтобы нарисовать графические примитивы и представить сцену не надо делать ничего необычного. Т. к. DirectShow управляет потокам видео данных в фоновом режиме, вы можете рисовать примитивы, как если бы вы рисовали обычную сцену.
Следующий код визуализирует буфер вершин, освобождает использование источников текстур и вершин (для ликвидации утечек памяти) и представляет сцену.
pDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2); pDevice->SetStreamSource(0, NULL, 0); pDevice->SetTexture(0, NULL); pDevice->Present(NULL, NULL, NULL, NULL);
Вот и все - полностью анимированная текстура, наши поздравления DirectShow и Вам! После того как вы увидели насколько просто работать с анимированными текстурами, вы можете добавлять различные эффекты в ваши игры, такие как лицевые текстуры, полностью анимированные фоновые изображения и даже кинематографические последовательности, проигрываемые 3D движком.
Посмотритедемонстрационные программы
Для иллюстрирования технологий анимации текстур, о которых вы прочитали в этой главе, создано две демонстрационные программы. Обе эти программы отображают горный водопад (см. рис. 14.4), показываю лишь небольшую часть того, что может быть создано с помощью анимации текстур.
Первая демонстрационная программа Transformations использует преобразование текстур для плавного перемещения текстуры воды, создавая эффект водопада. Вторая демонстрационная программа TextureAnim использует фильтры видео текстур, разработанные в этой главе для анимации поверхности воды.
Окончание современной анимации
Грустно.... К сожалению, мой друг, мы достигли конца пути. Вы закончили последнюю главу. Однако не расстраивайтесь, потому что эта книга только верхушка айсберга. Существует множество еще более продвинутых технологий, которые вы можете изучить! Если вам интересно, посмотрите приложение А "Ссылки на книги и сайты", чтобы ознакомиться с доступными ресурсами. Уверен, что дальнейшее изучение вебсайтов поможет вам реализовать все ваши смелые фантазии,
Итак, вперед! Миру продвинутой анимации еще есть, чем вас удивить. Удачи!
Часть VI
Приложения
A.Ссылки на книги и сайты B. Содержимое компакт-диска
Приложение А
Ссылки на книги и сайты
В наше время существует множество разнообразной информации, к которой легко получить доступ, надо просто знать, где ее искать. В этом приложении я привел список веб-сайтов и книг, которые могут быть полезными при изучении продвинутой анимации.
Веб-сайты
Найти какую-нибудь информацию в сети достаточно сложно; необходимо просмотреть тысячи страничек, что превращает поиск информации в сложное путешествие. Куда обращаться программистам, когда им нужна помощь или какая-нибудь информация при возникновении сложностей с проектами? Хорошо, я привел небольшой список сайтов, которые считаю полезными. Надеюсь, они помогут вам также, как помогли мне.
The Collective Mind
http://www.theCollectiveMind.net
Я начну со своего собственного сайта, где вы можете найти сведения о моих книгах, загрузить последние обновления кода, почитать статьи, посвященные программированию игр, загрузить демонстрационные программы и многое другое. Если вам будет нужна помощь в изучении какой-либо из моих книг или проектов, зайдите на мой сайт и посмотрите, не было ли обновлений, или можете написать мне электронное письмо.
454
GameDev.net
http://www.GameDev.net
Здесь содержится ВСЕ, что необходимо разработчику игр. Общайтесь с другими разработчиками в форумах, читайте статьи, участвуйте в соревнованиях по кодингу, загружайте демонстрационные программы и игры, созданные посетителями сайта GameDev. Если не брать во внимание мой собственный сайт, это лучшее место, где вы можете меня найти, общающегося в форумах.
Premier Press Books
http://www.PremierPressBooks.com
Здесь вы можете найти подборку замечательных книг, посвященных программированию игр, и анонсы выпускаемых книг издательства Premier. Наряду с программированием игр, Premier предлагает полный набор технических книг, посвященных множеству тем, связанных с компьютерами, таким как моделирование, цифровое изображение, сети и безопасность и еще множество всего.
Microsoft
http://www.microsoft.com
Если вы читаете эту книгу, то почти наверняка вы уже знаете веб-сайт корпорации Microsoft. Особенно его странички, посвященные DirectX и Agent. Увидев обилие статей, демонстрационных программ, вы наверняка станете постоянным посетителем этого сайта.
Caligari
http://www.caligari.com
Небольшая цена и высокое качество - именно так можно охарактеризовать продукцию компании Caligari. Именно эта компания является разработчиком пакета трехмерного моделирования trueSpace. Этот сайт обязательно необходимо посетить тем, у кого небольшой бюджет, но требуется качественное программное обеспечение. Если вы нуждаетесь в таких вещах как лицевая анимация (вы читали о ней в этой книге), нелинейное редактирование, создание текстур и, наконец, возможность экспорта непосредственно в формат файла .X, вы обязательно должны посетить сайт компании Caligari.
Ссылкинакнигиисайты
NVIDIA
http://www.nvidia.com
На сайте создателя линейки видео карт GeForce NVIDIA содержится огромное количество документов о DirectX и OpenGL, а также демонстрационные программы, иллюстрирующие их. Если вы хотите получить информацию о таких технологиях как пиксельные и вершинные шейдеры, собственный высокоуровневый язык программирования шейдеров NVIDIA, называемый Cg, то вам обязательно надо посетить этот сайт.
ATI Technologies, Inc.
http://www.atitech.com
Компания ATI является создателем линейки видео карт Radeon. Как и на сайте NVIDIA, на сайте ATI содержится множество документации, утилит, множесство демонстрационных программ, которые предназначены в помощь разработчикам, использующим DirectX и OpenGL. На этом сайте также содержится информация о программном пакете RenderMonkey, который компания ATI разработала для программирования шейдеров.
Curious Labs, Inc.
http://www.curiouslabs.com
Бегло упомянутый в этой книге сайт компании Curious Labs является домашней страницей привлекательного программного пакета трехмерного моделирования и анимации персонажей Poser. Вы определенно захотите посетить сайт компании Curious Labs, программный пакет которой предоставляет вам возможность располагать, визуализировать, анимировать и экспортировать трехмерные персонажи в множество популярных форматов.
Polycount
http://www.polycount.com
Сайт Polycount является основным источником трехмерных моделей персонажей, которые используются в таких популярных играх как Quake II и III, Half-Life и Grand Theft Auto 3. Если вам необходимы модели для игры или художник для проекта, то это как раз то место, где вы можете их найти!