Кругом сплошной обман
«Эффект Хитрого койота» в игре и его создание.
Шотландский инди-разработчик Мэтт Старк в своём Твиттере разместил видео, демонстрирующие то, что сам он назвал «эффектом Хитрого койота», в честь персонажа мультсериала Warner Bros. В нём койот, преследующий кукушку-подорожника по имени «Дорожный бегун», иногда врезался в стену, на которой был нарисован, например, сквозной туннель. Примерно такой же обман происходит и в ролике Старка. В своём блоге разработчик рассказал, как работает этот эффект.
В каждом дверном проёме на локации находится скрытая стена, которая становится видимой, когда персонаж игрока запускает триггер. В то же время, камера генерирует текстуру и применяет её к появившейся стене. Вот так это выглядит со стороны.
Чтобы эффект работал вне зависимости от того, куда смотрит сам игрок, разработчик добавил «временную камеру». Она находится там же, где и персонаж пользователя, но всегда направлена в на объект, который будет меняться. Подходящий угол поля зрения выбирается через итерации по углам ограничивающего параллелепипеда.
После этого камера рендерит нужную текстуру, однако важно правильно разместить её на объекте. Если сделать это с помощью UV-координат, то результат получится таким.
Старк проецирует позиции вершин объекта в экранное пространство «временной камеры». Они используются для создания текстуры.
Перед удалением «временной камеры» просчитывается матрица, которая конвертирует значения по мировой системе координат в систему координат отсечения.
Эта матрица передаётся шейдеру вместе с текстурой. Позиции вершин проецируются сперва по мировой системе, а затем по системе отсечения «временной камеры».
Во фрагментарном шейдере позиция по системе отсечения конвертируется в UV-координаты, которые используются для наложения текстуры.
круть, игра Antichamber почти про такое
Да там вообще круто сделали
Особенно комната с звуками сверчков.
Винтажный мем, который полностью описывает мою степень недоумения.
Раскукож обратно мою перспективу, проклятый демон!
К тому и отсылался.