Прогаем с кенгурой
228 subscribers
190 photos
190 videos
17 files
156 links
Сидим с кенгурой под горой, запекаем текстуры...

{ программирование, процедурная генерация, графика, аудио, образование и немного про специфичные игры }

https://gostrobrod.dev
Download Telegram
Пользователь нашел правило физарума, которое образует звездочки
4🤯2
Наткнулся на канал про музыку с шикарно оригинальной подачей материала
https://www.youtube.com/@synthet7
2
Джордан Мекнер (автор старого Принца Персии) написал статью, как портироровал игру между платформами 35 лет назад
https://www.jordanmechner.com/en/latest-news/#a-platform-jumping-prince
👍3
Media is too big
VIEW IN TELEGRAM
Итак. Предпоследний заметный эффект на линзах - Flare

Это вот эти вот повторяющиеся пятна-блики от интенсивных источников света.

На примере оно не очень попадает в фонари, потому как пример был собран на коленке
2
Принцип

При прохождении через объектив свет может переотражаться на линзах. Собственно, потому этих пятен так много.

Чтобы такого избежать, на линзы наносят просветляющее покрытие. Но чем дешевле оптика, тем больше эффектов мы насобираем.
👍3
Алгоритм

Будем делать имитацию (иногда тупо маску накладывают просто - но это слишком):
- берем маски этих бликов (чем их больше, тем разнообразнее и естественнее получится эффект)
- берем две точки, между которыми будут висеть блики
- по числу бликов выставляем число инстансов
- в вертексном шейдере по индексу инстанса выставляем на нашем отрезке квад (заодно можно и размер рандомно покрутить)
- во фрагментном тупо рисуем текстуру во весь квад
- не забываем создать металовский пайпалайн с блендингом по типу как ниже, чтобы при наложении засвет усиливался

if let color0 = desc.colorAttachments[0] {
color0.isBlendingEnabled = true
color0.rgbBlendOperation = .add
color0.alphaBlendOperation = .add
color0.sourceRGBBlendFactor = .one
color0.destinationRGBBlendFactor = .one
color0.sourceAlphaBlendFactor = .one
color0.destinationAlphaBlendFactor = .oneMinusSourceAlpha
}


Что можно/нужно добавить
В идеале нужно трекать автоматически самую яркою точку и от нее проводить отрезок для эффекта (у меня анимация захаркожена - потому криво)
1
Прогаем с кенгурой
Естественная виньетка, Принцип: При отклонении луча от оптической оси освещенность падает. Это будет даже на пинхоле, если же говорить про реальную оптику, то сюда добавятся отражения и прочие проблемы.
По оптике осталась еще одна виньетка, которая возникает из-за того, что оптика у нас круглая, а сенсор прямоугольный. То есть если у нас проекция оптики вписана в кадр, то появится еще одна виньетка.

Отдельно расписывать я это не буду - посмотрите предыдущую и, если надо, наложите еще раз.

На этом часть про оптику объявляю закрытой. Дальше будем смотреть на пленку (она выиграла в опросе)
2
Лимон-мутант
5👻1
Вообще я в афиге конечно со своего лимона. Он цвести собрался, хотя все дерево в плодах. И дома все ими завалено.

Может кто знает, что можно делать из лимонов? Мне их девать некуда
4
Внезапно обнаружил, что youtube не только субтитры сам генерит и переводит, но он еще и озвучку делает.
Решил на досуге сунуться в тему реймаршинга. Жалею, что не сунулся раньше.

В принципе все так-то довольно просто и при этом весьма красиво + можно артефактов наделать странных
10🔥1
Media is too big
VIEW IN TELEGRAM
пожалуй, хватит на сегодня
7😍1
Переходим к искажениям на пленке. Тут много чего есть, но все оно крутится вокруг физики (химии) экспонирования пленки, ее проявки и механики камеры.

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

С механикой камеры все просто: пленка протягивается с определенной скоростью так, чтобы на время открытия затвора картинка спроецировалась на соответствующий участок пленки.
4
Итак. При попадании фотонов достаточной интенсивности, они выбивают из соли электрон, который, однако, остается в кристалле и восстанавливает ион серебра до металлического - и таких несколько на кристалл.

При проявке эти атомы металлического серебра служат катализатором для восстановления всего кристалла до металлического серебра. Если же там нет металлического серебра, то он и не восстанавливается.

Далее закрепитель вымывает все невосстановившиеся соли, оставляя только зерна, ставшие серебром. Таким образом картинка на пленке на самом деле черно-белая, но за счет «дизеринга» кажется, что есть градации серого.

Но у нас получился негатив. Позитив получается путем переноса изображения на другую пленку (позитивную). Процесс повторяется, но изображение инвертируется.

Также есть обратимые пленки, которые после проявки отбеливают и засвечивают остатки соли.

С цветной пленкой чуть сложнее: во-первых у нас там как минимум 3 слоя под каждый основной цвет. Во-вторых у нас добавляется процесс с окрашиванием. При этом негативная пленка окрашивается в дополнительные цвета (красный - циан, зеленый - пурпур, синий - желтый).
2
Вот некорректную работу этих бесхитростных механизмов мы и будем имитировать далее
🔥3
Media is too big
VIEW IN TELEGRAM
Начнем с простого - с базовой цветокоррекции.

Принцип
Так как пленка у нас чб, то цвета может быть максимум два (ну и градиент между ними):
1 - цвет подложки - да, пленка не всегда идеально прозрачная + есть защитные слои + может выгорать это все)
2 - пигмента - если мы используем серебро, то будет черный, нарушение фиксации может давать желтоватый оттенок, а старение сребера - коричнево-зеоеноватый; кроме того пленка может быть тонирована замещением серебра на
- сульфид серебра (сепия)
- железосодержащие соли (синий/фиолетовый)
- медь/золото/селен (красный, пурпуный)

Кроме того, кадр может быть
- пере/недосвечен как в процессе съемки, так и в процессе печати (переносе с негативной на позитивную пленку).
- иметь измененный контраст и гамму в зависимости от свойств пленки и химии
2