// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intensity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Load the model - Monkey.fus for flat shading, MonkeySmooth.fus for smooth shading _rocketScene = AssetStorage.Get <SceneContainer>("terrain.fus"); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_rocketScene); _scenePicker = new ScenePicker(_rocketScene); _LookAtDefaultPosition = float3.Zero; _LookFromDefaultPosition = new float3(0, 1, -4); _LookUpDefault = float3.UnitY; _LookAtPositionLerpFrom = _LookAtDefaultPosition; _LookAtPositionLerpTo = _LookAtDefaultPosition; _LookFromPositionLerpFrom = _LookFromDefaultPosition; _LookFromPositionLerpTo = _LookFromDefaultPosition; _LerpTimer = 0; _LerpSpeed = 3; _DistanceFactor = 1.5f; }
/// <summary> /// Constructor of the <c>Enemy</c> class. /// </summary> /// <param name="scene">Reference to the scene where the enemy moves.</param> /// <param name="modelName">File that contains the model that represents the enemy.</param> /// <param name="position">Initial position of the enemy.</param> /// <param name="rotation">Initial rotation of the enemy.</param> /// <param name="scale">Initial scale of the enemy.</param> /// <param name="maxSpeed">Max speed of the enemy.</param> /// <param name="maxLife">Max life of the enemy.</param> /// <param name="attack">Attack of the enemy.</param> public Enemy(SceneRenderer scene, string modelName, Vector3 position, Vector3 rotation, Vector3 scale, Vector2 maxSpeed, int maxLife, int attack) : base(scene, new AnimatedModel((GameModel)ModelManager.GetModel(modelName), position, rotation, scale, 0), maxSpeed, maxLife, maxLife, attack) { _lastEnemyState = State.Waiting; _enemyState = State.Waiting; _lastPlayerXDirection = XDirection.Right; _playerXDirection = XDirection.Right; ((AnimatedModel)this.DModel).TimeSpeed = 0.25f; ((AnimatedModel)this.DModel).Animation.StartClip("Waiting", true); _amount = 0.0f; _dying = false; _unconscious = false; _attacking = false; _attackMade = false; _endPoints = false; _points = new PointParticle(); _points.AutoInitialize(EngineManager.GameGraphicsDevice, EngineManager.ContentManager, null);//ScreenManager.SpriteBatch); _points.PointsReceived += new EventHandler(PointsHandler); }
// Init is called on startup. public override void Init() { _initWindowWidth = Width; _initWindowHeight = Height; _initCanvasWidth = Width / 100f; _initCanvasHeight = Height / 100f; _canvasHeight = _initCanvasHeight; _canvasWidth = _initCanvasWidth; _aspectRatio = Width / (float)Height; // Set the clear color for the back buffer to white (100% intensity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Create the robot model _scene = CreateScene(); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_scene); _scenePicker = new ScenePicker(_scene); var projComp = _scene.Children[0].GetComponent <ProjectionComponent>(); AddResizeDelegate(delegate { projComp.Resize(Width, Height); }); #if GUI_SIMPLE _gui = CreateGui(); // Create the interaction handler _sih = new SceneInteractionHandler(_gui); _guiRenderer = new SceneRenderer(_gui); #endif }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intensity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Load the model _scene = AssetStorage.Get <SceneContainer>("roboter_arm.fus"); //Set Transforms for the Axles _lowerAxleTransform = _scene.Children.FindNodes(node => node.Name == "LowerAxle")?.FirstOrDefault()?.GetTransform(); _middleAxleTransform = _scene.Children.FindNodes(node => node.Name == "MiddleAxle")?.FirstOrDefault()?.GetTransform(); _upperAxleTransform = _scene.Children.FindNodes(node => node.Name == "UpperAxle")?.FirstOrDefault()?.GetTransform(); _footTransform = _scene.Children.FindNodes(node => node.Name == "Foot")?.FirstOrDefault()?.GetTransform(); _rightPincerTransform = _scene.Children.FindNodes(node => node.Name == "RightLowerAxle")?.FirstOrDefault()?.GetTransform(); _leftPincerTransform = _scene.Children.FindNodes(node => node.Name == "LeftLowerAxle")?.FirstOrDefault()?.GetTransform(); _rightPincerTransformUp = _scene.Children.FindNodes(node => node.Name == "RightHigherAxle")?.FirstOrDefault()?.GetTransform(); _leftPincerTransformUp = _scene.Children.FindNodes(node => node.Name == "LeftHigherAxle")?.FirstOrDefault()?.GetTransform(); _pointer = _scene.Children.FindNodes(node => node.Name == "Pointer")?.FirstOrDefault()?.GetTransform(); _virtualPos = new float3(0, 5, 0); //at the position of the upper axle _open = false; AddResizeDelegate(delegate { _scene.Children[0].GetComponent <ProjectionComponent>().Resize(Width, Height); }); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_scene); }
protected TankRenderer(SceneRenderer sceneRenderer, T tank) { fScene = sceneRenderer; fTank = tank; fAeration = new M3DAeration(); fWater = new M3DWaterSurface(); }
// Init is called on startup. public override void Init() { var green = ColorUint.Green.Tofloat3(); var blue = ColorUint.Blue.Tofloat3(); var cyan = ColorUint.Cyan.Tofloat3(); var magenta = ColorUint.Magenta.Tofloat3(); var yellow = ColorUint.Yellow.Tofloat3(); var white = ColorUint.White.Tofloat3(); // var red = ColorUint.Red.Tofloat3(); // Set the clear color for the backbuffer to white (100% intentsity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Load the rocket model _scene = CreateScene(); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_scene); // _upperArm = _scene.Children.FindNodes(node => node.Name == "Arm02Rot").First()?.GetTransform(); // _foreArm = _scene.Children.FindNodes(node => node.Name == "Arm03Rot").First()?.GetTransform(); _upperArm = FindNodeByName(_scene.Children, "Arm02Rot")?.GetTransform(); _foreArm = FindNodeByName(_scene.Children, "Arm03Rot")?.GetTransform(); }
static void BuildEngine(CommandLineOptions commandLine, EventExchange exchange) { PerfTracker.StartupEvent("Creating engine"); var framebuffer = new MainFramebuffer(); var sceneRenderer = new SceneRenderer("MainRenderer", framebuffer); sceneRenderer // TODO: Populate from json so mods can add new render methods .AddRenderer(new SpriteRenderer(framebuffer), typeof(VeldridSpriteBatch)) .AddRenderer(new EtmRenderer(framebuffer), typeof(EtmWindow)) .AddRenderer(new SkyboxRenderer(framebuffer), typeof(Skybox)) .AddRenderer(new DebugGuiRenderer(framebuffer), typeof(DebugGuiRenderable)) ; var engine = new Engine(commandLine.Backend, commandLine.UseRenderDoc, commandLine.StartupOnly, true, sceneRenderer); #pragma warning disable CA2000 // Dispose objects before losing scopes var config = exchange.Resolve <IGeneralConfig>(); var shaderCache = new ShaderCache(config.ResolvePath("$(CACHE)/ShaderCache")); foreach (var shaderPath in exchange.Resolve <IModApplier>().ShaderPaths) { shaderCache.AddShaderPath(shaderPath); } #pragma warning restore CA2000 // Dispose objects before losing scopes exchange .Attach(shaderCache) .Attach(framebuffer) .Attach(sceneRenderer) .Attach(engine) .Attach(new ResourceLayoutSource()) ; }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to light green (intensities in R, G, B, A). RC.ClearColor = new float4(0.7f, 1.0f, 0.5f, 1.0f); // Create a scene with a cube // The three components: one XForm, one Material and the Mesh _cubeTransform = new TransformComponent { Scale = new float3(1, 1, 1), Translation = new float3(0, 0, 0) }; var cubeShader = new ShaderEffectComponent { Effect = SimpleMeshes.MakeShaderEffect(new float3(0, 0, 1), new float3(1, 1, 1), 4) }; var cubeMesh = SimpleMeshes.CreateCuboid(new float3(10, 10, 10)); // Assemble the cube node containing the three components var cubeNode = new SceneNodeContainer(); cubeNode.Components = new List <SceneComponentContainer>(); cubeNode.Components.Add(_cubeTransform); cubeNode.Components.Add(cubeShader); cubeNode.Components.Add(cubeMesh); // Create the scene containing the cube as the only object _scene = new SceneContainer(); _scene.Children = new List <SceneNodeContainer>(); _scene.Children.Add(cubeNode); // Create a scene renderer holding the scene above _sceneRenderer = new SceneRenderer(_scene); }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intensity in all color channels R, G, B, A). RC.ClearColor = new float4(0.7f, 0.9f, 0.5f, 1); // Load the drone model _droneScene = AssetStorage.Get <SceneContainer>("GroundNoMat.fus"); var droneBody = _droneScene.Children.FindNodes(node => node.Name == "Body")?.FirstOrDefault(); _drone = new Drone(droneBody); _camera = new Camera(); //Add resize delegate var projComp = _droneScene.Children[0].GetComponent <ProjectionComponent>(); AddResizeDelegate(delegate { projComp.Resize(Width, Height); }); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_droneScene); //_guiRenderer = new SceneRenderer(_gui); DroneRoot = _droneScene.Children.FindNodes(node => node.Name == "Body")?.FirstOrDefault(); }
static void Main(string[] args) { Console.CursorVisible = false; Scene scene = new Scene(); SceneRenderer renderer = new SceneRenderer(); GameObject go = new GameObject('#', 0, 0, ConsoleColor.Red); GameObject go1 = new GameObject('$', 1, 0, ConsoleColor.Green); scene.AddObject(go); scene.AddObject(go1); Input input = new Input(); input.StartInput(); MovementComponent movement = new MovementComponent(go, input); go.AddComponent(movement); while (true) { foreach (var item in go.GetAllComponents()) { item.Start(); item.Update(); } renderer.DrawScene(scene); Thread.Sleep(100); Console.Clear(); } }
public void OnOpening(object enterInformation) { if (!_isLoaded) { ActiveWorld = enterInformation as World; if (ActiveWorld == null) { throw new InvalidOperationException("Did not receive loaded data."); } _renderStatisticsOverlay = new UiOverlay(); _renderStatisticsOverlay.AddElement(new RenderStatisticsView(ActiveWorld)); GameInstance.LoadedSave = TestMock.CreateTempSave(); GameInstance.LoadedSave.Load(GameInstance.GetService <GameModeManager>().ActiveGameMode); _isLoaded = true; } _inputSystem = GameInstance.GetService <InputSystem>(); _screenManager = GameInstance.GetService <ScreenManager>(); _sceneRenderer = GameInstance.GetService <SceneRenderer>(); _collisionManager = GameInstance.GetService <CollisionManager>(); _spriteBatch = GameInstance.GetService <SpriteBatch>(); _shapeRenderer = GameInstance.GetService <ShapeRenderer>(); }
// Init is called on startup. public override void Init() { #if GUI_SIMPLE _guiHandler = new GUIHandler(); _guiHandler.AttachToContext(RC); _guiFuseeLink = new GUIButton(6, 6, 157, 87); _guiFuseeLink.ButtonColor = new float4(0, 0, 0, 0); _guiFuseeLink.BorderColor = new float4(0, 0.6f, 0.2f, 1); _guiFuseeLink.BorderWidth = 0; _guiFuseeLink.OnGUIButtonDown += _guiFuseeLink_OnGUIButtonDown; _guiFuseeLink.OnGUIButtonEnter += _guiFuseeLink_OnGUIButtonEnter; _guiFuseeLink.OnGUIButtonLeave += _guiFuseeLink_OnGUIButtonLeave; _guiHandler.Add(_guiFuseeLink); _guiFuseeLogo = new GUIImage(AssetStorage.Get <ImageData>("FuseeLogo150.png"), 10, 10, -5, 150, 80); _guiHandler.Add(_guiFuseeLogo); var fontLato = AssetStorage.Get <Font>("Lato-Black.ttf"); fontLato.UseKerning = true; _guiLatoBlack = new FontMap(fontLato, 18); _guiSubText = new GUIText("Simple FUSEE Example", _guiLatoBlack, 100, 100); _guiSubText.TextColor = new float4(0.05f, 0.25f, 0.15f, 0.8f); _guiHandler.Add(_guiSubText); _subtextWidth = GUIText.GetTextWidth(_guiSubText.Text, _guiLatoBlack); _subtextHeight = GUIText.GetTextHeight(_guiSubText.Text, _guiLatoBlack); #endif // Set the clear color for the backbuffer to white (100% intentsity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Load the rocket model _rocketScene = AssetStorage.Get <SceneContainer>("RocketModel.fus"); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_rocketScene); }
/// <summary> /// Constructor of the <c>Player</c> class. /// </summary> /// <param name="scene">Reference to the scene where the player moves.</param> /// <param name="modelName">File that contains the model that represents the player.</param> /// <param name="position">Initial position of the player.</param> /// <param name="rotation">Initial rotation of the player.</param> /// <param name="scale">Initial scale of the player.</param> /// <param name="maxSpeed">Max speed of the player.</param> /// <param name="maxLife">Max life of the player.</param> /// <param name="attack">Attack of the player.</param> public Player(SceneRenderer scene, string modelName, Vector3 position, Vector3 rotation, Vector3 scale, Vector2 maxSpeed, int maxLife, int life, int attack) : base(scene, new AnimatedModel((GameModel)ModelManager.GetModel(modelName), position, rotation, scale, 0, true), maxSpeed, maxLife, life, attack) { _jump = false; _endJump = true; _startJump = false; _finishJump = false; _doorDetected = false; _doorActivated = false; _startLadder = false; _climbLadder = false; _finishLadder = false; _stopLadder = false; _lastPlayerState = State.Waiting; _playerState = State.Waiting; _debolio = 0; _aerogel = 0; _fulereno = 0; _totalPoints = 0; _objects = new List <Objects.Object>(); _lifeBar = new HealthBar(_maxLife, _life); ((AnimatedModel)this.DModel).Animation.StartClip("Waiting", true); Console.WriteLine("ESTOY ENTRANDO TAMBIEN AQUI2: " + _life + " - " + _maxLife); }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intentsity in all color channels R, G, B, A). RC.ClearColor = new float4(0.8f, 0.9f, 0.7f, 1); _scene = AssetStorage.Get<SceneContainer>("Traktor.fus"); _bodyTransform = _scene.Children.FindNodes(Node => Node.Name == "Body")?.FirstOrDefault()?.GetTransform(); _schaufelTransform = _scene.Children.FindNodes(Node => Node.Name == "Schaufel")?.FirstOrDefault()?.GetTransform(); _oberarmTransform = _scene.Children.FindNodes(Node => Node.Name == "Oberarm")?.FirstOrDefault()?.GetTransform(); _unterarmTransform = _scene.Children.FindNodes(Node => Node.Name == "Arm")?.FirstOrDefault()?.GetTransform(); _leftFrontWheelTransform = _scene.Children.FindNodes(Node => Node.Name == "LeftFrontWheel")?.FirstOrDefault()?.GetTransform(); _rightFrontWheelTransform = _scene.Children.FindNodes(Node => Node.Name == "RightFrontWheel")?.FirstOrDefault()?.GetTransform(); _leftRearWheelTransform = _scene.Children.FindNodes(Node => Node.Name == "LeftRearWheel")?.FirstOrDefault()?.GetTransform(); _rightRearWheelTransform = _scene.Children.FindNodes(Node => Node.Name == "RightRearWheel")?.FirstOrDefault()?.GetTransform(); // Create a scene renderer holding the scene above _sceneRenderer = new SceneRenderer(_scene); _scenePicker = new ScenePicker(_scene); }
/// <summary> /// Constructor of the <c>ThrownObjectManager</c> class. /// </summary> /// <param name="scene">Reference to the scene where the player moves.</param> /// <param name="player">Reference to the main player.</param> public ThrownObjectManager(SceneRenderer scene, Player player) { _thrownObjects = new List <MoveableObject>(); _scene = scene; _player = player; }
// Init is called on startup. public override void Init() { _initWindowWidth = Width; _initWindowHeight = Height; if (_canvasRenderMode == CanvasRenderMode.SCREEN) { _initCanvasWidth = Width / 100f; _initCanvasHeight = Height / 100f; } else { _initCanvasWidth = 16; _initCanvasHeight = 9; } _canvasHeight = _initCanvasHeight; _canvasWidth = _initCanvasWidth; var fontLato = AssetStorage.Get <Font>("Lato-Black.ttf"); _fontMap1 = new FontMap(fontLato, 8); _fontMap = new FontMap(fontLato, 72); // Set the clear color for the back buffer to white (100% intensity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); _bltDestinationTex = new Texture(AssetStorage.Get <ImageData>("townmusicians.jpg")); var bltScrTex = new Texture(AssetStorage.Get <ImageData>("censored_79_16.png")); _bltDestinationTex.Blt(180, 225, bltScrTex); _btnCanvas = new GUIButton { Name = "Canvas_Button" }; _btnCanvas.OnMouseUp += OnBtnCanvasUp; _btnCanvas.OnMouseDown += OnBtnCanvasDown; _btnCanvas.OnMouseEnter += OnBtnCanvasEnter; _btnCanvas.OnMouseExit += OnBtnCanvasExit; _btnCanvas.OnMouseOver += OnMouseOverBtnCanvas; _btnCat = new GUIButton { Name = "Cat_Button" }; _btnCat.OnMouseUp += OnBtnCatUp; _btnCat.OnMouseDown += OnBtnCatDown; _btnCat.OnMouseEnter += OnBtnCatEnter; _btnCat.OnMouseExit += OnBtnCatExit; _btnCat.OnMouseOver += OnMouseOverBtnCat; // Set the scene by creating a scene graph _scene = CreateNineSliceScene(); // Create the interaction handler _sih = new SceneInteractionHandler(_scene); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_scene); }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to light green (intensities in R, G, B, A). RC.ClearColor = new float4(0.2f, 0.2f, 0.2f, 1.0f); // Create a scene with a cube // The three components: one XForm, one Material and the Mesh _cubeTransform = new TransformComponent { Scale = new float3(1, 0.3f, 1), Translation = new float3(0, 0, 0) }; _cube2 = new TransformComponent { Scale = new float3(1, 0.3f, 1), Translation = new float3(0, 10, 0) }; _cube3 = new TransformComponent { Scale = new float3(1, 0.3f, 1), Translation = new float3(0, -10, 0) }; var cubeMaterial = new MaterialComponent { Diffuse = new MatChannelContainer { Color = new float3(1, 0.7f, 0.2f) }, Specular = new SpecularChannelContainer { Color = float3.One, Shininess = 4 } }; var cubeMesh = SimpleMeshes.CreateCuboid(new float3(10, 10, 10)); // Assemble the cube nodes containing the three components var cubeNode = new SceneNodeContainer(); cubeNode.Components = new List <SceneComponentContainer>(); cubeNode.Components.Add(_cubeTransform); cubeNode.Components.Add(cubeMaterial); cubeNode.Components.Add(cubeMesh); var cubeNode2 = new SceneNodeContainer(); cubeNode2.Components = new List <SceneComponentContainer>(); cubeNode2.Components.Add(_cube2); cubeNode2.Components.Add(cubeMaterial); cubeNode2.Components.Add(cubeMesh); var cubeNode3 = new SceneNodeContainer(); cubeNode3.Components = new List <SceneComponentContainer>(); cubeNode3.Components.Add(_cube3); cubeNode3.Components.Add(cubeMaterial); cubeNode3.Components.Add(cubeMesh); // Create the scene containing the cube as the only object _scene = new SceneContainer(); _scene.Children = new List <SceneNodeContainer>(); _scene.Children.Add(cubeNode); _scene.Children.Add(cubeNode2); _scene.Children.Add(cubeNode3); // Create a scene renderer holding the scene above _sceneRenderer = new SceneRenderer(_scene); }
public void Render() { SceneRenderer.Clear(0.2f, 0.4f, 0.6f, 1.0f); SceneRenderer.ClearFrameBuffer(0.0f, 0.0f, 0.0f, 1.0f); if (m_CurrentViewedCamera == null) { return; } // Render objects int i = -1; var genObjs = m_Objects.GetGenObjects().Values; var lights = m_Objects.GetLights(); foreach (var genObj in genObjs) { i++; if (genObj.Name == Settings.NameMainCamera || genObj.Name == m_CurrentViewedCamera.Name || genObj.Name == Settings.NameMainLight || !genObj.IsVisible) { continue; } genObj.Render(SceneRenderer, m_CurrentViewedCamera, lights); if (select) { genObj.DrawForSelection(SceneRenderer, m_CurrentViewedCamera, MathHelper.GetColorFromIndex(i, genObjs.Count)); } } // Render Ground Plane m_GroundPlane.DrawWireframe(SceneRenderer, m_CurrentViewedCamera, 0.5f, new vec4(0.6f, 0.6f, 0.6f, 1.0f)); // Render view origin mat4 axesModelMatrix = new mat4(1.0f); m_OriginAxes.Render(SceneRenderer, m_CurrentViewedCamera, ref axesModelMatrix); // Select object if needed if (select) { var buffer = SceneRenderer.FrameBuffer.GetPixelData(mousePos[0], mousePos[1], 1, 1); int index = MathHelper.GetIndexFromColor(new vec4(buffer[0]), genObjs.Count); var iter = genObjs.GetEnumerator(); for (int j = 0; j <= index; j++) { iter.MoveNext(); } SelectObject(iter.Current, addSelect); select = false; } }
public void InitScene(Device device, DeviceContext deviceContext, IRenderSurface renderSurface) { SceneRenderer.Init(renderSurface, device); m_cameraBuffer.Init(device); m_cubeCameraBuffer.Init(device); LightManager.Init(device, deviceContext); }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intentsity in all color channels R, G, B, A). RC.ClearColor = new float4(0.8f, 0.9f, 0.7f, 1); _scene = CreateScene(); // Create a scene renderer holding the scene above _sceneRenderer = new SceneRenderer(_scene); }
/// <summary> /// Constructor of the <c>ShotManager</c> class. /// </summary> /// <param name="scene">Reference to the scene where the shots move.</param> /// <param name="player">Reference to the player.</param> /// <param name="enemies">Reference to the enemies</param> public ShotManager(SceneRenderer scene, Player player, Enemy[] enemies) { _shots = new List <Shot>(); _scene = scene; _player = player; _enemies = enemies; }
// Init is called on startup. public override void Init() { #if GUI_SIMPLE _guiHandler = new GUIHandler(); _guiHandler.AttachToContext(RC); _guiFuseeLink = new GUIButton(6, 6, 157, 87); _guiFuseeLink.ButtonColor = new float4(0, 0, 0, 0); _guiFuseeLink.BorderColor = new float4(0, 0.6f, 0.2f, 1); _guiFuseeLink.BorderWidth = 0; _guiFuseeLink.OnGUIButtonDown += _guiFuseeLink_OnGUIButtonDown; _guiFuseeLink.OnGUIButtonEnter += _guiFuseeLink_OnGUIButtonEnter; _guiFuseeLink.OnGUIButtonLeave += _guiFuseeLink_OnGUIButtonLeave; _guiHandler.Add(_guiFuseeLink); _guiFuseeLogo = new GUIImage(AssetStorage.Get <ImageData>("FuseeLogo150.png"), 10, 10, -5, 150, 80); _guiHandler.Add(_guiFuseeLogo); var fontLato = AssetStorage.Get <Font>("Lato-Black.ttf"); fontLato.UseKerning = true; _guiLatoBlack = new FontMap(fontLato, 18); _guiSubText = new GUIText("FUSEE Example", _guiLatoBlack, 100, 100); _guiSubText.TextColor = new float4(0.05f, 0.25f, 0.15f, 0.8f); _guiHandler.Add(_guiSubText); _subtextWidth = GUIText.GetTextWidth(_guiSubText.Text, _guiLatoBlack); _subtextHeight = GUIText.GetTextHeight(_guiSubText.Text, _guiLatoBlack); #endif // Set the clear color for the backbuffer to white (100% intentsity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Load the rocket model _rocketScene = AssetStorage.Get <SceneContainer>("RocketModel.fus"); //Create StereoCam for S3D rendering _stereoCam = new StereoCameraRig(Stereo3DMode.Anaglyph, Width, Height, 6.5f); _stereoCam.AttachToContext(RC); //Create ScreenS3DTextures object holding the 4 textures to be used with the ScreenS3D object ScreenS3DTextures screenTex = new ScreenS3DTextures(); screenTex.Left = RC.CreateTexture(AssetStorage.Get <ImageData>("left.png")); screenTex.LeftDepth = RC.CreateTexture(AssetStorage.Get <ImageData>("depthLeft.png")); screenTex.Right = RC.CreateTexture(AssetStorage.Get <ImageData>("right.png")); screenTex.RightDepth = RC.CreateTexture(AssetStorage.Get <ImageData>("depthRight.png")); //Create ScreenS3D Object using the ScreenS3Dtextures object from above _screen = new ScreenS3D(RC, screenTex); //Set the config fort the Screen objet. This can also be doene using a whole ScreenConfig object and assiging direktly to the ScreenS3D object _screen.Config.ScaleSize = 1000; _screen.Config.ScaleDepth = 5; _screen.Config.Transform = float4x4.CreateTranslation(0, 200, 0); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_rocketScene); // vl = AssetStorage.Get<VideoStream>("left.mkv"); capL = new Capture("Assets/left.mkv"); capLD = new Capture("Assets/depthLeft.mkv"); capR = new Capture("Assets/right.mkv"); capRD = new Capture("Assets/depthRight.mkv"); }
public Material(SceneRenderer scene, IDrawableModel model, Vector2 maxSpeed) : base(scene, model, maxSpeed, true, true) { _visible = true; _startStaircase = false; _climbStaircase = false; _finishStaircase = false; }
public Scene(GameContext context, SceneEffect effect) { _device = context.GraphicsDevice; _sceneRenderer = new DefaultSceneRenderer(context, effect); _allNodes = new List<SceneNode>(); _allCameras = new List<Camera>(); LightDirection = new Vector3(1, -1, -1); _spriteBatch = new SpriteBatch(_device); }
/// <inheritdoc/> protected override Task <ResultStatus> DoCommandOverride(ICommandContext commandContext) { var gameSettings = context.GetGameSettingsAsset(); // Find default scene URL var defaultSceneUrl = gameSettings.DefaultScene != null?AttachedReferenceManager.GetUrl(gameSettings.DefaultScene) : null; if (defaultSceneUrl == null) { return(Task.FromResult(ResultStatus.Successful)); } var baseUrl = new UFile(defaultSceneUrl).GetParent(); try { commandContext.Logger.Info($"Trying to compile effects for scene '{defaultSceneUrl}'"); using (var sceneRenderer = new SceneRenderer(gameSettings)) { // Effect can be compiled asynchronously (since we don't have any fallback, they will have to be compiled in the same frame anyway) // Also set the file provider to the current transaction ((EffectCompilerCache)sceneRenderer.EffectSystem.Compiler).CompileEffectAsynchronously = true; ((EffectCompilerCache)sceneRenderer.EffectSystem.Compiler).FileProvider = MicrothreadLocalDatabases.DatabaseFileProvider; ((EffectCompilerCache)sceneRenderer.EffectSystem.Compiler).CurrentCache = EffectBytecodeCacheLoadSource.StartupCache; sceneRenderer.EffectSystem.EffectUsed += (effectCompileRequest, result) => compilerResult.BuildSteps.Add(EffectCompileCommand.FromRequest(context, package, baseUrl, effectCompileRequest)); sceneRenderer.GameSystems.LoadContent(); // Load the scene var scene = sceneRenderer.ContentManager.Load <Scene>(defaultSceneUrl); sceneRenderer.SceneSystem.SceneInstance = new SceneInstance(sceneRenderer.Services, scene, ExecutionMode.EffectCompile); // Disable culling sceneRenderer.SceneSystem.SceneInstance.VisibilityGroups.CollectionChanged += (sender, e) => { if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) { ((VisibilityGroup)e.Item).DisableCulling = true; } }; // Update and draw // This will force effects to be generated and saved in the object database var time = new GameTime(); sceneRenderer.GameSystems.Update(time); sceneRenderer.GraphicsContext.ResourceGroupAllocator.Reset(sceneRenderer.GraphicsContext.CommandList); sceneRenderer.GameSystems.Draw(time); } } catch (Exception e) { commandContext.Logger.Warning($"Could not compile effects for scene '{defaultSceneUrl}': {e.Message + e.StackTrace}", e); } return(Task.FromResult(ResultStatus.Successful)); }
public App(int width, int height) { WorldSize = new Vector3(200, 200, 200); lastTime = 0; SceneRoot = new GameObject("SceneRoot", this); Shaders = new Dictionary <string, Shader>(); Materials = new Dictionary <string, Material>(); destroyed = new List <DestructableObject>(); DefaultBlendFactorSrc = BlendingFactorSrc.SrcAlpha; DefaultBlendFactorDest = BlendingFactorDest.OneMinusSrcAlpha; Window = new GameWindow(width, height, new GraphicsMode(32, 24, 0, 0)); Window.Load += OnLoadInternal; Window.Resize += OnResizeInternal; Window.Closing += Window_Closing; Window.UpdateFrame += OnUpdateInternal; Window.RenderFrame += OnRenderInternal; SceneRenderer = new SceneRenderer(this); SetupGL(); var cameraContainer = CreateGameObject("Camera"); ActiveCamera = cameraContainer.AddComponent <Camera>(); stopWatch = new System.Diagnostics.Stopwatch(); stopWatch.Start(); time = new System.Diagnostics.Stopwatch(); time.Start(); Shaders.Add("unlit", new Shader("Shaders/unlit.glsl", "vertex", null, "fragment")); Shaders.Add("screen", new Shader("Shaders/screen.glsl", "vertex", null, "fragment")); Shaders.Add("screenCA", new Shader("Shaders/chromaticAbberation.glsl", "vertex", null, "fragment")); Shaders.Add("text", new Shader("Shaders/text.glsl", "vertex", null, "fragment")); Shaders.Add("gol", new Shader("Shaders/gol.glsl", "vertex", null, "fragment")); Shaders.Add("lit", new Shader("Shaders/lit.glsl", "vertex", null, "fragment")); Materials.Add("unlit", new Material(Shaders["unlit"], RenderMode.Opaque)); Materials.Add("lit", new Material(Shaders["lit"], RenderMode.Opaque)); GameObjectFactory = new GameObjectFactory(this); PrimitiveFactory = new PrimitiveFactory(); //var cs = new Jitter.Collision.CollisionSystemPersistentSAP(); //PhysicsWorld = new Jitter.World(cs); //PhysicsWorld.Gravity = new Jitter.LinearMath.JVector(0, -9.81f, 0); var collisionConfig = new BulletSharp.DefaultCollisionConfiguration(); PhysicsWorld = new BulletSharp.DiscreteDynamicsWorld( new BulletSharp.CollisionDispatcher(collisionConfig), new BulletSharp.DbvtBroadphase(), new BulletSharp.SequentialImpulseConstraintSolver(), collisionConfig); Ray.Init(this); Window.Run(60.0); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // Create a new SceneRenderer, which can be used to draw 3D graphics. sceneRenderer = new SceneRenderer(GraphicsDevice); world.LoadContent(); }
public MainGameScreen(string name, string mapName, Dictionary <string, string> mapInformation, Player player, Vector3 newPosition, SceneRenderer scene) : this(name, mapName, mapInformation) { //_scene = scene; _sceneLoaded = true; _player = player; _newPosition = newPosition; }
public ChangingGame2(string originalMapName, SceneRenderer originalScene, Player player, Vector3 newPosition, string mapName) { GameGraphicsDevice = EngineManager.GameGraphicsDevice; _originMapName = originalMapName; _nextMapName = mapName; _mapInformation = FileHelper.readMapInformation(mapName); _newPosition = newPosition; _player = player; }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intensity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Load the rocket model _rocketScene = AssetStorage.Get <SceneContainer>("RocketModel.fus"); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_rocketScene); }
// Init is called on startup. public override void Init() { // Set the clear color for the backbuffer to white (100% intentsity in all color channels R, G, B, A). RC.ClearColor = new float4(1, 1, 1, 1); // Load the rocket model _scene = CreateScene(); // Wrap a SceneRenderer around the model. _sceneRenderer = new SceneRenderer(_scene); }
public PhysicsWorld(World world, bool noDim = false) { this.world = world; renderer = new SceneRenderer(world); Bodies = new List<BodyEx>(); ignoreDim = noDim; unitCircle = new CircleShape(5.0f, 32); unitRect = new RectangleShape(new Vector2f(10, 10)); unitRect.Origin = new Vector2f(5, 5); unitCircle.Origin = new Vector2f(5, 5); unitCircle.FillColor = Color.White; unitRect.FillColor = Color.White; }
//public DebugRenderer DebugRenderer { get; private set; } public GameScreen(IGraphicsService graphicsService) : base(graphicsService) { var content = ServiceLocator.Current.GetInstance<ContentManager>(); var meshRenderer = new MeshRenderer(); _opaqueSceneRenderer = new SceneRenderer(); _opaqueSceneRenderer.Renderers.Add(meshRenderer); //DebugRenderer = ServiceLocator.Current.GetInstance<DebugRenderer>(); Scene = new Scene(); }
public GameScene(RenderSystem rs) { renderSys = rs; Viewport vp = rs.Viewport; float aspectRatio = vp.Width / (float)vp.Height; camera = new RtsCamera(42.5f, aspectRatio); SceneRendererParameter sm = new SceneRendererParameter(); sm.SceneManager = new OctplSceneManager(PlanetEarth.PlanetRadius); sm.UseShadow = true; sm.PostRenderer = new GamePostRenderer(renderSys, camera); renderer = new SceneRenderer(renderSys, sm); renderer.ClearColor = ColorValue.White; camera.NearPlane = 20; camera.FarPlane = 6000; camera.Mode = RenderMode.Final; camera.RenderTarget = renderSys.GetRenderTarget(0); renderer.RegisterCamera(camera); PlanetEarth earth = new PlanetEarth(renderSys); sm.SceneManager.AddObjectToScene(earth); OceanWater water = new OceanWater(renderSys); sm.SceneManager.AddObjectToScene(water); //Atmosphere atmos = new Atmosphere(renderSys); //sm.SceneManager.AddObjectToScene(atmos); }
public void OnOpening(object enterInformation) { if (!_isLoaded) { ActiveWorld = enterInformation as World; if (ActiveWorld == null) throw new InvalidOperationException("Did not receive loaded data."); _renderStatisticsOverlay = new UiOverlay(); _renderStatisticsOverlay.AddElement(new RenderStatisticsView(ActiveWorld)); GameInstance.LoadedSave = TestMock.CreateTempSave(); GameInstance.LoadedSave.Load(GameInstance.GetService<GameModeManager>().ActiveGameMode); _isLoaded = true; } _inputSystem = GameInstance.GetService<InputSystem>(); _screenManager = GameInstance.GetService<ScreenManager>(); _sceneRenderer = GameInstance.GetService<SceneRenderer>(); _collisionManager = GameInstance.GetService<CollisionManager>(); _spriteBatch = GameInstance.GetService<SpriteBatch>(); _shapeRenderer = GameInstance.GetService<ShapeRenderer>(); }
public void Load() { Size clSize = Program.Window.ClientSize; camera = new ChaseCamera(clSize.Width / (float)clSize.Height); camera.ChaseDirection = new Vector3(0, 0, 1); camera.ChasePosition = new Vector3(0, 0, 0); camera.DesiredPositionOffset = new Vector3(0, 0, 40); camera.Mode = RenderMode.Final; camera.FarPlane = 10000; camera.NearPlane = 10f; camera.RenderTarget = renderSys.GetRenderTarget(0); distance = 40; yang = MathEx.Degree2Radian(30); xang = MathEx.Degree2Radian(45); sceneManager = new SceneManager(); SceneRendererParameter sm = new SceneRendererParameter(); sm.PostRenderer = new DefaultPostRenderer(); sm.SceneManager = sceneManager; sm.UseShadow = false; renderer = new SceneRenderer(renderSys, sm); renderer.RegisterCamera(camera); obj = new ModelWrapper(); sceneManager.AddObjectToScene(obj); //ModelData mdlData = PathBuilder.BuildModel(renderSys, null, new Point[] //{ // new Point(0,0), new Point(2,1), new Point(4,4), new Point(5,4), new Point(6,5), new Point(6,7), new Point(9,9) //}); //CurrentModel = new Model(new ResourceHandle<ModelData>(mdlData, true)); }
/// <inheritdoc/> protected override Task<ResultStatus> DoCommandOverride(ICommandContext commandContext) { var gameSettings = context.GetGameSettingsAsset(); // Find default scene URL var defaultSceneUrl = gameSettings.DefaultScene != null ? AttachedReferenceManager.GetUrl(gameSettings.DefaultScene) : null; if (defaultSceneUrl == null) return Task.FromResult(ResultStatus.Successful); var baseUrl = new UFile(defaultSceneUrl).GetParent(); try { commandContext.Logger.Info($"Trying to compile effects for scene '{defaultSceneUrl}'"); using (var sceneRenderer = new SceneRenderer(gameSettings)) { // Effect can be compiled asynchronously (since we don't have any fallback, they will have to be compiled in the same frame anyway) // Also set the file provider to the current transaction ((EffectCompilerCache)sceneRenderer.EffectSystem.Compiler).CompileEffectAsynchronously = true; ((EffectCompilerCache)sceneRenderer.EffectSystem.Compiler).FileProvider = MicrothreadLocalDatabases.DatabaseFileProvider; ((EffectCompilerCache)sceneRenderer.EffectSystem.Compiler).CurrentCache = EffectBytecodeCacheLoadSource.StartupCache; sceneRenderer.EffectSystem.EffectUsed += (effectCompileRequest, result) => compilerResult.BuildSteps.Add(EffectCompileCommand.FromRequest(context, package, baseUrl, effectCompileRequest)); sceneRenderer.GameSystems.LoadContent(); // Load the scene var scene = sceneRenderer.ContentManager.Load<Scene>(defaultSceneUrl); sceneRenderer.SceneSystem.SceneInstance = new SceneInstance(sceneRenderer.Services, scene, ExecutionMode.EffectCompile); // Disable culling sceneRenderer.SceneSystem.SceneInstance.VisibilityGroups.CollectionChanged += (sender, e) => { if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) { ((VisibilityGroup)e.Item).DisableCulling = true; } }; // Update and draw // This will force effects to be generated and saved in the object database var time = new GameTime(); sceneRenderer.GameSystems.Update(time); sceneRenderer.GraphicsContext.ResourceGroupAllocator.Reset(sceneRenderer.GraphicsContext.CommandList); sceneRenderer.GameSystems.Draw(time); } } catch (Exception e) { commandContext.Logger.Warning($"Could not compile effects for scene '{defaultSceneUrl}': {e.Message + e.StackTrace}", e); } return Task.FromResult(ResultStatus.Successful); }
public void Load() { Size clSize = Program.Window.ClientSize; camera = new ChaseCamera(clSize.Width / (float)clSize.Height); camera.ChaseDirection = new Vector3(0, 0, 1); camera.ChasePosition = new Vector3(0, 0, 0); camera.DesiredPositionOffset = new Vector3(0, 0, 40); camera.Mode = RenderMode.Final; camera.FarPlane = 1000; camera.NearPlane = 0.5f; camera.RenderTarget = renderSys.GetRenderTarget(0); distance = 40; yang = MathEx.Degree2Radian(30); xang = MathEx.Degree2Radian(45); sceneManager = new SceneManager(); SceneRendererParameter sm = new SceneRendererParameter (); sm.PostRenderer = new DefaultPostRenderer(); sm.SceneManager = sceneManager; sm.UseShadow = false; renderer = new SceneRenderer(renderSys, sm); renderer.RegisterCamera(camera); peff = new SmokeEffect(renderSys); peff.Emitter = new ParticleEmitter(1); peff.Modifier = new ParticleModifier(); sceneManager.AddObjectToScene(peff); }
public void LoadContent() { if (SceneConfigViewModel == null) return; if (contentLoaded) return; if (!SceneConfigViewModel.SceneConfigEdit.ContentLoaded) { try { SceneConfigViewModel.SceneConfigEdit.SceneContext = this; SceneConfigViewModel.SceneConfigEdit.LoadContent(); SceneConfigViewModel.SceneConfigEdit.ActiveCamera = activeCamera; } catch (ContentLoadException e) { Tracer.TraceSource.TraceEvent(TraceEventType.Critical, 0, e.Message + "\n" + e.StackTrace); contentLoadFailed = true; } } if (!contentLoadFailed && SceneConfigViewModel.SceneConfigEdit.ContentLoaded) { sceneRenderer = new SceneRenderer(SceneConfigViewModel.SceneConfigEdit); try { sceneRenderer.LoadContent(); } catch (ContentLoadException e) { Tracer.TraceSource.TraceEvent(TraceEventType.Critical, 0, e.Message + "\n" + e.StackTrace); contentLoadFailed = true; } } contentLoaded = true; }
public override void LoadContent() { base.LoadContent(); scene = new Scene(sceneContext, "Scenes/Test1Scene"); sceneRenderer = new SceneRenderer(scene); #region Start-up mediators #region CameraMeditor [free] { var mediator = new CameraMediator(); mediator.CameraName = "free"; mediator.MoveVelocity = 30.0f; scene.StartupMediators.Add(mediator); } #endregion #region CameraMediator [satellite] { var mediator = new CameraMediator(); mediator.CameraName = "satellite"; mediator.MoveVelocity = 60.0f; scene.StartupMediators.Add(mediator); } #endregion #region CubeCharacterCameraMediator [char/Player] { var mediator = new CubeCharacterCameraMediator(); mediator.CameraName = "char"; mediator.CharacterActorName = "Player"; mediator.DashVelocity = 20.0f; scene.StartupMediators.Add(mediator); } #endregion #region WorldTimeMediator { var mediator = new WorldTimeMediator(); scene.StartupMediators.Add(mediator); } #endregion #region SunLightMediator { var mediator = new SunLightMediator(); scene.StartupMediators.Add(mediator); } #endregion #endregion #region Player scene.Player.ControllingPlayer = ControllingPlayer.Value; #endregion scene.LoadContent(); sceneRenderer.LoadContent(); LoadDebugContent(); // 読み込みが完了したら、ResetElapsedTime() を使用して、非常に長い // フレームを完了したことと、キャッチアップしようとする必要がないことを、 // ゲームのタイミング メカニズムに指示します。 ScreenContext.ResetElapsedTime(); }
//-------------------------------------------------------------- #region Creation & Cleanup //-------------------------------------------------------------- public DeferredGraphicsScreen(IServiceLocator services) : base(services.GetInstance<IGraphicsService>()) { _sampleFramework = services.GetInstance<SampleFramework>(); var contentManager = services.GetInstance<ContentManager>(); SpriteBatch = GraphicsService.GetSpriteBatch(); // Let's create the necessary scene node renderers: #if !XBOX360 TerrainRenderer = new TerrainRenderer(GraphicsService); #endif MeshRenderer = new MeshRenderer(); // The _opaqueMeshSceneRenderer combines all renderers for opaque // (= not alpha blended) meshes. _opaqueMeshSceneRenderer = new SceneRenderer(); #if !XBOX360 _opaqueMeshSceneRenderer.Renderers.Add(TerrainRenderer); #endif _opaqueMeshSceneRenderer.Renderers.Add(MeshRenderer); _decalRenderer = new DecalRenderer(GraphicsService); _billboardRenderer = new BillboardRenderer(GraphicsService, 2048) { EnableSoftParticles = true, // If you have an extreme amount of particles that cover the entire screen, // you can turn on offscreen rendering to improve performance. //EnableOffscreenRendering = true, }; // The AlphaBlendSceneRenderer combines all renderers for transparent // (= alpha blended) objects. AlphaBlendSceneRenderer = new SceneRenderer(); AlphaBlendSceneRenderer.Renderers.Add(MeshRenderer); AlphaBlendSceneRenderer.Renderers.Add(_billboardRenderer); AlphaBlendSceneRenderer.Renderers.Add(new WaterRenderer(GraphicsService)); AlphaBlendSceneRenderer.Renderers.Add(new FogSphereRenderer(GraphicsService)); AlphaBlendSceneRenderer.Renderers.Add(new VolumetricLightRenderer(GraphicsService)); #if !XBOX360 // Update terrain clipmaps. (Only necessary if TerrainNodes are used.) _terrainClipmapRenderer = new TerrainClipmapRenderer(GraphicsService); #endif // Renderer for cloud maps. (Only necessary if LayeredCloudMaps are used.) _cloudMapRenderer = new CloudMapRenderer(GraphicsService); // Renderer for SceneCaptureNodes. See also SceneCapture2DSample. // In the constructor we specify a method which is called in SceneCaptureRenderer.Render() // when the scene must be rendered for the SceneCaptureNodes. SceneCaptureRenderer = new SceneCaptureRenderer(context => { // Get scene nodes which are visible by the current camera. CustomSceneQuery sceneQuery = Scene.Query<CustomSceneQuery>(context.CameraNode, context); // Render scene (with post-processing, with lens flares, no debug rendering, no reticle). RenderScene(sceneQuery, context, true, true, false, false); }); // Renderer for PlanarReflectionNodes. See also PlanarReflectionSample. // In the constructor we specify a method which is called in PlanarReflectionRenderer.Render() // to create the reflection images. _planarReflectionRenderer = new PlanarReflectionRenderer(context => { // Get scene nodes which are visible by the current camera. CustomSceneQuery sceneQuery = Scene.Query<CustomSceneQuery>(context.CameraNode, context); var planarReflectionNode = (PlanarReflectionNode)context.ReferenceNode; // Planar reflections are often for WaterNodes. These nodes should not be rendered // into their own reflection map because when the water surface is displaced by waves, // some waves could be visible in the reflection. // --> Remove the water node from the renderable nodes. (In our samples, the water // node is the parent of the reflection node.) if (planarReflectionNode.Parent is WaterNode) { var index = sceneQuery.RenderableNodes.IndexOf(planarReflectionNode.Parent); if (index >= 0) sceneQuery.RenderableNodes[index] = null; } // Render scene (no post-processing, no lens flares, no debug rendering, no reticle). RenderScene(sceneQuery, context, false, false, false, false); }); _waterWavesRenderer = new WaterWavesRenderer(GraphicsService); // The shadow map renderer renders a depth image from the viewpoint of the light and // stores it in LightNode.Shadow.ShadowMap. ShadowMapRenderer = new ShadowMapRenderer(context => { var query = context.Scene.Query<ShadowCasterQuery>(context.CameraNode, context); if (query.ShadowCasters.Count == 0) return false; _opaqueMeshSceneRenderer.Render(query.ShadowCasters, context); return true; }); // The shadow mask renderer evaluates the shadow maps, does shadow filtering // and stores the resulting shadow factor in a screen space image //(see LightNode.Shadow.ShadowMask/ShadowMaskChannel). ShadowMaskRenderer = new ShadowMaskRenderer(GraphicsService, 2); // Optionally, we can blur the shadow mask to make the shadows smoother. var blur = new Blur(GraphicsService) { IsAnisotropic = false, IsBilateral = true, EdgeSoftness = 0.05f, Scale = 1f, Enabled = false, // Disable blur by default. }; blur.InitializeGaussianBlur(11, 3, true); ShadowMaskRenderer.Filter = blur; // Renderers which create the intermediate render targets: // Those 2 renderers are implemented in this sample. Those functions could // be implemented directly in this class but we have created separate classes // to make the code more readable. _gBufferRenderer = new GBufferRenderer(GraphicsService, _opaqueMeshSceneRenderer, _decalRenderer); LightBufferRenderer = new LightBufferRenderer(GraphicsService); // Other specialized renderers: _lensFlareRenderer = new LensFlareRenderer(GraphicsService); _skyRenderer = new SkyRenderer(GraphicsService); _fogRenderer = new FogRenderer(GraphicsService); _internalDebugRenderer = new DebugRenderer(GraphicsService, null); _rebuildZBufferRenderer = new RebuildZBufferRenderer(GraphicsService); Scene = new Scene(); // This screen needs a HDR filter to map high dynamic range values back to // low dynamic range (LDR). PostProcessors = new PostProcessorChain(GraphicsService); PostProcessors.Add(new HdrFilter(GraphicsService) { EnableBlueShift = true, BlueShiftCenter = 0.0004f, BlueShiftRange = 0.5f, //BlueShiftColor = new Vector3F(1.05f / 4f, 0.97f / 4f, 1.27f / 4f), // Default physically-based blue-shift BlueShiftColor = new Vector3F(0.25f, 0.25f, 0.7f), // More dramatic blue-shift MinExposure = 0, MaxExposure = 10, BloomIntensity = 1, BloomThreshold = 0.6f, }); _underwaterPostProcessor = new UnderwaterPostProcessor(GraphicsService, contentManager); PostProcessors.Add(_underwaterPostProcessor); // Use 2D texture for reticle. _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), }; EnableLod = true; }