Example #1
0
        public PostProcessingGraphicsScreen(IServiceLocator services)
            : base(services.GetInstance <IGraphicsService>())
        {
            _sampleFramework = services.GetInstance <SampleFramework>();

            _spriteBatch            = new SpriteBatch(GraphicsService.GraphicsDevice);
            _clearGBufferRenderer   = new ClearGBufferRenderer(GraphicsService);
            _rebuildZBufferRenderer = new RebuildZBufferRenderer(GraphicsService);
            _meshRenderer           = new MeshRenderer();
            _skyRenderer            = new SkyRenderer(GraphicsService);
            _billboardRenderer      = new BillboardRenderer(GraphicsService, 2048);

            Scene          = new Scene();
            PostProcessors = new PostProcessorChain(GraphicsService);

            // Use 2D texture for reticle.
            var contentManager = services.GetInstance <ContentManager>();

            _reticle = contentManager.Load <Texture2D>("Reticle");

            // Use the sprite font of the GUI.
            var uiContentManager = services.GetInstance <ContentManager>("UIContent");
            var spriteFont       = uiContentManager.Load <SpriteFont>("UI Themes/BlendBlue/Default");

            DebugRenderer = new DebugRenderer(GraphicsService, spriteFont)
            {
                DefaultColor        = new Color(0, 0, 0),
                DefaultTextPosition = new Vector2F(10),
            };
        }
        public GBufferRenderer(IGraphicsService graphicsService, SceneNodeRenderer sceneNodeRenderer, DecalRenderer decalRenderer)
        {
            _clearGBufferRenderer = new ClearGBufferRenderer(graphicsService);
            _sceneNodeRenderer    = sceneNodeRenderer;
            _decalRenderer        = decalRenderer;

            // This filter is used to downsample the depth buffer (GBuffer0).
            _downsampleFilter = PostProcessHelper.GetDownsampleFilter(graphicsService);
        }