Эффективная скелетная анимация

11

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

В скелетной анимации, например файлах MD5, каждая отдельная вершина может быть присоединена к произвольному количеству соединений.

Как вы можете эффективно поддержать это, выполняя интерполяцию в GLSL? Или движки делают анимацию на процессоре?

Или движки устанавливают произвольные ограничения на максимальное количество соединений на вершину и вызывают nop умножения для тех соединений, которые не используют максимальное число?

Существуют ли игры, которые используют скелетную анимацию в RTS-подобной обстановке, доказывая тем самым, что на интегрированных видеокартах мне не о чем беспокоиться при прохождении маршрута кости?

Будет
источник
+1, это хороший вопрос. Я всегда задавался вопросом, должна ли анимация выполняться на языке затенения или на процессоре ...
Джеймс
В RTS-играх, использующих движок EA SAGE (C & C 3 и более поздние версии, серия BFME), используется скелетная анимация, но вершины привязаны только к одной кости (по крайней мере, в BFME)
Барт ван Хейкелом

Ответы:

6

Ограничение количества влияний костей является обычным явлением, да. Вы можете либо 0 весить неиспользованные влияния, либо использовать механизм цикла / раннего выхода, чтобы пропустить.

Что касается того, работает ли он для RTS, у меня нет для вас справки, но я думаю, что вам понадобится LOD, если вы работаете с большим количеством символов на экране, а также если эти символы маленькие.

ЛОДИРОВАТЬ скелетные символы - это почти то же самое, что ЛОДИРОВАТЬ что-либо еще, за исключением того, что вы, вероятно, захотите ЛОДИТЬ костные влияния и скелет, а также меш.

Например, на низком уровне детализации может использоваться только одна кость с наибольшим влиянием на вершину (также известная как «жесткое снятие шкур»).

Вероятно, вы также ограничите количество костей в скелете для модели с низким LOD.

Наконец - подумайте, нужно ли вам когда-нибудь визуализировать персонажей крупным планом. Вы, вероятно, хотите только моделировать, обрабатывать и анимировать символы для ближайшего расстояния просмотра ... конечно, вы не хотите хранить все данные времени выполнения с разрешением, намного более высоким, чем вы когда-либо визуализируете. Вы можете обнаружить, что вам просто не нужно больше, чем очень простой скелет и пара влияний на вершину для вашей ситуации.

JasonD
источник
Я надеялся, что кто-то скажет: «Вы действительно не хотите, чтобы кости для турелей были в RTS, если ваши кусочки маленькие; вместо этого рассмотрите MD3 с его функцией связанных моделей» или что-то в этом роде
Will
Ну, я бы не использовал скиннинг для такого рода сеток в такой ситуации, но «кости» - это просто причудливое название для иерархических преобразований. Ничто не мешает вам просто прикреплять к ним сетки, а не взвешивать вершины. (другими словами, для турели у вас может быть только две кости и две сетки, а также нет шкуры / утяжеления вообще).
JasonD
2

Я не думаю, что скелетная анимация хороша для игры RTS, скелетная анимация потребует дополнительной обработки для всех персонажей, в то время как анимация ключевого кадра потребляет больше памяти, но вы будете использовать то же самое для большого количества персонажей, также игра rts требует небольших анимаций на персонажа

Джеймс
источник