Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Cubemap projection
- float3 sync(float3 dir)
- {
- float3 v = abs(dir);
- if (v.z > v.x && v.z > v.y)
- {
- if (dir.z > 0)
- v = dir;
- else
- v = float3(dir.xy, -dir.z);
- }
- else if (v.y > v.x)
- {
- if (dir.y > 0)
- v = dir.xzy;
- else
- v = float3(dir.xz, -dir.y);
- }
- else
- {
- if (dir.x > 0)
- v = dir.yzx;
- else
- v = float3(dir.yz, -dir.x);
- }
- return v;
- }
- half2 proj(half3 p, half l)
- {
- return half2(atan2(p.x,p.z) * l * UNITY_INV_TWO_PI, 0.5 - asin(p.y) * UNITY_INV_PI);
- }
- half2 shift(half2 v, half4 m, half l)
- {
- m.z *= l;
- half2 r = v * m.xy + m.zw;
- return r;
- }
- float2 getCoordinate(float3 dir)
- {
- return dir.xy / dir.z;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement