Media is too big
VIEW IN TELEGRAM
Мягкость картинки
На аналоговой камере картинка получается достаточно мягкой - без резких границ (хотя это зависит от трубки)
Принцип
Из-за того, что у нас нет как таковых зерен/пикселей, а только уровень сигнала в момент времени + сканирующий луч имеет толщину и размытие, у нас будут подблюрены строки
Алгоритм
1. Правильный: блюрим строки по горизонтали (луч идет по строкам, соответственно и блюрится будет внутри строки в основном)
2. Простой: просто слегка подблюриваем гауссом весь кадр - эффект будет не такой классный, но мы потом попячим дополнимтельно
На аналоговой камере картинка получается достаточно мягкой - без резких границ (хотя это зависит от трубки)
Принцип
Из-за того, что у нас нет как таковых зерен/пикселей, а только уровень сигнала в момент времени + сканирующий луч имеет толщину и размытие, у нас будут подблюрены строки
Алгоритм
1. Правильный: блюрим строки по горизонтали (луч идет по строкам, соответственно и блюрится будет внутри строки в основном)
2. Простой: просто слегка подблюриваем гауссом весь кадр - эффект будет не такой классный, но мы потом попячим дополнимтельно
❤2👀2
Media is too big
VIEW IN TELEGRAM
Шум в тени
Во всех сенсорах, основанных на электрических процессах, присутствует шум на малоосвещенных участках картинки.
Принцип
Даже при отсутсвии засвета в системе протекают слабые токи, к которым добавлются тепловые флуктуации.
Алгоритм
Добавляем шум с коэффициентом (1-яркость), чтобы зашумить именно темные участки (светлые на самом деле тоже зашумляются, но не так заметно)
Во всех сенсорах, основанных на электрических процессах, присутствует шум на малоосвещенных участках картинки.
Принцип
Даже при отсутсвии засвета в системе протекают слабые токи, к которым добавлются тепловые флуктуации.
Алгоритм
Добавляем шум с коэффициентом (1-яркость), чтобы зашумить именно темные участки (светлые на самом деле тоже зашумляются, но не так заметно)
👍3
Media is too big
VIEW IN TELEGRAM
Bloom
Светлые области "засвечивают", растекаются на близлежащие темные.
Принцип
Из-за того, что луч имеет размер, он задевает яркие участки и засвечивает темные.
Алгоритм
Смешиваем картинку с блюренной по яркости блюренной (чем ярче, тем больше намешиваем. Есть два пути:
1. Правильный - по строкам
2. Простой - просто блюрим и мешаем
Светлые области "засвечивают", растекаются на близлежащие темные.
Принцип
Из-за того, что луч имеет размер, он задевает яркие участки и засвечивает темные.
Алгоритм
Смешиваем картинку с блюренной по яркости блюренной (чем ярче, тем больше намешиваем. Есть два пути:
1. Правильный - по строкам
2. Простой - просто блюрим и мешаем
👍1
Media is too big
VIEW IN TELEGRAM
Шлейф
Светлые области оставляют шлейф/след на следующих кадрах
Принцип
Мишень не успевает восстановиться (разрядиться) и остаточный заряд переходит на следующий кадр, добавляя яркости
Алгоритм
Храним предыдущий кадр после смешения и по его яркости мешаем с ним текущий
Светлые области оставляют шлейф/след на следующих кадрах
Принцип
Мишень не успевает восстановиться (разрядиться) и остаточный заряд переходит на следующий кадр, добавляя яркости
Алгоритм
Храним предыдущий кадр после смешения и по его яркости мешаем с ним текущий
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Затемнение на краях
На краях экрана (слева и справа яркость падает) (это не виньетка!)
Принцип
Из-за большего отклонения на краях строки луч обладает меньшей энергией из-за более длинной траектории и расфокусировки. Как результат, ток падает и визуально края кажутся темнее.
Алгоритм
По гладкой кривой занижаем яркость по
На краях экрана (слева и справа яркость падает) (это не виньетка!)
Принцип
Из-за большего отклонения на краях строки луч обладает меньшей энергией из-за более длинной траектории и расфокусировки. Как результат, ток падает и визуально края кажутся темнее.
Алгоритм
По гладкой кривой занижаем яркость по
x, например:
float k = 1.0 - 5 * U.amount * pow(in.uv.x - 0.5, 4);
src.rgb *= k;
👍3
Media is too big
VIEW IN TELEGRAM
Нестабильность горизонтальной развёртки
Дрожание строк (смещение/гребенка и тд)
Принцип
Тут уже вопрос не только к самой трубке, но и к системе развертки/синхронизации. Из-за сбоя/реальности мира/плохой настройки строки не синхронизированы с лучом и строки съезжают
Алгоритм
Смещаем x по y и чему еще хотите перед чтением с текстуры. Я вот такого например наворотил:
Дрожание строк (смещение/гребенка и тд)
Принцип
Тут уже вопрос не только к самой трубке, но и к системе развертки/синхронизации. Из-за сбоя/реальности мира/плохой настройки строки не синхронизированы с лучом и строки съезжают
Алгоритм
Смещаем x по y и чему еще хотите перед чтением с текстуры. Я вот такого например наворотил:
uv.x += 0.01 * U.amplitude * (sin(U.frequency * uv.y * U.height + U.time) + rand(float2(uv.y, fract(U.time))) * 2 - 1);
⚡3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Цвета
Контраст (и насыщенность на цветном) немного понижены
Принцип
Видикон по своей физике — инерционный, нелинейный, малоконтрастный фотопроводник, а не мгновенный фотоэмиттер, в итоге получаем переходы смягчаются, но при этом срезаются крайние значения.
Алгоритм
Ну тут очевидно - слегка понижаем контраст и насыщенность. Если кто забыл как это делать:
Контраст (и насыщенность на цветном) немного понижены
Принцип
Видикон по своей физике — инерционный, нелинейный, малоконтрастный фотопроводник, а не мгновенный фотоэмиттер, в итоге получаем переходы смягчаются, но при этом срезаются крайние значения.
Алгоритм
Ну тут очевидно - слегка понижаем контраст и насыщенность. Если кто забыл как это делать:
// Saturation
float l = rgb2yuv(src.rgb).x;
src.rgb += (src.rgb - l) * U.saturation;
// Contrast
src.rgb = exp(U.contrast) * (src.rgb - 0.5) + 0.5;
👍3
Как видите, тут два ключевых момента для корректной имитации:
1 - построение картинки идет по строкам
2 - система инертна, а значит и значения пикселей будут "инертны"
1 - построение картинки идет по строкам
2 - система инертна, а значит и значения пикселей будут "инертны"
Пока писал, сам понял физику видикона🤠 зачем мне это - хз, но в универе зачем-то учили это все на телевидении и обработке видеосигналов
👍1
Вот вам еще видео про аналоговые камеры, если буковы читать лень
https://www.youtube.com/watch?v=7VkpyzUZuXo
https://www.youtube.com/watch?v=7VkpyzUZuXo
❤2👍2
Вот так выглядит в зеленой зоне полярное сияние через камеру. Глазами - зеленовато-бордовое светлое небо с полосами.
Возможно, на юге острова в оранжевой зоне оно красивее. Надеюсь, однажды и у нас тут будет красота без туч
Возможно, на юге острова в оранжевой зоне оно красивее. Надеюсь, однажды и у нас тут будет красота без туч
❤5🔥1
Сделал краткий обзор инструментов для генеративного аудио/музыки - если кому интересна эта тема
https://youtu.be/8_idRKRb3-U
https://youtu.be/8_idRKRb3-U
YouTube
15 инструментов для процедурной и генеративной музыки за 15 минут
Краткий обзор инструментов для процедурной и генеративной музыки. Показываю Bytebeat, Orca, SuperCollider, TidalCycles и другие среды. Без глубокого погружения - только что есть, как выглядит, звучит и работает.
Bytebeat: https://greggman.com/downloads/…
Bytebeat: https://greggman.com/downloads/…
👍6
Короткий эпизод про настройки девайса для стабильного профилирования и оптимизации.
https://gostrobrod.medium.com/mtl-s02e03-devices-and-simulators-d26727dbf82e
https://gostrobrod.medium.com/mtl-s02e03-devices-and-simulators-d26727dbf82e
Medium
(MTL S02E03) Devices and Simulators
As Metal is a GPU framework for all Apple platforms, you have to test your app on a real device or at least on their simulators. In this…
🔥3❤1