Итак, как бы мне создать такой эффект? Мы говорим о пиксельных шейдерах, смешанных режимах / фильтрах, растровых эффектах, системах частиц или как? Не совсем зависит от платформы. Я просто ищу теорию, но конкретные примеры или ссылки были бы великолепны. И чем больше деталей, тем лучше.
Все вышеперечисленное.
Если вы не изучите их исходный код, вы можете не знать точно, как они это сделали.
Тем не менее, судя по внешнему виду двух игр, обе они имеют нечто, похожее на геометрию, которая связана и отстает от корабля. Может не обязательно быть базовой системой частиц-спрайтов, но это не так уж и сложно.
В некоторых играх используется алгоритм изогнутых линий, из которого генерируется список вершин, и выполняется небольшое текстурирование с использованием различных текстур, применяемых в двух конечных точках трассы, так что в один момент выхлоп выглядит горячим, а в другом - более прохладным и замолкает в космос.
Корабль игрока - интересный случай, потому что движения непредсказуемы, и вам, возможно, придется либо обновить контрольные точки алгоритма кривой, либо закончить выборку самой последней позиции корабля и сгенерировать позиции вершин на основе этого.
Посмотрите на этот ответ из предыдущего вопроса, если вы хотите иметь что-то, что работает вне контрольных точек. Однако для ваших нужд выборка позиции игроков, вероятно, будет работать намного лучше и будет более понятной.
Вот что заставит вас задуматься:
Начните выборку позиции игрока. Эти точки сформируют сегменты тела вашего следа, из которых можно построить геометрию. Хорошей идеей будет сохранить отдельный хвостовой сегмент с отдельной текстурой. Возможно, вы захотите определить, когда игрок поворачивается, и увеличить частоту этих сегментов, иначе вы получите блочные кривые. Если только это не тот эффект, который вы собираетесь получить :)
При определенных событиях сегменты должны перестать генерироваться, а существующие должны начать медленно уменьшаться, начиная с сегмента тела, ближайшего к хвосту (но не самого хвоста). Это в случае замедления игрока. Но если скорость, с которой уменьшаются сегменты, совпадает со скоростью корабля игрока, то новый сегмент будет сформирован как раз во время вынимания. Так что это также хорошо работает для корабля, который находится в полном движении. Длина трассы всегда будет одинаковой - что дает плавный, последовательный поток.
Сегмент головки должен быть всегда в текущей позиции игрока. Если обнаружены какие-либо повороты, существующий сегмент головы добавляется к сегменту тела, и начинается новый сегмент головы. Повторение. В зависимости от ваших текстур, каждый сегмент также может иметь максимальную длину.
Это дает нам простой способ смоделировать этот эффект: от идеи, что эффект всегда будет уменьшаться / уменьшаться сам по себе, если не будет предоставлено больше сегментов, и играть со скоростями, чтобы предотвратить его уменьшение.