private void DrawOcclusions(BoundingFrustum viewFrustum) { if (postProcessingEffectsEnabled) { graphicsDevice.SetRenderTarget(occlusionRT); graphicsDevice.Clear(Color.Black); lightRenderer.Draw(level.Light, camera.Up, camera.Look); if (level.Type == LevelType.Outdoor) { terrainRenderer.DrawOcclusion(level.Terrain); terrainRenderer.DrawOcclusion(level.TerrainPlane); } foreach (Mesh mesh in level.MeshList) { if (viewFrustum.Intersects(mesh.AABB)) { meshRenderer.DrawMeshOcclusion(mesh, viewFrustum); } } foreach (ShootingTarget target in level.ShootingTargetList) { target.DrawOcclusion(meshRenderer, viewFrustum); } level.Sky.DrawOcclusion(); } }
public void Draw(Renderer2D renderer, Matrix cam) { hope.CalculateLightmap(renderer, cam, PixelSize, new Color(51, 51, 51)); for (int i = 0; i < Layers.Length; i++) { Layers[i].Draw(renderer); } renderer.End(); renderer.Begin(LightHelper.Multiply, cam); hope.Draw(renderer); renderer.End(); renderer.Begin(cam); }