Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DirectX. Продвинутая Анимация (2004) [rus].pdf
Скачиваний:
336
Добавлен:
16.08.2013
Размер:
8.39 Mб
Скачать

Работа сморфирующейанимацией

Наконец, установите нормализованное направление света в регистр констант с5 вершинного шейдера. Это значение направления является направленным вектором, хранимым в структуре D3DLIGHT, которую вы уже должны были использовать, хотя этот вектор приводится к типу D3DXVECTOR4.

// Установить направление света в регистр констант с5 D3DXVECTOR4 vecLight(0.0f, -1.0f, 0.0f, 0.0f); pDevice->SetVertexShaderConstantF(5, (float*)&vecLight, 1);

Заметьте, что координаты света хранятся в пространстве объекта, означая, что свет вращается вместе с объектом. Это необходимо для того, чтобы объект освещался корректно, независимо от направления просмотра. Если вы хотите использовать координаты света в пространстве вида, а не объекта, тогда вам необходимо преобразовать направление света на обратное преобразование вида.

Гмм! Небольшая тема растянулась на много, и теперь вы готовы визуализировать меш при помощи вершинных шейдеров. На данный момент, остается только установить потоки вершин, текстуру, шейдер, объявление вершин и вызвать функцию рисования элементарных объектов. Конечно вам необходимо использовать методы из предыдущего раздела для визуализации отдельных поднаборов исходного меша. Вместо того чтобы повторять код, который вы уже видели, я посоветую вам посмотреть код демонстрационной программы вершинного шейдера для этой главы. Счастливого морфинга!

Посмотрите демонстрационные программы

Как вы можете видеть, морфинг является привлекательной анимационной технологией, которую вы можете внедрить в ваши проекты, затратив минимум усилий. Для этой главы я создал две демонстрационные программы (Morphing и MorphingVS), которые иллюстрируют морфирование, используя технологии изменения буфера вершин и вершинного шейдера.

Эти две программы, в основном, выполняют одно и то же. При запуске любой из них вы увидите экран анимации (показанный на рис. 8.4), на котором дельфин прыгает через анимированные волны океана. Обе программы выполняются, пока вы не выйдите из них.

Программы на компакт диске

Два проекта этой главы иллюстрируют использование морфируемых мешей. Эти два проекта расположены в директории главы 8 компакт-диска книги:

260

Глава8

Рис. 8.4. Анимированный дельфин прыгает через волны моря! Оба объекта (дельфин и море) используют технологии морфирующей анимации

Morphing. Этот проект иллюстрирует создание морфируемых мешей непосредственным изменением буфера вершин меша. Он расположен в \BookCode\Chap08\Morphing.

MorphingVS. В этом проекте вы можете узнать, как использовать вершинные шейдеры для экономии памяти и ускорения визуализации. Он расположен в \BookCode\Chap08\MorphingVS.

Соседние файлы в предмете Программирование на C++