COMMAND ENCODER (Barkar Ivan)
163 subscribers
168 photos
72 videos
17 files
108 links
Cool shading, nice ball moment
Download Telegram
они делают рим оффсетом глубины
 

//world normal
float3 wNor = normalize(i.wNor);
//view normal
float3 vNor = mul(UNITY_MATRIX_V, float4(wNor, 0.0)).xyz;
//screen pos
float2 scrPos = i.scrPos.xy / i.scrPos.w;
scrPos += vNor.xy * _Width * 0.001;//uv offset
float depthTex = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, scrPos);
float depth = LinearEyeDepth(depthTex);//view space depth
float rim = saturate((depth - i.scrPos.w) / max(0.001, _Spread * 0.01));//稍作缩放, 可以不要
rim = smoothstep(min(_MinRange, 0.99), _MaxRange, rim);
однажды тоже город сделаю
как-то я потратил лето на воссоздание в гудини генерации зданий через словарь фасадов, прям как в демке по Матрице. Сегодня с ГПТ, думаю, можно быстрее. Штука правда специфическая.

(да до сих пор в Ф4 играю и еще не все видел)
заявка на победу в tiled deferred shading

не без косяков пока и нормали глючат, но получилос!
2🔥1
обрезанная аттенуация это вот отсутствующий знак минус прии расчете дальней плоскости

float4 c4 = float4(0.0f, 0.0f, -1.0f, 0.0f);

на краю - это из-за render scale, где-то нужно это учесть
испытывает меня...
В прографоне показали. С 18 минуты. Они будто градиентом модулируют френель. Прикольно.
This media is not supported in your browser
VIEW IN TELEGRAM
Energie-conversion wrapped diffuse

saturate((dot(normalDirection, lightDirection) + _WrappedDiffuseValue) / pow(1 + _WrappedDiffuseValue, 2))

Не очень понимаю этот «конверсион» в данном случае. Свет распался на диффуз и некоторый рефлекс штоле. Халф-ламберт тоже «конверсион», дифуз и спекуляр?