internal static void PrepareCullQuery(MyCullQuery cullQuery, ListReader <MyShadowmapQuery> shadowmapQueries, bool updateEnvironmentMap) { cullQuery.AddMainViewPass(new MyViewport(MyRender11.ViewportResolution), MyGBuffer.Main); foreach (var shadowmapQuery in shadowmapQueries) { bool isCascade = shadowmapQuery.QueryType == MyFrustumEnum.ShadowCascade; var matrix = shadowmapQuery.ProjectionInfo.WorldToProjection; cullQuery.AddDepthPass(ref matrix, shadowmapQuery.ProjectionInfo.CurrentLocalToProjection, shadowmapQuery.Viewport, shadowmapQuery.DepthBuffer, isCascade, ToString(shadowmapQuery.QueryType)); if (isCascade) { var smallCulling = new MyCullingSmallObjects { ProjectionDir = shadowmapQuery.ProjectionDir, ProjectionFactor = shadowmapQuery.ProjectionFactor, SkipThreshold = MyRenderProxy.Settings.ShadowCascadeSmallSkipThresholds[shadowmapQuery.CascadeIndex] }; cullQuery.FrustumCullQueries[cullQuery.Size - 1].SmallObjects = smallCulling; cullQuery.FrustumCullQueries[cullQuery.Size - 1].CascadeIndex = shadowmapQuery.CascadeIndex; } cullQuery.FrustumCullQueries[cullQuery.Size - 1].Type = shadowmapQuery.QueryType; cullQuery.FrustumCullQueries[cullQuery.Size - 1].Ignored = shadowmapQuery.IgnoredEntities; } if (updateEnvironmentMap) { MyEnvironmentProbe.UpdateEnvironmentProbes(cullQuery); } }
internal static void PrepareCullQuery(MyCullQuery cullQuery, ListReader <MyShadowmapQuery> shadowmapQueries, bool updateEnvironmentMap) { cullQuery.AddMainViewPass(new MyViewport(MyRender11.ViewportResolution), MyGBuffer.Main); foreach (var shadowmapQuery in shadowmapQueries) // old shadowing system { AddShadowmapQueryIntoCullQuery(cullQuery, shadowmapQuery); } //m_tmpShadowmapQueries.Clear(); //MyManagers.ShadowCore.PrepareShadowmapQueries(ref m_tmpShadowmapQueries); //foreach (var shadowmapQuery in m_tmpShadowmapQueries) // new shadowing system // AddShadowmapQueryIntoCullQuery(cullQuery, shadowmapQuery); if (updateEnvironmentMap) { MyManagers.EnvironmentProbe.UpdateCullQuery(cullQuery); } }
internal static void PrepareCullQuery(MyCullQuery cullQuery, ListReader<MyShadowmapQuery> shadowmapQueries, bool updateEnvironmentMap) { cullQuery.AddMainViewPass(new MyViewport(MyRender11.ViewportResolution), MyGBuffer.Main); foreach (var shadowmapQuery in shadowmapQueries) // old shadowing system AddShadowmapQueryIntoCullQuery(cullQuery, shadowmapQuery); //m_tmpShadowmapQueries.Clear(); //MyManagers.ShadowCore.PrepareShadowmapQueries(ref m_tmpShadowmapQueries); //foreach (var shadowmapQuery in m_tmpShadowmapQueries) // new shadowing system // AddShadowmapQueryIntoCullQuery(cullQuery, shadowmapQuery); if (updateEnvironmentMap) MyManagers.EnvironmentProbe.UpdateCullQuery(cullQuery); }
internal static void PrepareCullQuery(MyCullQuery cullQuery, ListReader<MyShadowmapQuery> shadowmapQueries, bool updateEnvironmentMap) { cullQuery.AddMainViewPass(new MyViewport(MyRender11.ViewportResolution), MyGBuffer.Main); foreach (var shadowmapQuery in shadowmapQueries) { bool isCascade = shadowmapQuery.QueryType == MyFrustumEnum.ShadowCascade; var matrix = shadowmapQuery.ProjectionInfo.WorldToProjection; cullQuery.AddDepthPass(ref matrix, shadowmapQuery.ProjectionInfo.CurrentLocalToProjection, shadowmapQuery.Viewport, shadowmapQuery.DepthBuffer, isCascade, ToString(shadowmapQuery.QueryType)); if (isCascade) { var smallCulling = new MyCullingSmallObjects { ProjectionDir = shadowmapQuery.ProjectionDir, ProjectionFactor = shadowmapQuery.ProjectionFactor, SkipThreshold = MyRenderProxy.Settings.ShadowCascadeSmallSkipThresholds[shadowmapQuery.CascadeIndex] }; cullQuery.FrustumCullQueries[cullQuery.Size - 1].SmallObjects = smallCulling; cullQuery.FrustumCullQueries[cullQuery.Size - 1].CascadeIndex = shadowmapQuery.CascadeIndex; } cullQuery.FrustumCullQueries[cullQuery.Size - 1].Type = shadowmapQuery.QueryType; cullQuery.FrustumCullQueries[cullQuery.Size - 1].Ignored = shadowmapQuery.IgnoredEntities; } if (updateEnvironmentMap) MyEnvironmentProbe.UpdateEnvironmentProbes(cullQuery); }