This looked like a fun exercise, so I did up a quick HLSL thing. It's not perfect, but it does the main job of hue shifting by view incidence: float3 k = normalize(float3(1,1,1)); float t = dot(N, V) * 3.142 * 2; float3 v = C.xyz; C.xyz = v * cos(t) + cross(k, v) * sin(t) + k * dot(k, v) * (1 - cos(t)); //Rodrigues'…