public void AddShadowmapQuery(ref List <MyShadowmapQuery> shadowmapQueries) { for (int i = 0; i < m_slices.Length; i++) { MyCascadeShadowMapSlice slice = m_slices[i]; if (slice.IsUpdated) { MyRender11.RC.ClearDsv(m_depthArrayTexture.SubresourceDsv(i), DepthStencilClearFlags.Depth, 1.0f, 0); shadowmapQueries.Add(slice.GetShadowmapQuery(m_depthArrayTexture.SubresourceDsv(i), i)); } } }
public void Init(int texSize, int numSlices) { m_volumes = new MyShadowVolume[numSlices]; for (int i = 0; i < numSlices; i++) { m_volumes[i] = new MyShadowVolume(); } m_slices = new MyCascadeShadowMapSlice[numSlices]; for (int i = 0; i < numSlices; i++) { m_slices[i] = new MyCascadeShadowMapSlice(); m_slices[i].Init(m_volumes[i], texSize); } m_depthArrayTexture = MyManagers.ArrayTextures.CreateDepthArray("MyCascadeShadowMap.DepthArrayTexture", texSize, texSize, numSlices, Format.R32_Typeless, Format.R32_Float, Format.D32_Float); CsmPlacementStrategy = m_csmDefaultPlacementStrategy; }
public void Init(int texSize, int numSlices) { m_volumes = new MyShadowVolume[numSlices]; for (int i = 0; i < numSlices; i++) { m_volumes[i] = new MyShadowVolume(); } m_slices = new MyCascadeShadowMapSlice[numSlices]; for (int i = 0; i < numSlices; i++) { m_slices[i] = new MyCascadeShadowMapSlice(); m_slices[i].Init(m_volumes[i], texSize); } m_depthArrayTexture = MyManagers.ArrayTextures.CreateDepthArray("MyCascadeShadowMap.DepthArrayTexture", texSize, texSize, numSlices, Format.R32_Typeless, Format.R32_Float, Format.D32_Float); CsmPlacementStrategy = m_csmDefaultPlacementStrategy; }