Для визуализации морфируемых мешей вам необходимо установить исходный и целевой потоки вершин. Также вам необходимо установить индексы только исходного меша. Это можно сделать простым перебором каждого набора и визуализированием их многоугольников.
Если вы создаете морфируемый меш, непосредственно работая с буфером вершин результирующего меша, как показано в предыдущем разделе, то его можно визуализировать также как и используемые вами объекты ID3DXMesh. Например, вы можете перебрать все материалы в меше, установить материал и текстуру и нарисовать текущий поднабор. Нет никакой нужды приводить код здесь - это простая визуализация меша.
Непосредственная обработка буфера вершин меша является, наверное, самым простым способом работы с морфингом. Для этого метода вам потребуется третий меш, который будет содержать результирующие координаты каждой вершины после морфирования, и именно этот меш вы визуализируете DirectX
Теперь, когда вы имеете два меша, с которыми будете работать (исходный и целевой), вы можете начинать процесс морфирования. Помните, что морфирование - это процесс изменения одной формы на другую. Необходимо чтобы вершины исходного меша, находящиеся в начальном положении, постепенно двигались к положению вершин целевого меша.
Возвратимся в ранние 90-е. Революционная технология компьютерной графики, известная как морфинг, появилась на большой арене благодаря Майклу Джексону. Нет, я не говорю о его неудачной пластической операции, я говорю об использовании морфинга в одном из его видео-клипов. Да, Король Попа использовал технологии морфинга в видео-клипе на свою песню "Black or White" и создал феномен анимации, который существует и по сей день.
Исходный и целевой меши, с которыми вы будете работать в этой книге, являются обычными объектами ID3DXMesh. Однако вы не можете просто использовать два меша для морфинга; существуют определенные правила. Во-первых, каждый меш должен иметь одинаковое количество вершин. В процессе морфинга вершины исходного меша просто перемещаются в положение вершин целевого меша. Отсюда следует второе правило: каждой вершине исходного меша должна соответствовать вершина (точнее индекс вершины) в целевом меше. В качестве примера посмотрите на меши, изображенные на рис. 8.1.