karpik.realtime
530 subscribers
55 photos
20 videos
5 files
233 links
CG трюки на грани вменяемости.
хостед бай @karpik
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
ах, эти прекрасные первые попытки симуляции ткани
karpik.realtime
Имплементация Area Lights https://eheitzresearch.wordpress.com/415-2/ #lighting
там опять linear transform cosines, улучшенный сэмплинг area lights 2015 года.
помимо самой работы, крутость в том что мужчина в одиночку её написал и засабмитил на сигграф, это очень непросто сделать

https://twitter.com/momentsincg/status/1403318217121144835?s=21
это интересный факт - при имплементации roughness в PBR рендеринге значения, слишком близкие к нулю (меньше 0.04) могут вообще не отображаться.

то есть блестящая глянцевая поверхность мгновенно гаснет при рендере, а полностью матовая и вариации между ними работают как обычно. разработчики весь участок 0...0.04 клампят в 0.04, и проблем со слишком маленьким пятном света для отображения на экране просто не возникает
годный канал по анрилу, и мемы жизненные
Forwarded from dot(ufna, dev)
​​Истинная правда о всех нас
крутая штука - визуализатор BRDF функций
https://natevm.github.io/BSDF-Visualizer/

https://github.com/natevm/BSDF-Visualizer
Крутой рассказ про трансфер информации, или как закодировать три компонента цвета в альфа канале текстуры))

Единственное но — в конце автор жалуется, что при больших значениях для описания позиции не хватает точности, но с этим можно повозиться, учитывая что половина всех значений float лежит в промежутке [-1, 1], а вторая половина снаружи :) Короче, нормализовать по-хитрому и всё будет норм!

https://medium.com/xrlo-extended-reality-lowdown/how-to-play-back-volumetric-point-cloud-animations-in-ue4-9b24b7144d4a
Ну шо, время закрепляющего анонса!

Touchdesigner Meetup Moscow #7

28 июня 2021 года в Москве в седьмой раз состоится митап для профессионалов мультимедиа в среде программирования Touchdesigner.

Встретимся в пространстве Artnovispace, начало лекций в 19:00

Лекторы митапа #7:

Денис Новиков - "Двумерные потоки с завихрениями на TOP контекст"
Instagram.com/gormonboza


Саша Глущенко - "Введение в TouchDesigner Extensions и их практическое применение"
https://www.instagram.com/sanchez_gl

Вадим Биоман "Zero Code Installation"
https://www.instagram.com/vadim_bioman/

Регистрация: https://meetup.pankow.us/ru/event/meetup7/

Также приветствуются вопросы лекторам, на которые они с радостью ответят на встрече: https://docs.google.com/forms/d/e/1FAIpQLSdB7pKtKwFeY5gUcUqQNid8taGlJvzVOAWk24I_Xqhya38WjA/viewform

Канал для связи: t.me/flux20YY
Встреча в фб с локацией: facebook.com/events/1663785537164635

хэштег новая аудиовизуальная культура
This media is not supported in your browser
VIEW IN TELEGRAM
реконструкция 3д по картинке в таче нейросеткой https://twitter.com/dmvrg/status/1408659572747685896?s=21
допустим вы отрендерили в редшифте размытые объекты (1), и заботливо сохранили чёрно-белую альфа маску (2), чтобы в дальнейшем подставить нужный задний фон в таче.

но использование ноды matte (3) по прямому назначению вызывает ряд вопросов — края рендера явно тёмные, полупрозрачные объекты вообще исчезли.

произошло это потому, что во время рендера цвет объектов умножился на их прозрачность, цвета как бы смешались с чёрным в пропроции альфа канала.

чтобы это пофиксить, создаём ноду глсл, втыкаем рендер (1), нужный задний фон и маску (2) и пишем в функции main:

vec4 renderCol = texture(sTD2DInputs[0], vUV.st);
vec4 bgCol = texture(sTD2DInputs[1], vUV.st);
float alpha = texture(sTD2DInputs[2], vUV.st).r;
float alpha22 = pow(alpha, 1/2.2);
vec4 renderColUnmult = renderCol;
if(alpha > 0.0)
renderColUnmult = vec4(vec3(renderCol.rgb/alpha22), 1.);
vec4 mixCol = mix(bgCol, renderColUnmult, alpha);
fragColor = vec4(mixCol);

готово, вы великолепны и имеете адекватный композ (4) !

#glsl
интересная штука из блендера — от маленького источника света появляются артефакты на границе света и тени, даже если выбран режим сглаживания полигонов smooth, и пофиксили это только недавно дополнительной настройкой.

на первый взгляд это кошмар и недопустимый караул, но в комментах к видео терпеливо поясняют: при сглаживании полигонов значения нормалей смешиваются с соседями, и, соответственно, новая "сглаженная" нормаль уже отличается от реальной нормали полигона, что создаёт визуальное несоответствие между тенью и остальным шейдингом.

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

https://youtu.be/oecXkpAoq9U?t=33


ps тач тоже этим страдает, но исправить это можно только ручками в шейдере
Крутой видос про оптимизацию шейдеров, вкратце:

• GLSL функции выполняются с разной скоростью: умножение и сложение 4 такта, sin/cos по 20 тактов, тангенс около 56. Посмотреть брейкдаун вашего кода можно здесь

• сэмплинг текстуры — самая дорогостоящая операция, 300+ тактов; лучше посэмплить текстуру в начале, потом посчитать не связанную с ней математику и в конце их соединить, так простой от ожидания текстуры будет минимальным

• при сэмплинге возвращается не один тексель, а ещё и небольшая область вокруг него, она остаётся в кэше; если в дальнейшем сэмплить соседние значения и не скакать по всей uv, то шейдер будет работать быстрее. благодаря этому же есть почти бесплатные функции dFdx() и dFdy(), но об этом в другой раз :)

https://youtu.be/y0QASid1v8w
This media is not supported in your browser
VIEW IN TELEGRAM
Собрал triplanar mapping на сопах в таче, лучше всего работает на кубах))

Нормальный блендинг можно сделать в GLSL, а в этом сетапе если что покрутить ручку Spread Angle и подобрать бесшовные текстуры, проект здесь
triPlanarSop.2.toe
6.9 KB
сам проект
книга по базе оффлайн рендеринга https://www.pbr-book.org/
катастрофически красивый bidirectional path tracing от славянского автора 💪

https://www.shadertoy.com/view/7tjSDh
This media is not supported in your browser
VIEW IN TELEGRAM
будущее потихоньку наступает, рано или поздно анимация персонажей перестанет быть бесконечной болью!

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

работа на Юнити и проект пока не выложен, но чувствую через 2-3 года в этом направлении будет прям круто :)


https://unity-technologies.github.io/Labs/protores.html
displacement.gif
10.9 MB
Шейдер матового стекла в Юнити
(слава богу человек просто взял и сделал это за всех нас)

https://github.com/nothke/unity-frosted-glass/tree/unity-2019

#shader