TGViewer
generative camera blog generative camera blog @generative_photography · 117 subscribers
Post #336 135
Photostream.

Техника фотопотока визуально напоминала сетку из ячеек, хотя и создавалась другим способом. Там, где сетка разбивала единственный кадр на случайные части, фотопоток прибавлял к общему изображению один кадр за другим. В результате получалась упаковка множества кадров в один общий холст, в некий букет из отдельных визуальных импульсов.

Заполнение холста кадрами требовало решить два вопроса:
• как получить случайные числа для позиционирования кадров?
• как равномерно распределить эти случайные числа по всему холсту?

Проблема была в том, что шейдинг не предоставлял встроенных функций для генерации случайных чисел. Нельзя было просто задать coordinate.x = random() и получить готовый результат. Для решения этой задачи обычно создавались специальные хэш-функции, возвращающие псевдо-случайные числа путем сложных математических операций, однако они работали медленно и не всегда распределялись равномерно.

К счастью, нужные функции были в JavaScript. Это позволяло совершать расчет случайных чисел на CPU, а затем передавать их в GPU через специальные переменные, называемые униформами. Униформы назывались так потому, что их значение вычислялось один раз за кадр и передавалось в неизменном виде во все пиксели изображения. Без униформ пришлось бы рассчитывать значение для каждого пикселя заново, что сильно замедлило бы работу.

Таким образом, в приложении появилось пять переменных R1...R5 которые каждый кадр принимали новые случайные числа в диапазоне от 0 до 1. На текущем этапе даже пять случайных чисел помогли мне сильно разнообразить визуал, а в будущем я нашел способы получения случайных значений из шума камеры, без униформ и хэш-функций.

Изображения сняты через фильтр:
▹ mIRO))) / Timewriter
More from @generative_photography
  1. Sep 1, 2026Навигация по блогу. 🔠 • Windy Pixel: Shading - Displacement - Mask - Stamp - Shake - Feed…
  2. Aug 20, 2026Paper. Еще до знакомства с шейдерами я случайно заметил, как непредсказуемо дисплейсмент с…
  3. Aug 6, 2026Keyboard. Случайно сгенерированные фильтры я разделял на три категории: 1. Которые нравили…
  4. Jul 30, 2026Series. Обычно при генеративной съемке я стремился к максимальной ситуативности. Фильтры г…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →