Fusion.Engine.Graphics.RenderWorld.RenderRadiance C# (CSharp) Метод

RenderRadiance() публичный Метод

public RenderRadiance ( ) : void
Результат void
		public void RenderRadiance ()
		{
			var sw = new Stopwatch();

			Log.Message("Radiance capture...");

			sw.Start();
			using (new PixEvent("Capture Radiance")) {

				var sun	=	SkySettings.SunGlowIntensity;
				SkySettings.SunGlowIntensity = 0;

				int index = 0;

				foreach ( var envLight in LightSet.EnvLights ) {

					for (int i=0; i<6; i++) {
					
						ClearBuffers( radianceFrame );

						var camera = new Camera();
						camera.SetupCameraCubeFace( envLight.Position, (CubeFace)i, 0.125f, 5000 );

						//	render g-buffer :
						rs.SceneRenderer.RenderGBuffer( StereoEye.Mono, camera, radianceFrame, this );

						//	render sky :
						rs.Sky.Render( camera, StereoEye.Mono, radianceFrame, SkySettings );

						//	render lights :
						rs.LightRenderer.RenderLighting( StereoEye.Mono, camera, radianceFrame, this, rs.Sky.SkyCube );

						//	downsample captured frame to cube face.
						rs.Filter.StretchRect4x4( Radiance.GetSurface( 0, (CubeFace)i ), radianceFrame.HdrBuffer, SamplerState.LinearClamp, true );

						//	prefilter cubemap :
						rs.Filter.PrefilterEnvMap( Radiance );
					}
				
					RadianceCache.CopyFromRenderTargetCube( index, Radiance );
					index ++;
				}
				sw.Stop();
	
				SkySettings.SunGlowIntensity = sun;
			}

			Log.Message("{0} light probes - {1} ms", LightSet.EnvLights.Count, sw.ElapsedMilliseconds);
		}