2013-12-23 2 views
0

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

После некоторых исследований, я нашел пару возможных решений, но не преуспел в использовании ни, они не являются:

  • Использование компонента анимации, затем выберите анимацию/временные рамки и вызова 'animation.Sample()', тогда я могу использовать SkinnedMeshRenderer.BakeMesh (myMesh). Проблема в том, что при использовании Mechanim у вас есть компонент Animator вместо анимации, пока единственное, чего я не вижу при использовании компонента Animator вместо Animation, эквивалентно «Sample()». Без эквивалентного метода «Sample()» все, что я получаю, это сетка в T-позе каждый раз, когда я испекаю ее.

  • Во время метода Update(), задающего анимацию/таймфрейм в аниматоре, ожидающий следующего кадра для вызова «SkinnedMeshRenderer.BakeMesh (myMesh)» иногда работает. Самая большая проблема заключается в том, чтобы ждать целый кадр, чтобы он мог испечь сетку, не говоря уже о том, что он может перестать работать в любое время, так как это явно не то, как это должно было быть сделано. Я даже не уверен, что ожидание следующего кадра изменит положение анимации или нет.

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

ответ

0

Я не эксперт по этому вопросу, но ...

Вы можете не делать то, что большие мальчики делают и «обманывают» использование instancing той же сетки в разных государствах?

Если для этой сетки существует 10 разных «состояний», то в основном у вас есть 10 различных вызовов с привлечением ничья, чтобы вывести почти неограниченное количество из них из того, что я понимаю.

Таким образом, вся нагрузка удаляется от нажатия между CPU и gpu и сохраняется на gpu, когда у вас есть возможность обрабатывать такой большой объем данных.

+0

Я уверен, что это имя того, что я пытаюсь сделать ... Хотя я не уверен. Текущая проблема заключается в том, чтобы получить эти «разные состояния сетки». Я - команда одного человека, которая знает только, как программировать, я полностью зависим от Mechanim для анимации, если бы я должен был делать эти «разные состояния сетки» вручную, это потребовало бы больше, чем создание игры, возможно – Guedez

Смежные вопросы