Всем читающим большой привет. Вот мой пример создания эффекта
Motion Blur.
Само рисование размытия от предыдущего положения
объекта до текущего происходит так же, как и в
этом примере, но с тем отличием, что используется
surface, который с определённой прозрачностью затирается каждый
шаг. Также я где-то видел пример
Motion Blur'а, где использовался только лишь
surface, но найти его и оставить ссылку у меня не получается.
Плюсы этого способа:
- Рисуется именно
путь объекта, а не "размазанность" от предыдущего положения до текущего (чего не происходит в примере без
surface).
- Рисуются не "копии"
объекта, а плавный путь от прошлых положений объекта до текущего (при использовании просто
surface так не получается).
Минус - ресурсозатратность (хотя для наложения эффекта на ГГ во время получения какого-нибудь баффа на скорость вполне сойдёт. Если эффект нужен только лишь для этого - имеет ли смысл использовать шейдеры? Тем более если пишешь на
GM8).
Допускаю что мой
код не идеален, в нём могут присутствовать некоторые огрехи, которые влияют на производительность, но в примере отлично видно саму суть способа, а это - главное. Да, затирание можно и нужно было бы по-хорошему реализовать другим способом, но на самом деле оптимальность того или иного способа зависит от места применения, да и если вставлять этот
код в игру - его придётся в любом случае сильно переделать, это ведь лишь пример.
И да, я не считаю GM8 устаревшим и не хочу объяснять подробно все причины по которым так считаю. Если кратко - в GMS урезали кучу функций ради кроссплатформенности, а всё что добавили можно добавить и в GM при помощи dll библиотек. Больше ничем эти движки почти не отличаются. А если кто-то считает GMS и GMS2 ультрасовременными лучшими движками для 2D - вам логичный вопрос: зачем ехать в ближайший магазин за хлебом на Ferrari?