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


11

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

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

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

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

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


+1, это хороший вопрос. Я всегда задавался вопросом, должна ли анимация выполняться на языке затенения или на процессоре ...
Джеймс

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

Ответы:


6

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

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

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

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

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

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


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

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

2

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.