Ejemplo n.º 1
0
        /// <summary>
        /// Load the resources.
        /// </summary>
        /// <remarks>Remember to call the base implementation of this method.</remarks>
        protected override void LoadContent()
        {
            #region Setup Input Controls

            buttons = new Button[4];

            // Create the virtual buttons to control the scene selection.
            buttons[0] = new Button
            {
                Name           = "Attack",
                ButtonBehavior = Button.ButtonBehaviors.DigitalInput,
                KeyButton      = new KeyButton(Keys.Space),
            };
            buttons[1] = new Button
            {
                Name           = "Attack",
                ButtonBehavior = Button.ButtonBehaviors.DigitalInput,
                KeyButton      = new KeyButton(Buttons.RightTrigger),
            };
            axis = new Axis
            {
                Name         = "Walk",
                AnalogAxis   = AnalogAxes.LeftStickY,
                AxisBehavior = Axis.AxisBehaviors.AnalogInput,
            };
            buttons[2] = new Button
            {
                Name           = "WalkPC",
                KeyButton      = new KeyButton(Keys.W),
                ButtonBehavior = Button.ButtonBehaviors.DigitalInput
            };
            buttons[3] = new Button
            {
                Name           = "RunPC",
                KeyButton      = new KeyButton(Keys.LeftShift),
                ButtonBehavior = Button.ButtonBehaviors.DigitalInput
            };

            #endregion

            #region Camera

            camera = new GameObject3D();
            camera.AddComponent <Camera>();
            camera.AddComponent <SoundListener>();
            camera.Camera.RenderTargetSize = Size.FullScreen;
            camera.Camera.FarPlane         = 100;
            camera.Camera.NearPlane        = 1f;
            camera.Transform.LookAt(new Vector3(-10, 10, 20), new Vector3(0, 5, 0), Vector3.Up);
            //ScriptCustomCameraScript script = (ScriptCustomCameraScript)camera.AddComponent<ScriptCustomCameraScript>();
            //script.SetPosition(new Vector3(0, 10, 20), new Vector3(0, 5, 0));
            camera.Camera.ClearColor  = Color.Black;
            camera.Camera.FieldOfView = 180 / 6f;
            camera.Camera.PostProcess = new PostProcess();
            camera.Camera.PostProcess.ToneMapping.AutoExposureEnabled = true;
            camera.Camera.PostProcess.MLAA.Enabled       = true;
            camera.Camera.PostProcess.MLAA.EdgeDetection = MLAA.EdgeDetectionType.Color;
            camera.Camera.PostProcess.Bloom.Threshold    = 3.5f;
            camera.Camera.AmbientLight = new AmbientLight
            {
                SphericalHarmonicLighting = SphericalHarmonicL2.GenerateSphericalHarmonicFromCubeTexture(new TextureCube("FactoryCatwalkRGBM")
                {
                    IsRgbm = true, RgbmMaxRange = 50,
                }),
                Color     = new Color(10, 10, 10),
                Intensity = 5f,
            };
            //camera.Camera.Sky = new Skybox { TextureCube = new TextureCube("FactoryCatwalkRGBM") { IsRgbm = true, RgbmMaxRange = 50, } };

            #endregion

            #region Models

            dude = new GameObject3D(new FileModel("DudeWalk"), new BlinnPhong());
            // One material for mesh part.
            dude.ModelRenderer.MeshMaterials    = new Material[5];
            dude.ModelRenderer.MeshMaterials[0] = new BlinnPhong {
                DiffuseTexture = new Texture("Dude\\head"), NormalTexture = new Texture("Dude\\headN"), SpecularTexture = new Texture("Dude\\headS"), SpecularPowerFromTexture = false, SpecularPower = 300
            };
            dude.ModelRenderer.MeshMaterials[2] = new BlinnPhong {
                DiffuseTexture = new Texture("Dude\\jacket"), NormalTexture = new Texture("Dude\\jacketN"), SpecularTexture = new Texture("Dude\\jacketS"), SpecularPowerFromTexture = false, SpecularPower = 300
            };
            dude.ModelRenderer.MeshMaterials[3] = new BlinnPhong {
                DiffuseTexture = new Texture("Dude\\pants"), NormalTexture = new Texture("Dude\\pantsN"), SpecularTexture = new Texture("Dude\\pantsS"), SpecularPowerFromTexture = false, SpecularPower = 300
            };
            dude.ModelRenderer.MeshMaterials[1] = new BlinnPhong {
                DiffuseTexture = new Texture("Dude\\upBodyC"), NormalTexture = new Texture("Dude\\upbodyN"), SpecularTexture = new Texture("Dude\\upbodyCS"), SpecularPowerFromTexture = false, SpecularPower = 300
            };
            dude.ModelRenderer.MeshMaterials[4] = new BlinnPhong {
                DiffuseTexture = new Texture("Dude\\upBodyC"), NormalTexture = new Texture("Dude\\upbodyN"), SpecularTexture = new Texture("Dude\\upbodyCS"), SpecularPowerFromTexture = false, SpecularPower = 300
            };
            dude.Transform.LocalScale = new Vector3(0.1f, 0.1f, 0.1f);
            // Add animations.
            dude.AddComponent <ModelAnimations>();
            ModelAnimation modelAnimation;
            // First DudeAttack.
            #if XBOX
            modelAnimation          = new ModelAnimation("DudeAttackXbox"); // Be aware to select the correct content processor when you add your fbx files on the solution.
            modelAnimation.WrapMode = WrapMode.ClampForever;
            dude.ModelAnimations.AddAnimationClip(modelAnimation);
            #else
            modelAnimation          = new ModelAnimation("DudeAttack"); // Be aware to select the correct content processor when you add your fbx files on the solution.
            modelAnimation.WrapMode = WrapMode.ClampForever;
            dude.ModelAnimations.AddAnimationClip(modelAnimation);
            #endif
            // Then DudeRun.
            #if XBOX
            modelAnimation          = new ModelAnimation("DudeRunXbox"); // Be aware to select the correct content processor when you add your fbx files on the solution.
            modelAnimation.WrapMode = WrapMode.Loop;
            dude.ModelAnimations.AddAnimationClip(modelAnimation);
            #else
            modelAnimation          = new ModelAnimation("DudeRun"); // Be aware to select the correct content processor when you add your fbx files on the solution.
            modelAnimation.WrapMode = WrapMode.Loop;
            dude.ModelAnimations.AddAnimationClip(modelAnimation);
            #endif
            // Set the parameters from the animation that it is stored in DudeWalk (this animation is added automatically by the system).
            dude.ModelAnimations["Take 001"].WrapMode = WrapMode.Loop;

            // Load the rifle model.
            rifle = new GameObject3D(new FileModel("Rifle"), new BlinnPhong {
                DiffuseColor = new Color(15, 15, 15), SpecularPower = 100, SpecularIntensity = 0.01f
            });

            // And a floor
            floor = new GameObject3D(new FileModel("Terrain/TerrainLOD0Grid"),
                                     new BlinnPhong
            {
                SpecularPower     = 300,
                DiffuseColor      = new Color(250, 250, 250),
                SpecularIntensity = 0.0f,
            })
            {
                Transform = { LocalScale = new Vector3(5, 5, 5) }
            };

            #endregion

            #region Shadows and Lights

            Shadow.DistributeShadowCalculationsBetweenFrames = true;

            directionalLight = new GameObject3D();
            directionalLight.AddComponent <DirectionalLight>();
            directionalLight.DirectionalLight.Color     = new Color(250, 250, 140);
            directionalLight.DirectionalLight.Intensity = 25f;
            directionalLight.Transform.LookAt(new Vector3(-0.75f, 0.85f, -1.3f), Vector3.Zero, Vector3.Forward);
            directionalLight.DirectionalLight.Shadow = new CascadedShadow
            {
                Filter = Shadow.FilterType.PcfPosion,
                LightDepthTextureSize = Size.Square1024X1024,
            };
            DirectionalLight.Sun = directionalLight.DirectionalLight;

            #endregion

            #region Dog Fight Studios

            // Dog Fight Studios share their animations and the scene logic.
            GameObject2D dogFightStudios = new GameObject2D();
            dogFightStudios.AddComponent <HudTexture>();
            dogFightStudios.HudTexture.Texture = new Texture("DogFightStudios");
            dogFightStudios.Transform.Position = new Vector3(-55, -80, 0);

            #endregion
        } // Load
Ejemplo n.º 2
0
        /// <summary>
        /// Load the resources.
        /// </summary>
        protected override void LoadContent()
        {

            #region Camera
            
            camera = new GameObject3D();
            camera.AddComponent<Camera>();
            camera.AddComponent<SoundListener>();
            camera.Camera.RenderTargetSize = Size.FullScreen;
            camera.Camera.FarPlane = 300;
            camera.Camera.NearPlane = 1f; // Do not place a small value here, you can destroy performance, not just precision.
            camera.Transform.LookAt(new Vector3(0, 0, 15), Vector3.Zero, Vector3.Up);
            WarehouseCameraScript script = (WarehouseCameraScript)camera.AddComponent<WarehouseCameraScript>();
            //script.SetPosition(new Vector3(0, 3, 18), new Vector3(0, 1.5f, 2.2f));
            script.SetPosition(new Vector3(10, 3, 18), new Vector3(0, 1.5f, 3.2f));
            camera.Camera.ClearColor = Color.Black;
            camera.Camera.FieldOfView = 180 / 7f;
            camera.Camera.PostProcess = new PostProcess();
            camera.Camera.PostProcess.ToneMapping.AutoExposureEnabled = false;
            camera.Camera.PostProcess.ToneMapping.LensExposure = -0.5f;
            camera.Camera.PostProcess.ToneMapping.ToneMappingFunction = ToneMapping.ToneMappingFunctionEnumerate.FilmicALU;
            camera.Camera.PostProcess.MLAA.EdgeDetection = MLAA.EdgeDetectionType.Color;
            camera.Camera.PostProcess.MLAA.Enabled = true;
            camera.Camera.PostProcess.Bloom.Enabled = true;
            camera.Camera.PostProcess.Bloom.Threshold = 3f;
            camera.Camera.PostProcess.FilmGrain.Enabled = true;
            camera.Camera.PostProcess.FilmGrain.Strength = 0.15f;
            /*camera.Camera.PostProcess.AdjustLevels.Enabled = true;
            camera.Camera.PostProcess.AdjustLevels.InputGamma = 0.9f;
            camera.Camera.PostProcess.AdjustLevels.InputWhite = 0.95f;*/
            camera.Camera.PostProcess.AnamorphicLensFlare.Enabled = false;
            camera.Camera.PostProcess.ColorCorrection.Enabled = true;
            camera.Camera.PostProcess.ColorCorrection.FirstLookupTable = new LookupTable("LookupTableWarehouse"); // A little more red and blue.
            camera.Camera.AmbientLight = new AmbientLight
            {
                SphericalHarmonicLighting = SphericalHarmonicL2.GenerateSphericalHarmonicFromCubeTexture(new TextureCube("FactoryCatwalkRGBM") { IsRgbm = true, RgbmMaxRange = 50, }),
                Color = new Color(10, 10, 10),
                Intensity = 2f,
                AmbientOcclusionStrength = 1.5f
            };
            //camera.Camera.Sky = new Skydome { Texture = new Texture("HotPursuitSkydome") };
            //camera.Camera.Sky = new Skybox { TextureCube = new TextureCube("FactoryCatwalkRGBM") { IsRgbm = true, RgbmMaxRange = 50, } };
            #if !XBOX
                camera.Camera.AmbientLight.AmbientOcclusion = new HorizonBasedAmbientOcclusion
                {
                    NumberSteps = 12,
                    NumberDirections = 12,
                    Radius = 0.003f, // Bigger values produce more cache misses and you don’t want GPU cache misses, trust me.
                    LineAttenuation = 1.0f,
                    Contrast = 1.1f,
                    AngleBias = 0.1f,
                    Quality = HorizonBasedAmbientOcclusion.QualityType.HighQuality,
                    TextureSize = Size.TextureSize.HalfSize,
                };
            #endif

            #region Test Split Screen
            /*
            camera.Camera.NormalizedViewport = new RectangleF(0, 0, 1, 0.5f);
            camera2 = new GameObject3D();
            camera2.AddComponent<Camera>();
            camera2.Camera.MasterCamera = camera.Camera;
            camera2.Camera.ClearColor = Color.Black;
            camera2.Camera.FieldOfView = 180 / 8.0f;
            camera2.Camera.NormalizedViewport = new RectangleF(0, 0.5f, 1, 0.5f);
            camera2.Transform.LookAt(new Vector3(-5, 5, -15), new Vector3(0, 3, 0), Vector3.Up);
            camera2.Camera.AmbientLight = camera.Camera.AmbientLight;
            camera2.Camera.PostProcess = new PostProcess();
            camera2.Camera.PostProcess.ToneMapping.AutoExposureEnabled = true;
            camera2.Camera.PostProcess.ToneMapping.LensExposure = 0.5f;
            camera2.Camera.PostProcess.ToneMapping.ToneMappingFunction = ToneMapping.ToneMappingFunctionEnumerate.FilmicALU;
            camera2.Camera.PostProcess.MLAA.EdgeDetection = MLAA.EdgeDetectionType.Color;
            camera2.Camera.PostProcess.MLAA.Enabled = true;
            camera2.Camera.PostProcess.Bloom.Enabled = true;
            camera2.Camera.PostProcess.Bloom.Threshold = 3f;
            camera2.Camera.PostProcess.FilmGrain.Enabled = true;
            camera2.Camera.PostProcess.FilmGrain.Strength = 0.15f;
            */
            #endregion

            #endregion
            
            #region Models
            
            #if XBOX
                warehouseWalls = new GameObject3D(new FileModel("Warehouse\\WarehouseWallsXbox"),
                                                  new BlinnPhong
                                                      {
                                                          DiffuseTexture = new Texture("Warehouse\\Warehouse-DiffuseXbox"),
                                                          SpecularTexture = new Texture("Warehouse\\Warehouse-SpecularXbox"),
                                                          SpecularIntensity = 3,
                                                          SpecularPower = 30000,
                                                      });
                warehouseRoof  = new GameObject3D(new FileModel("Warehouse\\WarehouseRoofXbox"),  
                                                  new BlinnPhong
                                                      {
                                                          DiffuseTexture = new Texture("Warehouse\\MetalRoof-DiffuseXbox")
                                                      });
                warehouseRoof1 = new GameObject3D(new FileModel("Warehouse\\WarehouseRoof1Xbox"),
                                                  new BlinnPhong
                                                  {
                                                      DiffuseTexture = new Texture("Warehouse\\MetalRoof2-DiffuseXbox")
                                                  });

                warehouseWood = new GameObject3D(new FileModel("Warehouse\\WarehouseWoodXbox"),
                                                 new BlinnPhong
                                                 {
                                                     DiffuseTexture = new Texture("Warehouse\\Wood-DiffuseXbox")
                                                 });

                warehouseWood2 = new GameObject3D(new FileModel("Warehouse\\WarehouseWood2Xbox"),
                                                  new BlinnPhong
                                                  {
                                                      DiffuseTexture = new Texture("Warehouse\\Wood2-DiffuseXbox")
                                                  });

                warehouseBrokenWindow = new GameObject3D(new FileModel("Warehouse\\WarehouseBrokenWindowXbox"),
                                                 new BlinnPhong
                                                 {
                                                     DiffuseTexture = new Texture("Warehouse\\Window-DiffuseXbox")
                                                 });

                warehouseWindow = new GameObject3D(new FileModel("Warehouse\\WarehouseWindowXbox"),
                                                  new BlinnPhong
                                                  {
                                                      DiffuseTexture = new Texture("Warehouse\\Window-DiffuseXbox")
                                                  });
                warehouseGround = new GameObject3D(new FileModel("Warehouse\\WarehouseGroundXbox"),
                                                  new BlinnPhong
                                                  {
                                                      DiffuseTexture = new Texture("Warehouse\\Ground-DiffuseXbox"),
                                                      NormalTexture = new Texture("Warehouse\\Ground-NormalsXbox"),
                                                      SpecularIntensity = 0.7f
                                                  });
            #else
                warehouseWalls = new GameObject3D(new FileModel("Warehouse\\WarehouseWalls"),
                                                  new BlinnPhong
                                                      {
                                                          DiffuseTexture = new Texture("Warehouse\\Warehouse-Diffuse"),
                                                          SpecularTexture = new Texture("Warehouse\\Warehouse-Specular"),
                                                          SpecularIntensity = 3,
                                                          SpecularPower = 30000,
                                                      });
                warehouseRoof  = new GameObject3D(new FileModel("Warehouse\\WarehouseRoof"),  
                                                  new BlinnPhong
                                                      {
                                                          DiffuseTexture = new Texture("Warehouse\\MetalRoof-Diffuse")
                                                      });
                warehouseRoof1 = new GameObject3D(new FileModel("Warehouse\\WarehouseRoof1"),
                                                  new BlinnPhong
                                                  {
                                                      DiffuseTexture = new Texture("Warehouse\\MetalRoof2-Diffuse")
                                                  });

                warehouseWood = new GameObject3D(new FileModel("Warehouse\\WarehouseWood"),
                                                 new BlinnPhong
                                                 {
                                                     DiffuseTexture = new Texture("Warehouse\\Wood-Diffuse")
                                                 });

                warehouseWood2 = new GameObject3D(new FileModel("Warehouse\\WarehouseWood2"),
                                                  new BlinnPhong
                                                  {
                                                      DiffuseTexture = new Texture("Warehouse\\Wood2-Diffuse")
                                                  });

                warehouseBrokenWindow = new GameObject3D(new FileModel("Warehouse\\WarehouseBrokenWindow"),
                                                 new BlinnPhong
                                                 {
                                                     DiffuseTexture = new Texture("Warehouse\\Window-Diffuse")
                                                 });

                warehouseWindow = new GameObject3D(new FileModel("Warehouse\\WarehouseWindow"),
                                                  new BlinnPhong
                                                  {
                                                      DiffuseTexture = new Texture("Warehouse\\Window-Diffuse")
                                                  });
                warehouseGround = new GameObject3D(new FileModel("Warehouse\\WarehouseGround"),
                                                  new BlinnPhong
                                                  {
                                                      DiffuseTexture = new Texture("Warehouse\\Ground-Diffuse"),
                                                      NormalTexture = new Texture("Warehouse\\Ground-Normals"),
                                                      SpecularIntensity = 0.7f
                                                  });
            #endif

            #endregion
            
            #region Shadows and Lights

            Shadow.DistributeShadowCalculationsBetweenFrames = true;
            
            directionalLight = new GameObject3D();
            directionalLight.AddComponent<DirectionalLight>();
            directionalLight.DirectionalLight.Color = new Color(190, 190, 150);
            directionalLight.DirectionalLight.Intensity = 9.2f;
            directionalLight.Transform.LookAt(new Vector3(0.3f, 0.95f, -0.3f), Vector3.Zero, Vector3.Forward);
            DirectionalLight.Sun = directionalLight.DirectionalLight;
            directionalLight.DirectionalLight.Shadow = new CascadedShadow
            {
                Filter = Shadow.FilterType.PcfPosion,
                LightDepthTextureSize = Size.Square512X512,
                ShadowTextureSize = Size.TextureSize.FullSize, // Lower than this could produce artifacts if the light is too intense.
                DepthBias = 0.0025f,
                FarPlaneSplit1 = 15,
                FarPlaneSplit2 = 40,
                FarPlaneSplit3 = 100,
                //FarPlaneSplit4 = 150
            };
            /*directionalLight.DirectionalLight.Shadow = new BasicShadow
            {
                Filter = Shadow.FilterType.PcfPosion,
                LightDepthTextureSize = Size.Square512X512,
                ShadowTextureSize = Size.TextureSize.FullSize, // Lower than this could produce artifacts if the light is to intense.
                DepthBias = 0.0025f,
                Range = 100,
            };*/
            
            pointLight = new GameObject3D();
            pointLight.AddComponent<PointLight>();
            pointLight.PointLight.Color = new Color(180, 190, 230);
            pointLight.PointLight.Intensity = 0.3f;
            pointLight.PointLight.Range = 60;
            pointLight.Transform.Position = new Vector3(4.8f, 1.5f, 10);
            //pointLight.PointLight.Shadow = new CubeShadow { LightDepthTextureSize = 512, };

            pointLight = new GameObject3D();
            pointLight.AddComponent<PointLight>();
            pointLight.PointLight.Color = new Color(130, 130, 190);
            pointLight.PointLight.Intensity = 0.7f;
            pointLight.PointLight.Range = 60;
            pointLight.Transform.Position = new Vector3(-4.8f, 0, -4);

            /*pointLightClipVolumeTest = new GameObject3D();
            pointLightClipVolumeTest.AddComponent<PointLight>();
            pointLightClipVolumeTest.PointLight.Color = new Color(250, 20, 20);
            pointLightClipVolumeTest.PointLight.Intensity = 2f;
            pointLightClipVolumeTest.PointLight.Range = 60;
            pointLightClipVolumeTest.PointLight.ClipVolume = new FileModel("ClipVolume");
            pointLightClipVolumeTest.PointLight.RenderClipVolumeInLocalSpace = true;
            pointLightClipVolumeTest.Transform.Position = new Vector3(26f, 7, 35);*/

            spotLight = new GameObject3D();
            spotLight.AddComponent<SpotLight>();
            spotLight.SpotLight.Color = new Color(0, 250, 0);
            spotLight.SpotLight.Intensity = 0.5f;
            spotLight.SpotLight.Range = 40; // I always forget to set the light range lower than the camera far plane.
            spotLight.Transform.Position = new Vector3(0, 16, 15);
            spotLight.Transform.Rotate(new Vector3(-80, 0, 0));
            spotLight.SpotLight.LightMaskTexture = new Texture("LightMasks\\TestLightMask");
            /*spotLight.SpotLight.Shadow = new BasicShadow
            {
                Filter = Shadow.FilterType.PcfPosion,
                LightDepthTextureSize = Size.Square512X512,
                ShadowTextureSize = Size.TextureSize.FullSize,
                DepthBias = 0.0005f,
            };*/
            
            #endregion
            
            #region Lamborghini Murcielago LP640
           
            lamborghiniMurcielagoLoader = new LamborghiniMurcielagoLoader();
            lamborghiniMurcielagoLoader.LoadContent();
            lamborghiniMurcielagoLoader.LamborghiniMurcielago.Transform.LocalScale = new Vector3(1.2f, 1.2f, 1.2f);
            lamborghiniMurcielagoLoader.LamborghiniMurcielago.Transform.LocalPosition = new Vector3(0, 1.4f, 2.35f);
            lamborghiniMurcielagoLoader.TiresAngle = -40;
            
            #endregion

            #region Particles
            
            // Pit particles
            GameObject3D particles = new GameObject3D();
            particles.AddComponent<ParticleEmitter>();
            particles.AddComponent<ParticleRenderer>();
            particles.ParticleEmitter.MaximumNumberParticles = 75;
            particles.Transform.LocalPosition = new Vector3(-1.2f, 0, -13);
            particles.ParticleEmitter.Duration = 50f;
            particles.ParticleEmitter.EmitterVelocitySensitivity = 1;
            particles.ParticleEmitter.MinimumHorizontalVelocity = 1;
            particles.ParticleEmitter.MaximumHorizontalVelocity = 2f;
            particles.ParticleEmitter.MinimumVerticalVelocity = 1;
            particles.ParticleEmitter.MaximumVerticalVelocity = 2;
            particles.ParticleRenderer.Texture = new Texture("Particles\\Smoke");
            particles.ParticleRenderer.SoftParticles = true;
            particles.ParticleRenderer.FadeDistance = 25.0f;
            particles.ParticleRenderer.BlendState = BlendState.NonPremultiplied;
            particles.ParticleRenderer.DurationRandomness = 0.1f;
            particles.ParticleRenderer.Gravity = new Vector3(0, 1, 5);
            particles.ParticleRenderer.EndVelocity = 0.75f;
            particles.ParticleRenderer.MinimumColor = Color.Red;
            particles.ParticleRenderer.MaximumColor = Color.White;
            particles.ParticleRenderer.RotateSpeed = new Vector2(-0.3f, 0.25f);
            particles.ParticleRenderer.StartSize = new Vector2(25, 30);
            particles.ParticleRenderer.EndSize = new Vector2(75, 100);
            particles.ParticleRenderer.TilesX = 1;
            particles.ParticleRenderer.TilesY = 1;
            particles.ParticleRenderer.AnimationRepetition = 1;

            particles = new GameObject3D();
            particles.AddComponent<ParticleEmitter>();
            particles.AddComponent<ParticleRenderer>();
            particles.ParticleEmitter.MaximumNumberParticles = 75;
            particles.Transform.LocalPosition = new Vector3(-3.2f, 0, 13);
            particles.ParticleEmitter.Duration = 50f;
            particles.ParticleEmitter.EmitterVelocitySensitivity = 1;
            particles.ParticleEmitter.MinimumHorizontalVelocity = 1;
            particles.ParticleEmitter.MaximumHorizontalVelocity = 2f;
            particles.ParticleEmitter.MinimumVerticalVelocity = 1;
            particles.ParticleEmitter.MaximumVerticalVelocity = 2;
            particles.ParticleRenderer.Texture = new Texture("Particles\\Smoke");
            particles.ParticleRenderer.SoftParticles = true;
            particles.ParticleRenderer.FadeDistance = 25.0f;
            particles.ParticleRenderer.BlendState = BlendState.NonPremultiplied;
            particles.ParticleRenderer.DurationRandomness = 0.1f;
            particles.ParticleRenderer.Gravity = new Vector3(0, 1, -5);
            particles.ParticleRenderer.EndVelocity = 0.75f;
            particles.ParticleRenderer.MinimumColor = Color.Red;
            particles.ParticleRenderer.MaximumColor = Color.White;
            particles.ParticleRenderer.RotateSpeed = new Vector2(-0.2f, 0.2f);
            particles.ParticleRenderer.StartSize = new Vector2(25, 50);
            particles.ParticleRenderer.EndSize = new Vector2(75, 100);
            particles.ParticleRenderer.TilesX = 1;
            particles.ParticleRenderer.TilesY = 1;
            particles.ParticleRenderer.AnimationRepetition = 1;
            
            #endregion

            #region Statistics

            Layer.GetLayerByNumber(26).Name = "Statistics Layer";
            GameObject2D statistics = new GameObject2D();
            statistics.AddComponent<ScriptStatisticsDrawer>();

            #endregion

            #region Legend
            /*
            demoLegend = new GameObject2D();
            var legend = (HudText)demoLegend.AddComponent<HudText>();
            legend.Color = new Color(0.1f, 0.1f, 0.1f, 1f);
            #if XBOX
                legend.Text.Append("A to open the doors\n");
                legend.Text.Append("Left stick to rotate the wheels");
            #else
                legend.Text.Append("Space or A to open the doors\n");
                legend.Text.Append("Left and right cursors or left stick to rotate the wheels\n");
                legend.Text.Append("Left mouse button or right stick to move the camera");
            #endif*/
            
            #endregion
            
        } // Load
Ejemplo n.º 3
0
        /// <summary>
        /// Load the resources.
        /// </summary>
        protected override void LoadContent()
        {

            #region Camera
            
            camera = new GameObject3D();
            camera.AddComponent<Camera>();
            camera.AddComponent<SoundListener>();
            camera.Camera.RenderTargetSize = Size.FullScreen;
            camera.Camera.FarPlane = 1000;
            camera.Camera.NearPlane = 1f; // Do not place a small value here, you can destroy performance, not just precision.
            camera.Transform.LookAt(new Vector3(0, 0, 15), Vector3.Zero, Vector3.Up);
            ScriptCustomCameraScript script = (ScriptCustomCameraScript)camera.AddComponent<ScriptCustomCameraScript>();
            script.SetPosition(new Vector3(182, -85.47f, 150), new Vector3(0, 26f, 0));
            camera.Camera.ClearColor = Color.Black;
            camera.Camera.FieldOfView = 180 / 7f;
            camera.Camera.PostProcess = new PostProcess();
            camera.Camera.PostProcess.ToneMapping.AutoExposureEnabled = true;
            camera.Camera.PostProcess.ToneMapping.LensExposure = -1.5f;
            camera.Camera.PostProcess.ToneMapping.ToneMappingFunction = ToneMapping.ToneMappingFunctionEnumerate.FilmicALU;
            camera.Camera.PostProcess.MLAA.EdgeDetection = MLAA.EdgeDetectionType.Both;
            camera.Camera.PostProcess.MLAA.ThresholdColor = 0.1f;
            camera.Camera.PostProcess.MLAA.ThresholdDepth = 0.03f;
            camera.Camera.PostProcess.MLAA.Enabled = true;
            camera.Camera.PostProcess.Bloom.Enabled = true;
            camera.Camera.PostProcess.Bloom.Threshold = 3f;
            camera.Camera.PostProcess.FilmGrain.Enabled = true;
            camera.Camera.PostProcess.FilmGrain.Strength = 0.1f;
            camera.Camera.PostProcess.AnamorphicLensFlare.Enabled = false;
            camera.Camera.PostProcess.ColorCorrection.Enabled = true;
            camera.Camera.PostProcess.ColorCorrection.FirstLookupTable = new LookupTable("LookupTableWarehouse"); // A little more red and blue.
            camera.Camera.AmbientLight = new AmbientLight
            {
                //SphericalHarmonicLighting = SphericalHarmonicL2.GenerateSphericalHarmonicFromCubeTexture(new TextureCube("FactoryCatwalkRGBM") { IsRgbm = true, RgbmMaxRange = 50, }),
                //SphericalHarmonicLighting = SphericalHarmonicL2.GenerateSphericalHarmonicFromLatLongTexture(new Texture("CubeTextures\\Arches_E_PineTree_3k")),
                SphericalHarmonicLighting = SphericalHarmonicL2.GenerateSphericalHarmonicFromLatLongTexture(new Texture("CubeTextures\\Desert-15_XXLResize")),
                //SphericalHarmonicLighting = SphericalHarmonicL2.GenerateSphericalHarmonicFromLatLongTexture(new Texture("CubeTextures\\DH102LL")),
                //SphericalHarmonicLighting = SphericalHarmonicL2.GenerateSphericalHarmonicFromLatLongTexture(new Texture("CubeTextures\\Factory_Catwalk_2k")),
                Color = new Color(0, 0, 0),
                Intensity = 5f,
                AmbientOcclusionStrength = 2.5f
            };
            camera.Camera.Sky = new Skydome { Texture = new Texture("HotPursuitSkydome") };
            //camera.Camera.Sky = new Skybox { TextureCube = new TextureCube("FactoryCatwalkRGBM") { IsRgbm = true, RgbmMaxRange = 50, }, ColorIntensity = 15 };
            #if !XBOX
                camera.Camera.AmbientLight.AmbientOcclusion = new HorizonBasedAmbientOcclusion
                {
                    NumberSteps = 12,
                    NumberDirections = 12,
                    Radius = 0.003f, // Bigger values produce more cache misses and you don’t want GPU cache misses, trust me.
                    LineAttenuation = 1.0f,
                    Contrast = 1.1f,
                    AngleBias = 0.1f,
                    Quality = HorizonBasedAmbientOcclusion.QualityType.HighQuality,
                    TextureSize = Size.TextureSize.HalfSize,
                };
            #endif
            #endregion
            
            #region Models

            warehouseGround = new GameObject3D(new FileModel("Warehouse\\WarehouseGround"),
                                      new BlinnPhong
                                      {
                                          DiffuseTexture = new Texture("Warehouse\\Ground-Diffuse"),
                                          NormalTexture = new Texture("Warehouse\\Ground-Normals"),
                                          SpecularIntensity = 0.7f
                                      });
            warehouseGround.Transform.LocalScale = new Vector3(10, 10, 10);
            warehouseGround.Transform.Translate(0, -35.5f, 0);

            float specularIntensity = 2;
            float specularPower = 500;

            townhall = new GameObject3D(new FileModel("Tech Demo\\XNA_TownHall"),
                                            new BlinnPhong
                                            {
                                                DiffuseColor = Color.White,
                                                SpecularIntensity = 3,
                                                SpecularPower = 300,
                                            });
            townhall.Transform.Rotate(new Vector3(-90, -90, 0));
            townhall.Transform.Translate(40, -26f, -260, Space.World);
            townhall.ModelRenderer.MeshMaterials = new Material[5];
            townhall.ModelRenderer.MeshMaterials[0] = new BlinnPhong
            {
                DiffuseTexture = new Texture("Tech Demo\\XNA_building02_wall04"),
                NormalTexture = new Texture("Tech Demo\\XNA_building02_wall04_N"),
                SpecularIntensity = specularIntensity,
                SpecularPower = specularPower,
            };
            townhall.ModelRenderer.MeshMaterials[1] = new BlinnPhong
            {
                DiffuseTexture = new Texture("Tech Demo\\XNA_building02_roff02"),
                NormalTexture = new Texture("Tech Demo\\XNA_building02_roff02_N"),
                SpecularIntensity = specularIntensity,
                SpecularPower = specularPower,
            };
            townhall.ModelRenderer.MeshMaterials[2] = new BlinnPhong
            {
                DiffuseTexture = new Texture("Tech Demo\\XNA_building02_wall03"),
                NormalTexture = new Texture("Tech Demo\\XNA_building02_wall03_N"),
                SpecularPowerFromTexture = false,
                SpecularIntensity = specularIntensity,
                SpecularPower = specularPower,
            };
            townhall.ModelRenderer.MeshMaterials[3] = new BlinnPhong
            {
                DiffuseTexture = new Texture("Tech Demo\\XNA_building02_wall05"),
                NormalTexture = new Texture("Tech Demo\\XNA_building02_wall05_N"),
                SpecularPowerFromTexture = false,
                SpecularIntensity = specularIntensity,
                SpecularPower = specularPower,
            };
            townhall.ModelRenderer.MeshMaterials[4] = new BlinnPhong
            {
                DiffuseTexture = new Texture("Tech Demo\\XNA_building02_window01"),
                NormalTexture = new Texture("Tech Demo\\XNA_building02_window01_N"),
                SpecularPowerFromTexture = false,
                SpecularIntensity = specularIntensity,
                SpecularPower = specularPower,
            };

            building01 = new GameObject3D(new FileModel("Tech Demo\\building01"),
                                new BlinnPhong
                                {
                                    DiffuseColor = Color.White,
                                    SpecularIntensity = 3,
                                    SpecularPower = 300,
                                });
            building01.Transform.Rotate(new Vector3(-90, 0, 0));
            building01.ModelRenderer.MeshMaterials = new Material[23];
            building01.ModelRenderer.MeshMaterials[0] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_groundfloor01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_groundfloor01_N"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_groundfloor01_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[1] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_groundfloor02_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_groundfloor02_N"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_groundfloor02_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[2] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_wall01_D"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[3] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_brick02_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_brick02_N"),
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[4] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_brick03_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_brick03_N"),
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[5] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_brick01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_brick01_N"),
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[6] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_brick04_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_brick01_N"),
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[7] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_window03_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_window03_N"),
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[8] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_window02_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_window02_N"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_window02_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[9] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_shop01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_shop01_N"),
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[10] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_window01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_window01_N"),
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[11] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_shop01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_shop01_N"),
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[12] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_Shutter-doors01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_Shutter-doors01_N"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_Shutter-doors01_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[13] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_Shutter-doors03_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_Shutter-doors03_N"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_Shutter-doors03_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[14] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_Shutter-doors02_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_Shutter-doors02_N"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_Shutter-doors02_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[15] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_bill01_D"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_bill01_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[16] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_Watertower01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_Watertower01_N"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_Watertower01_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[17] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_Shutter-doors01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_Shutter-doors01_N"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_Shutter-doors01_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[18] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_AirCondition01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_AirCondition01_N"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_AirCondition01_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[19] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_flaps01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_flaps01_N"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_flaps01_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[20] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_rainshed01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_rainshed01_N"),
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[21] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_iron01_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_iron01_N"),
                                                                SpecularTexture = new Texture("Tech Demo\\building01_iron01_S"),
                                                                SpecularPowerFromTexture = false,
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            building01.ModelRenderer.MeshMaterials[22] = new BlinnPhong
                                                            {
                                                                DiffuseTexture = new Texture("Tech Demo\\building01_rainshed02_D"),
                                                                NormalTexture = new Texture("Tech Demo\\building01_rainshed02_N"),
                                                                SpecularIntensity = specularIntensity,
                                                                SpecularPower = specularPower,
                                                            };
            #endregion

            #region Statistics

            //GameObject2D statistics = new GameObject2D();
            //statistics.AddComponent<ScriptStatisticsDrawer>();

            #endregion
            
            #region Shadows and Lights

            Shadow.DistributeShadowCalculationsBetweenFrames = true;
            
            directionalLight = new GameObject3D();
            directionalLight.AddComponent<DirectionalLight>();
            directionalLight.DirectionalLight.Color = new Color(190, 190, 150);
            directionalLight.DirectionalLight.Intensity = 25.2f;
            directionalLight.Transform.LookAt(new Vector3(0.3f, 0.5f, -0.5f), Vector3.Zero, Vector3.Forward);
            DirectionalLight.Sun = directionalLight.DirectionalLight;
            directionalLight.DirectionalLight.Shadow = new CascadedShadow
            {
                Filter = Shadow.FilterType.Pcf7X7,
                LightDepthTextureSize = Size.Square1024X1024,
                ShadowTextureSize = Size.TextureSize.FullSize, // Lower than this could produce artifacts if the light is too intense.
                DepthBias = 0.0025f,
                FarPlaneSplit1 = 200,
                FarPlaneSplit2 = 300,
                FarPlaneSplit3 = 500,
                FarPlaneSplit4 = 800
            };
            
            #endregion

            #region Particles
            /*
            // Pit particles
            GameObject3D particles = new GameObject3D();
            particles.AddComponent<ParticleEmitter>();
            particles.AddComponent<ParticleRenderer>();
            particles.ParticleEmitter.MaximumNumberParticles = 75;
            particles.Transform.LocalPosition = new Vector3(-1.2f, 0, -13);
            particles.ParticleEmitter.Duration = 50f;
            particles.ParticleEmitter.EmitterVelocitySensitivity = 1;
            particles.ParticleEmitter.MinimumHorizontalVelocity = 1;
            particles.ParticleEmitter.MaximumHorizontalVelocity = 2f;
            particles.ParticleEmitter.MinimumVerticalVelocity = 1;
            particles.ParticleEmitter.MaximumVerticalVelocity = 2;
            particles.ParticleRenderer.Texture = new Texture("Particles\\Smoke");
            particles.ParticleRenderer.SoftParticles = true;
            particles.ParticleRenderer.FadeDistance = 25.0f;
            particles.ParticleRenderer.BlendState = BlendState.NonPremultiplied;
            particles.ParticleRenderer.DurationRandomness = 0.1f;
            particles.ParticleRenderer.Gravity = new Vector3(0, 1, 5);
            particles.ParticleRenderer.EndVelocity = 0.75f;
            particles.ParticleRenderer.MinimumColor = Color.White;
            particles.ParticleRenderer.MaximumColor = Color.White;
            particles.ParticleRenderer.RotateSpeed = new Vector2(-0.3f, 0.25f);
            particles.ParticleRenderer.StartSize = new Vector2(150, 300);
            particles.ParticleRenderer.EndSize = new Vector2(500, 750);
            particles.ParticleRenderer.TilesX = 1;
            particles.ParticleRenderer.TilesY = 1;
            particles.ParticleRenderer.AnimationRepetition = 1;

            particles = new GameObject3D();
            particles.AddComponent<ParticleEmitter>();
            particles.AddComponent<ParticleRenderer>();
            particles.ParticleEmitter.MaximumNumberParticles = 75;
            particles.Transform.LocalPosition = new Vector3(-3.2f, 0, 13);
            particles.ParticleEmitter.Duration = 50f;
            particles.ParticleEmitter.EmitterVelocitySensitivity = 1;
            particles.ParticleEmitter.MinimumHorizontalVelocity = 1;
            particles.ParticleEmitter.MaximumHorizontalVelocity = 2f;
            particles.ParticleEmitter.MinimumVerticalVelocity = 1;
            particles.ParticleEmitter.MaximumVerticalVelocity = 2;
            particles.ParticleRenderer.Texture = new Texture("Particles\\Smoke");
            particles.ParticleRenderer.SoftParticles = true;
            particles.ParticleRenderer.FadeDistance = 25.0f;
            particles.ParticleRenderer.BlendState = BlendState.NonPremultiplied;
            particles.ParticleRenderer.DurationRandomness = 0.1f;
            particles.ParticleRenderer.Gravity = new Vector3(0, 1, -25);
            particles.ParticleRenderer.EndVelocity = 0.75f;
            particles.ParticleRenderer.MinimumColor = Color.White;
            particles.ParticleRenderer.MaximumColor = Color.White;
            particles.ParticleRenderer.RotateSpeed = new Vector2(-0.2f, 0.2f);
            particles.ParticleRenderer.StartSize = new Vector2(150, 500);
            particles.ParticleRenderer.EndSize = new Vector2(500, 750);
            particles.ParticleRenderer.TilesX = 1;
            particles.ParticleRenderer.TilesY = 1;
            particles.ParticleRenderer.AnimationRepetition = 1;
            */
            #endregion
            
        } // Load