как использовать VBO для морфинга? - PullRequest
2 голосов
/ 27 сентября 2011

Я хочу иметь сетку, которую можно анимировать.Я загружаю сетку из файла, включая ключевые кадры.Я хочу поместить все кадры в VBO и скомпоновать два из них на GPU в вершинном шейдере.Поэтому я хочу перейти к кадрам на GPU и некоторой униформе, которая позволит создать один результирующий кадр из этих двух

Возможно ли это?Если да, то как я могу это сделать?

1 Ответ

3 голосов
/ 27 сентября 2011

У вас просто будет больше атрибутов вершин.Обычно у вас может быть:

in vec3 position;
in vec3 normal;
in vec4 color;
in vec2 texCoord;

Для целей морфинга вам понадобится:

in vec3 position0;
in vec3 position1;
in vec3 normal0;
in vec3 normal1;
in vec4 color;
in vec2 texCoord;

Фактическая позиция в пространстве модели будет линейной интерполяцией между position0 и * 1008.*.То же самое относится и к нормальному (я думаю).Получив их, вы проходите через обычные преобразования.Координаты цвета и текстуры, предположительно, не меняются, но если они изменяются, то им также необходимо иметь версии 0 и 1.

Фактический рендеринг довольно прост.Предположительно, у вас будут все позиции для целей морфинга в одном буфере.Таким образом, это вопрос привязки атрибута position0 к первой цели преобразования и атрибуту position1 ко второй цели преобразования.То же самое касается нормалей.Затем вы делаете как обычно.

...