球面方向 -> uv
cpp
float2 uv;
uv.x = atan2(z, x) / (2 * PI) + 0.5;
uv.y = acos(y) / PI;
atan2(y, x): 正反切双参数函数返回弧度制夹角(-PI, PI]
uv.x 是描述向量在 xoz 上投影偏离 x 轴正方向的程度(-1, 1]
uv.y 是描述向量偏移 y 轴正方向的程度
uv -> 球面方向
cpp
float tetha = uv.x * 2 * PI - PI;
float phi = uv.y * PI;
float3 dir = float(sin(phi) * cos(tetha),
cos(phi),
sin(phi) * sin(tetha));