Fusion.Engine.Graphics.RenderWorld.RenderHdrScene C# (CSharp) Method

RenderHdrScene() public method

public RenderHdrScene ( GameTime gameTime, StereoEye stereoEye, Viewport viewport, RenderTargetSurface targetSurface ) : void
gameTime Fusion.Engine.Common.GameTime
stereoEye StereoEye
viewport Viewport
targetSurface Fusion.Drivers.Graphics.RenderTargetSurface
return void
		void RenderHdrScene ( GameTime gameTime, StereoEye stereoEye, Viewport viewport, RenderTargetSurface targetSurface )
		{
			//	clear g-buffer and hdr-buffers:
			ClearBuffers( viewHdrFrame );

			//	single pass for stereo rendering :
			if (stereoEye!=StereoEye.Right) {

				//	simulate particles BEFORE lighting
				//	to make particle lit (position is required) and 
				//	get simulated particles for shadows.
				ParticleSystem.Simulate( gameTime, Camera );

				//	render shadows :
				rs.LightRenderer.RenderShadows( this, this.LightSet );
			}

			//	render g-buffer :
			rs.SceneRenderer.RenderGBuffer( stereoEye, Camera, viewHdrFrame, this );

			//	render ssao :
			rs.SsaoFilter.Render( stereoEye, Camera, viewHdrFrame.DepthBuffer, viewHdrFrame.NormalMapBuffer );

			switch (rs.ShowGBuffer) {
				case 1 : rs.Filter.Copy( targetSurface, viewHdrFrame.DiffuseBuffer ); return;
				case 2 : rs.Filter.Copy( targetSurface, viewHdrFrame.SpecularBuffer ); return;
				case 3 : rs.Filter.Copy( targetSurface, viewHdrFrame.NormalMapBuffer ); return;
				case 4 : rs.Filter.Copy( targetSurface, viewHdrFrame.ScatteringBuffer ); return;
				case 5 : rs.Filter.Copy( targetSurface, rs.SsaoFilter.OcclusionMap ); return;
				case 6 : rs.Filter.StretchRect( targetSurface, rs.LightRenderer.CascadedShadowMap.ParticleShadow ); return;
				case 7 : rs.Filter.StretchRect( targetSurface, rs.LightRenderer.CascadedShadowMap.ColorBuffer ); return;
			}

			//	render sky :
			rs.Sky.Render( Camera, stereoEye, viewHdrFrame, SkySettings );
			rs.Sky.RenderFogTable( SkySettings );

			//	render lights :
			rs.LightRenderer.RenderLighting( stereoEye, Camera, viewHdrFrame, this, Radiance );

			//	render "solid" DOF :
			rs.DofFilter.Render( gameTime, viewHdrFrame.LightAccumulator, viewHdrFrame.HdrBuffer, viewHdrFrame.DepthBuffer, this );

			//	render and simulate particles :
			ParticleSystem.Render( gameTime, Camera, stereoEye, viewHdrFrame );

			//	apply tonemapping and bloom :
			rs.HdrFilter.Render( gameTime, TempFXBuffer.Surface, viewHdrFrame.HdrBuffer, this );


			//	apply FXAA
			if (rs.UseFXAA) {
				rs.Filter.Fxaa( targetSurface, TempFXBuffer );
			} else {
				rs.Filter.Copy( targetSurface, TempFXBuffer );
			} 

			//	draw debug lines :
			Debug.Render( targetSurface, Camera );
		}