karpik.realtime
531 subscribers
55 photos
20 videos
5 files
233 links
CG трюки на грани вменяемости.
хостед бай @karpik
Download Telegram
немножко advanced стаффа - симуляция дюн как у энтагмы только на жлсл https://twitter.com/i/status/1255798150184546304
допустим вы отрендерили в редшифте размытые объекты (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