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();
            }
        }
Beispiel #2
0
 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);
 }