Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on null in /var/www/tgoop/function.php on line 65
- Telegram Web
Telegram Web
Тональное отображение

Серёжа в комментах к предыдущему посту попросил подробнее рассказать про этот приём. И вы не стесняйтесь, предлагайте темы.
17
Значит, тональное отображение, оно же tone mapping. Я узнал про этот приём (как и про множество других) от Питера Пасмы, он использовал его в нфтшном проекте Skulptuur. Там сцена с глобальным освещением, то есть луч многократно отражается от объектов до тех пор, пока либо не попадёт на лампу, либо так на неё и не попадёт. Отражения луча каждый раз рандомные, поэтому значения соседних пикселей могут сильно отличаться. Картинка выходит шумной. Чтобы этот шум погасить, Питер рендерит сотни кадров и усредняет их, пока не станет аккуратно.

Так мы плавно утыкаемся в проблему: а какой яркости должна быть лампа? Если яркость 1, картинка выйдет тёмной, потому что любое отражение луча уменьшает его яркость. А это ещё полбеды. Вторые полбеды в том, что каждый кадр отражения луча случайны, он будет то попадать в лампу, то улетать в черноту. Усредним это всё, и финальная яркость будет около нуля.

А может усилить свет, скажем до 100? Но тогда прямое попадание луча в лампу будет больше единицы. Экран может показывать цвета в ограниченном диапазоне: от чёрного o=vec4(0,0,0,1), до белого o=vec4(1,1,1,1). Если попытаться показать значение ярче чем 1, например, 9e9, экран не прожжёт дырку в обоях: значение обрежется до единицы. Но вы сами знаете, к чему это приводит, если хоть раз пробовали в тёмной комнате сфоткать окно с облаками. Никаких облаков на фото не будет, только белый прямоугольник. Было бы круто видеть разницу между яркостями 1, 10, 100.

В итоге, мы хотим чего? Хотим, чтобы любое значение от 0 до ∞ после обработки стало числом от 0 до 1. Идеально подошла бы функция, которая при небольшом значении меняет значение не сильно, то есть близка к f(x)=x, а на большом приближается к единице, то есть к f(x)=1. Хорошая новость в том, что функций таких куча, на любой вкус. В предыдущем посте я использовал tanh(x), она довольно затратная в плане вычисления, зато мало буков. Про неё и про более шустрые альтернативы Xor подробно написал в статье из цикла GM Shaders, картинку для поста я взял оттуда.

В лайвкодинге тональное отображение тоже пригодится. Например, хочу далёкие объекты сделать тёмными. Пишу o+=1./dist;. Но тогда всё, что ближе единицы, сливается в ослепительно белый. И тут я гиперболический тангенс — хлоп! И уже не сливается.
93👍2🔥1
В эту пятницу в генклубе долгожданный митап, приходите смотреть, как небольшой код создаёт целые миры
3
Forwarded from Савва
Митап о генерации геометрии в реймаршинге

В эту пятницу, 26 сентября в 19:00. Ссылку на телемост запостим в @gen_c перед созвоном.

Шесть лет назад Иниго Килес выложил статью с описанием интересного алгоритма для генерации геометрии. В статье описана не столько техника в ее законченном виде, сколько общая идея. Реализовать полный потенциал метода предлагалось читателю самостоятельно.

Я хочу рассказать про то, как я генерализовал этот метод и получил крутые результаты, работающие в несколько строк кода. Покажу разные генерации на своем сетапе, обсудим вместе альтернативные варианты развития этой идеи, мб полайвкодим.
🔥16
Media is too big
VIEW IN TELEGRAM
Савва в Генклубе @gen_c рассказал про процедурную генерацию фантастических миров. Вот запись митапа, из которой вы узнаете, какие инструменты Савва использует, какие алгоритмы применяет, и ещё кучу всего интересного.

Ссылки, про которые говорим в видео:
- Статья Иниго
- Код из неё с комментариями
- Телеграм-канал Саввы, где он постит всю эту красоту @fromskintoliquid

Ютуб, ВК
1🔥76👍2
tldraw.com

Это моя любимая онлайновая рисовалка-вайтборд. Быстрая, простая, умеет всё, что надо. В рейкасте сделал быструю ссылку, чтобы всегда была под рукой.

А на скрине я разбирался, как устроен паттерн, который задизайнил @hristofer: он крафтит такую керамическую плитку, у него в профиле фотки. Оказалось, обойная группа ××, она же pg.

Какие у вас любимые рисовалки?
4👍4🔥1
Я кое-что печатаю. Как думаете, что это?
🤔4
This media is not supported in your browser
VIEW IN TELEGRAM
🔥15🐳2
This media is not supported in your browser
VIEW IN TELEGRAM
8🔥8👍2🐳2
Приходите сегодня на открытый шейдерный мастер-класс. Я буду учить Адама писать шейдеры, а Дима будет учить меня делать это красиво.

Ссылка появится в канале @setka_design за 5 минут до начала
🔥21
This media is not supported in your browser
VIEW IN TELEGRAM
Открытый шейдерный мастер-класс

Курс по шейдерам всё ближе, мы готовимся и хотим затестить новый формат. До этого мы вели курсы вдвоём и всем это нравилось. В этот раз идём ещё дальше, и ведущих будет трое:

Иван Дианов (ну вы его знаете).

Адам Арутюнов (ну вы его тоже знаете).

Дмитрий Кайда. Дизайнер и артдир, делает вот такую красоту: instagram.com/kobayashi68

Мастер-класс будет устроен так:
— Дима артдирит и творчески направляет, чтобы в конце получилась не технодемка, а что-то великое;
— Ваня пишет код и объясняет его Адаму;
— Адам задаёт вопросы, когда что-то непонятно (Адам программист, но ничего не понимает в шейдерах).

За референс возьмём видео ↑ из этого поста, а что в конце получится — не знаем.

Мастер-класс будет проходить в Зуме и займёт около полутора часов. Можно будет прийти прямо на трансляцию и задавать вопросы.

5 ноября, 19:00 по Москве
10
Видос готовим, выложим попозже. А пока что отзыв от Кости Григорьева. Огого, как приятно-то!

Давно не было таких созвонов, я, оказывается, по ним скучал.
2
Сходил на мастер-класс по шейдерам в Сетке. За два часа еле понятного кода и каких-то сложных математических формул получились три приколюхи со мной у камышей. Потыкайте сами:
случайный кукурузатор — нажимайте для следующего случайного варианта;
ручной растягиватель влево-вправо — водите курсором или пальцем;
ручной растягиватель во все стороны — аналогично.

Мне прям понравилось. Очень круто таким заниматься для меня как для дизайнера. Обычно в фигме или фотошопе дизайню, там пиксели или векторы двигаю (не важно), а тут — код! Пишешь код, и чё-то на экране происходит! Ещё и динамично получается, управлять происходящим можно! Ну нихрена ж себе!

Теперь мечтаю заняться генеративным дизайном. Это кажется сложно, но пипец как интересно. Жду от Сетки полный курс по шейдерам, буду разбираться и радовать вас всяким таким.
9🔥1
Математика, которая пригодится в жизни

Когда учишься в школе, математика может казаться чем-то странным и непонятным.

Для чего учить сложные формулы, которые вылетают из головы сразу же после окончания школы? Зачем нужны синусы и косинусы, функции и интегралы? Почему надо решать задачи про пятьдесят арбузов, двух велосипедистов и грибы в третьем бочонке? Где мне всё это пригодится?

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

Но вообще-то, математика — полезный инструмент, и во взрослой жизни встречается много вопросов, с которыми она могла бы помочь.

Ипотека под 8% на 20 лет или под 12% на 15 лет? Сколько накопишь, если каждый месяц класть часть зарплаты на депозит? Что такое «средняя» и «медианная» зарплата? Насколько реально выиграть в лотерею? Почему казино всегда в выигрыше? Почему положительный тест на ковид не значит, что ты болен? Что такое инфляция, рост инфляции и темпы роста инфляции? Влезет ли диван в лифт по диагонали? Почему в самолёте все встают сразу после посадки? Как распознавать манипуляции в новостях и научных статьях?

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

Поэтому мы сделали этот курс.

На курсе мы смотрим на математику в контексте реальных задач. Мы собрали темы и примеры, которые дают ощутимую практическую пользу и встречаются в жизни ежедневно. За двенадцать занятий мы расскажем базу нескольких областей математики, ответим на вопросы выше ↑ и покажем, как применять эти знания в жизни.

Подробное описание, программа и FAQ — на лендинге.

Формат

12 января — 19 февраля.

12 занятий, 2 занятия в неделю. Общий телеграм-чат и канал с записями, которые остаются навсегда.

Адам ведёт занятия, Ваня помогает и задаёт вопросы, которые боятся задавать слушатели.

Цена — 3500 ₽. Школьникам и студентам — скидка 50%.

Записаться через бота: @gendesign_bot.

Не хотим нагонять спешку, но на курсе всего тридцать пять мест.

setka.design/math
6🔥4👍2
Вот какой у нас скоро курс стартует, приходите учить базу!
1
2025/12/12 02:13:33
Back to Top
HTML Embed Code: