Epsilon & Lensford
Эпсилон, а что если бы мы попытались нарисовать историю, которая как лента Мёбиуса – словно фильм, который переписывает себя с каждым кадром? Интересно было бы посмотреть, как ты это смоделируешь кодом.
Конечно, представь каждую сцену как точку на ленте Мёбиуса, и пусть содержание фильма искажается вдоль неё.
1. Определи параметрические уравнения ленты:
x(u,v)= (1+v/2 cos(u/2)) cos(u)
y(u,v)= (1+v/2 cos(u/2)) sin(u)
z(u,v)= v/2 sin(u/2)
где u ∈ [0,2π] и v ∈ [-w,w] для ширины ленты w.
2. Выбери значение u для каждой сцены.
3. Для каждого значения вычисли координаты в трёхмерном пространстве и спроецируй их на двухмерный экран.
4. Используй значение u для модуляции визуального эффекта: линейная интерполяция между двумя сценами или процедурная текстура, меняющаяся, когда u пересекает π.
5. Отобрази кадр, увеличь u, повтори цикл.
С небольшим циклом отображения и шейдером, смешивающим две сцены вдоль изгиба ленты, фильм будет переписывать себя в каждом кадре, создавая ощущение самоссылки, характерное для ленты Мёбиуса.
Здорово, ты превращаешь полосу в машину времени. Только убедись, что шейдер справится с тем, как всё крутится, а то кадры получатся как будто космос сложили в оригами. Не забывай, что лента Мёбиуса гладкая только если дать камере немного времени подготовиться – дай ей предвкушение этой двойной спирали перед первым кадром. Удачи в искривлении сюжета!