internal void Update(DataLocation source, List <BrickChunkAlloc> srcLocations, List <BrickChunkAlloc> dstLocations, ProbeVolumeSHBands bands) { Debug.Assert(srcLocations.Count == dstLocations.Count); for (int i = 0; i < srcLocations.Count; i++) { BrickChunkAlloc src = srcLocations[i]; BrickChunkAlloc dst = dstLocations[i]; for (int j = 0; j < kBrickProbeCountPerDim; j++) { int width = Mathf.Min(m_AllocationSize * kBrickProbeCountPerDim, source.width - src.x); Graphics.CopyTexture(source.TexL0_L1rx, src.z + j, 0, src.x, src.y, width, kBrickProbeCountPerDim, m_Pool.TexL0_L1rx, dst.z + j, 0, dst.x, dst.y); Graphics.CopyTexture(source.TexL1_G_ry, src.z + j, 0, src.x, src.y, width, kBrickProbeCountPerDim, m_Pool.TexL1_G_ry, dst.z + j, 0, dst.x, dst.y); Graphics.CopyTexture(source.TexL1_B_rz, src.z + j, 0, src.x, src.y, width, kBrickProbeCountPerDim, m_Pool.TexL1_B_rz, dst.z + j, 0, dst.x, dst.y); if (bands == ProbeVolumeSHBands.SphericalHarmonicsL2) { Graphics.CopyTexture(source.TexL2_0, src.z + j, 0, src.x, src.y, width, kBrickProbeCountPerDim, m_Pool.TexL2_0, dst.z + j, 0, dst.x, dst.y); Graphics.CopyTexture(source.TexL2_1, src.z + j, 0, src.x, src.y, width, kBrickProbeCountPerDim, m_Pool.TexL2_1, dst.z + j, 0, dst.x, dst.y); Graphics.CopyTexture(source.TexL2_2, src.z + j, 0, src.x, src.y, width, kBrickProbeCountPerDim, m_Pool.TexL2_2, dst.z + j, 0, dst.x, dst.y); Graphics.CopyTexture(source.TexL2_3, src.z + j, 0, src.x, src.y, width, kBrickProbeCountPerDim, m_Pool.TexL2_3, dst.z + j, 0, dst.x, dst.y); } } } }
internal void Update(DataLocation source, List <BrickChunkAlloc> srcLocations, List <BrickChunkAlloc> dstLocations) { Debug.Assert(srcLocations.Count == dstLocations.Count); for (int i = 0; i < srcLocations.Count; i++) { BrickChunkAlloc src = srcLocations[i]; BrickChunkAlloc dst = dstLocations[i]; for (int j = 0; j < kBrickProbeCountPerDim; j++) { int width = Mathf.Min(m_AllocationSize * kBrickProbeCountPerDim, source.width - src.x); Graphics.CopyTexture(source.TexL0, src.z + j, 0, src.x, src.y, width, kBrickProbeCountPerDim, m_Pool.TexL0, dst.z + j, 0, dst.x, dst.y); Graphics.CopyTexture(source.TexL1_R, src.z + j, 0, src.x, src.y, width, kBrickProbeCountPerDim, m_Pool.TexL1_R, dst.z + j, 0, dst.x, dst.y); Graphics.CopyTexture(source.TexL1_G, src.z + j, 0, src.x, src.y, width, kBrickProbeCountPerDim, m_Pool.TexL1_G, dst.z + j, 0, dst.x, dst.y); Graphics.CopyTexture(source.TexL1_B, src.z + j, 0, src.x, src.y, width, kBrickProbeCountPerDim, m_Pool.TexL1_B, dst.z + j, 0, dst.x, dst.y); } } }