
7. Rasterized Voxel-Based Dynamic Global Illumination 165
float4 (PI /(2*sqrt (PI)) ,-((2*PI )/3.0 f)* sqrt (3.0f /(4*PI )),0.0f ,0.0f),
float4 (PI /(2*sqrt (PI )) ,((2*PI)/3.0 f)*sqrt (3.0f /(4*PI )),0.0f ,0.0f)
};
// offsets to six neighbor cell centers
static int3 offsets [6] =
{
int3(0,0,1), int3(1,0,0), int3(0,0 ,-1),
int3( -1 ,0,0), int3 (0 ,1,0), int3 (0, -1,0)
};
[numthreads(8,8,8)]
void main (uint3 GroupID : SV_GroupID , uint3 DispatchThreadID:
SV_DispatchThreadID, uint3 GroupThreadID: SV_GroupThreadID ,
uint GroupIndex: SV_GroupIndex)
{
// Get grid position of current cell.
int3 elementPos = DispatchThreadID.xyz;
// Initialize SH- coefficients with ...