Skip to content

Instantly share code, notes, and snippets.

@pierrentn
pierrentn / frag.glsl
Last active October 31, 2025 16:37
TBN from screen space derivatives (uv & wPosition)
// Build TBN using derivatives (works without explicit tangents)
vec3 dp1 = dFdx(vPosition);
vec3 dp2 = dFdy(vPosition);
vec2 duv1 = dFdx(vUv);
vec2 duv2 = dFdy(vUv);
vec3 tangent = normalize( duv2.y * dp1 - duv1.y * dp2 );
vec3 bitangent = normalize( -duv2.x * dp1 + duv1.x * dp2 );
vec3 normal = normalize(vNormal);
@pierrentn
pierrentn / frag.glsl
Created March 17, 2025 09:38
Glsl Texture Polar Coordinate
vec3 color = vec3(0.0);
vec2 coords = vUv - vec2(0.5); //
float mag = length(coords) * 2.0; // length(coords) / 0.5
mag = clamp(mag, 0.0, 1.0);
float angle = atan(coords.y, coords.x);
angle -= 1.57079632679;
if (angle < 0.0) angle += 6.28318530718;
angle /= 6.28318530718;
vec4 c = texture2D(tDiffuse, vec2(angle, mag));
color = c.rgb;