Создание эффекта сбоя, похожего на Watch Dogs

8

В настоящее время я работаю над игрой LibGDX. Когда пользователь делает что-то не так, я бы хотел, чтобы вся графика на экране дрожала, очень похоже на эффект сбоя / искажения, наблюдаемый в игре Watch Dogs (см. Ниже).

У меня такой вопрос: можно ли добиться этого эффекта в реальном времени, написав шейдер? Если да, есть ли какие-либо ссылки в Интернете о том, как это сделать? (У меня был быстрый Google, но все, что я мог найти, - как добиться этого эффекта в Photoshop / After Effects).

Спасибо за помощь.

Дрожание экрана: https://www.youtube.com/watch?v=EYkqC9uI8Nc

Эффект сбоя текста: https://www.youtube.com/watch?v=Wj26Wp2AH-U

введите описание изображения здесь

Rhakiras
источник
Скорее всего, это может быть достигнуто путем рендеринга изображения в текстуру и последующего изгибания вашего мозга, чтобы придумать конвейер обработки шейдеров для его достижения. Реальный вопрос: для чего бы вы его использовали? Это больше похоже на проект демо-сцены, чем умение программиста игры. Конечно, не больно попробовать. Обоснованное предположение говорит мне, что WD добился этого благодаря воспроизведению Flash-фильмов вместо использования сложных шейдеров, как вы собираетесь. Итак, если ААА не делает этого, почему бы вам?
Теодрон
1
@teodron "Реальный вопрос: для чего ты это используешь?" Я думаю, что ответ на этот «реальный» вопрос можно найти в оригинальном вопросе. «навык, которым должен обладать программист игры», не каждый ограничивает себя навыками, которые он «должен» иметь. «Итак, если ААА не делает этого, почему бы вам?» Этот способ мышления во многом замедляет прогресс. В заключение, единственная релевантная информация, которую приносит ваш комментарий, - это «изгиб вашего мозга, чтобы придумать конвейер обработки шейдеров для его достижения», что вообще не является информацией.
rootlocus
1
Конечно, эффект может быть достигнут в режиме реального времени. Карты смещения текстуры + наложения, возможно в нескольких слоях и / или анимированные. Все это довольно тривиально, кроме процесса создания художественного актива, который может занять некоторое время.
snake5
3
Кажется, «эффект», который они использовали в этом конкретном изображении, заключается в случайном выборе тонких вертикальных прямоугольников и переворачивании (инвертировании) цветов в этих прямоугольниках, что должно быть довольно простым для достижения.
AturSams
1
Я думаю, что вопрос слишком широк на данный момент. Есть много примеров эффекта «сбоя», два из которых в ссылках, которые предоставляет asker, и каждый реализован совершенно по-разному. Каковы ваши точные требования? Вам нужно знать, что вы хотите сделать, прежде чем приступить к этому, или ответы, которые вы получите в этом случае, - написать шейдер.
AturSams

Ответы:

6

Создание блестящего образа может быть выполнено широким спектром способов. По сути, то, что мы привыкли воспринимать как ошибку, - это все, что является внезапным искажением того, что в противном случае было бы согласованным содержанием. Некоторые глюки хорошо сочетаются с аналоговой передачей (т.е. белым шумом), а другие хорошо сочетаются с цифровыми дисплеями, случайными символами ascii, мерцающим текстом, артефактами (например, с отрицательными прямоугольниками). Выбрасывание трех слоев цвета не в фокусе (это называется кровотечение) и больше напоминает ЭЛТ-дисплеи. Вы также можете временно добавить вертикальные волны с большой амплитудой.

Для отображения случайных символов ascii:

  1. Вы можете скопировать исходную текстовую строку и быстро произвольно изменить некоторые символы.
  2. Вы можете использовать spritesheet как это и просто использовать случайно место спрайтов персонажей, удаляя их вскоре после этого , чтобы сделать их мерцание на экране непредсказуемым образом.
  3. Для создания негативного имиджа то, что вы предложили, будет работать. По сути, это XOR между текстом и прямоугольниками шума (если белый имеет значение true, а черный - false).
AturSams
источник
2
Как вы сказали, настройка является ключевой здесь, потому что это художественный эффект и не попадает в категорию «работающих» / «не работающих».
AturSams