jetyb писал(а):Ну так ж в дефолтной партикл системе текстурные координаты спрайтов - единичный квадрат.
Upd:
Тыкнулся в встроенную партикл систему - сразу нашел ответ.
Все уже давно встроено со свистелками и перделками.
http://hostingkartinok.com/show-image.p ... 5bb46682e5
Я же уже писал выше:
kripto289 писал(а):samana писал(а):А если это система частиц, то зачем делать спрайты и анимировать текстурные координаты, если система частиц умеет это делать автоматически, при назначении текстуры для частиц в поле texure sheet animation?
Вы не поняли. Я не делаю анимацию в шейдере. Я именно меняю текущий кадр, который получаю с помощью texure sheet animation. Я хочу сделать спрайтовую интерполяцию кадров (в ue4 есть такая шикарная вещь). Для этого мне надо следующий кадр. Я как-то уже начал делать, но забросил, а щас нужно снова
Попробую ещё раз объяснить. Дабы было понятно до конца.
У меня есть система частиц. Допустим горящий огонь. Разные частицы, с разным временем появления. С разным цветом (чем дольше длится огонь, тем прозрачнее), и т.д.
То есть управление с помощью скриптов отсекается. Я не могу из скрипта контролировать материал для каждой частицы. Потому что хитрые юнити с 1 Drawcall и 1 материалом управляют всеми частицами, а все изменения материала передаются с помощью texcoord и color в вершины.
Я использую допустим эту текстурку
В ней 16 кадров. То есть если я сделаю длительность анимации 2 секунды, то у меня фпс эффекта будет 8. Это как слайдшоу. Для эффектов минимум 25-30 кадров надо, иначе уже видно дёрганье. Более того, почти все заметят разницу даже между 30 и 60 кадрами.
Как быть? Интерполяция между кадрами. Я могу менять кадр, плавно интерполируя по времени со следующим кадром. Теперь заметить дёрганую смену кадров не возможно. Хотя это не совсем точно и правдоподобно, но это лучше, чем 16 дёрганых кадров за 2 секунды.
Например в случае с огромными взрывами мне приходится использовать 4к текстуры. Если клубы дыма длятся более 3-4 секунд, то мне необходимо иметь около 100 кадров. Это 256 на 512 пикселей текстура взрыва. Если эффект на весь экран, то это просто ужасно.
Вот тут мне приходится плясать, либо меньше кадров и лучше качество, либо больше кадров но хуже качество.
Поэтому интерполяция кадров то что нужно.