|
|
|
|
|
|
if (h == 0) { return 0; } // Perform horizon clipping |
|
|
|
|
|
|
|
[unroll] |
|
|
|
for (int i = 0; i < 4; i++) |
|
|
|
for (uint i = 0; i < 4; i++) |
|
|
|
{ |
|
|
|
L[i] = normalize(L[i]); |
|
|
|
} |
|
|
|
|
|
|
[unroll] |
|
|
|
for (int edge = 0; edge < 4; edge++) |
|
|
|
for (uint edge = 0; edge < 4; edge++) |
|
|
|
float3 V2 = L[(edge + 1) & 0x3]; |
|
|
|
float3 V2 = L[(edge + 1) % 4]; |
|
|
|
|
|
|
|
F += INV_TWO_PI * ComputeEdgeFactor(V1, V2); |
|
|
|
} |
|
|
|