Как использовать VertexBuffer3D для управления объектами в иерархической структуре отображения? - PullRequest
1 голос
/ 25 декабря 2011

Чтобы лучше объяснить, чего я пытаюсь достичь, вот простой пример:

  • Сценарий 1 : В некоторый трехмерный контейнерный объект я хотел бы добавить два куба: один без каких-либо преобразований, а другой с небольшими настройками положения, поворота и масштаба. После добавления этих двух кубов я бы также хотел изменить положение, вращение и масштаб контейнера.

  • Сценарий 2 : В теле трехмерного персонажа он состоит из множества иерархических дочерних элементов (и дочерних элементов), каждый из которых имеет различные преобразования в течение анимации.

Итак, мой вопрос:

Как эффективно рассчитать эти отдельные преобразования 3D-объектов? Можно ли сделать это только с одним VertexBuffer3D? Или мне нужно несколько VertexBuffer3D для отслеживания каждого объекта? Использование нескольких VertexBuffer3D похоже, что может достигнуть предела (но я не прочитал достаточно документации Stage3D / Context3D, чтобы знать наверняка).

1 Ответ

1 голос
/ 01 февраля 2012

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

...