// Original shader code shared by creator
centreWS = centreWS - dot(centreWS - P, N) * N;
float4 cs = mul(UNITY_MATRIX_VP, float4(centreWS, 1.0));
float2 cUV = (cs.xy / cs.w) * 0.5 + 0.5;
half3 c = SAMPLE_TEXTURE2D_X(_BlitTexture, sampler_LinearClamp, cUV).rgb;
// Original shader code shared by creator
float3 axis = normalize(hAxis * 2.0 - 1.0);
float along = dot(d, axis);
float3 perp = d - axis * along;
along *= _PatchStretch;
perp *= rcp(_PatchStretch);
float dd = along * along + dot(perp, perp);
// Original shader code shared by creator
float s = luma * _LightBands;
float qL = (floor(s) + smoothstep(0.0, _LightBandSoftness, frac(s))) / _LightBands;
patch *= qL / max(luma, 0.001);
// Original shader code shared by creator
float u = along / max(len, 1e-5);
float widthProfile = cos(u * HALF_PI);
widthProfile *= widthProfile;
float core = 1.0 - smoothstep(coreEdgeIn, wid * widthProfile, abs(across));
Interesting fact: Most of the technical artists hired in the game industry know Python, C# (or C++) and HLSL. 👀
— Jettelly Inc. (@jettelly) December 5, 2025
And The Unity Shaders Bible can definitely help you get there. ✨
🔗 https://t.co/fw4pna2vUj#gamedev #unity3d #madewithunity #indiedev pic.twitter.com/nnMiBdXhJm