Example #1
0
        public void Update(Microsoft.Xna.Framework.GameTime gametime, SceneControl.IObject obj, IWorld world)
        {
            ICamera cam = world.CameraManager.ActiveCamera;

            QuadTerrain.UpdateTerrain(cam.Position, cam.BoundingFrustum, LOD);
            isupdated = true;
        }
Example #2
0
        public override void DepthExtractor(GameTime gt, IObject obj, ref Matrix View, ref Matrix projection, RenderHelper render)
        {
            isupdated = false;
            Matrix  x      = Matrix.Invert(View);
            Vector3 camPos = new Vector3(x.M41, x.M42, x.M43);
            Matrix  vp     = View * projection;

            QuadTerrain.UpdateTerrain(camPos, new BoundingFrustum(vp), LOD);
            this.getDepth.Parameters["WVP"].SetValue(obj.PhysicObject.WorldMatrix * vp);
            QuadTerrain.DrawTerrain(getDepth, render.device);
        }
Example #3
0
        /// <summary>
        /// Normal Drawn Function.
        /// </summary>
        /// <param name="gt">The gt.</param>
        /// <param name="obj">The obj.</param>
        /// <param name="cam">The cam.</param>
        /// <param name="lights">The lights.</param>
        /// <param name="render">The render.</param>
        public void Drawn(Microsoft.Xna.Framework.GameTime gt, SceneControl.IObject obj, Cameras.ICamera cam, IList <Light.ILight> lights, SceneControl.RenderHelper render)
        {
            WorldMatrix.SetValue(obj.PhysicObject.WorldMatrix);
            ViewMatrix.SetValue(cam.View);
            ProjectionMatrix.SetValue(cam.Projection);

            TerrainShader.CurrentTechnique = TerrainShader.Techniques["Technique1"];
            TerrainShader.CurrentTechnique.Passes[0].Apply();

            QuadTerrain.DrawTerrain(TerrainShader, render.device);

            render.ResyncStates();
        }
Example #4
0
        public DeferredTerrainMaterial(QuadTerrain QuadTerrain, float lod = 3.5f)
        {
            TerrainShader    = QuadTerrain.factory.GetEffect("terrainShader", false, true);
            getDepth         = QuadTerrain.factory.GetEffect("ShadowDepth", false, true);
            this.QuadTerrain = QuadTerrain;
            CanAppearOfReflectionRefraction = false;
            CanCreateShadow = false;
            IsVisible       = true;
            LOD             = lod;

            WorldMatrix      = TerrainShader.Parameters["World"];
            ViewMatrix       = TerrainShader.Parameters["View"];
            ProjectionMatrix = TerrainShader.Parameters["Projection"];
        }
Example #5
0
        public ForwardTerrainMaterial(QuadTerrain QuadTerrain, float lod = 3.5f)
        {
            TerrainShader    = QuadTerrain.factory.GetEffect("terrainShader", false, true);
            this.QuadTerrain = QuadTerrain;
            CanAppearOfReflectionRefraction = false;
            CanCreateShadow = false;
            IsVisible       = true;
            LOD             = lod;

            WorldMatrix      = TerrainShader.Parameters["World"];
            ViewMatrix       = TerrainShader.Parameters["View"];
            ProjectionMatrix = TerrainShader.Parameters["Projection"];
            sunDir           = TerrainShader.Parameters["sunlightVector"];
            sunCol           = TerrainShader.Parameters["lightColour"];
            ambCol           = TerrainShader.Parameters["ambientColour"];
        }
Example #6
0
        public override void BasicDraw(GameTime gt, IObject obj, ref Matrix view, ref Matrix projection, IList <Light.ILight> lights, RenderHelper render, Plane?clippingPlane, bool useAlphaBlending = false)
        {
            isupdated = false;
            Matrix  x      = Matrix.Invert(view);
            Vector3 camPos = new Vector3(x.M41, x.M42, x.M43);

            QuadTerrain.UpdateTerrain(camPos, new BoundingFrustum(view * projection), LOD);

            WorldMatrix.SetValue(obj.PhysicObject.WorldMatrix);
            ViewMatrix.SetValue(view);
            ProjectionMatrix.SetValue(projection);

            TerrainShader.CurrentTechnique = TerrainShader.Techniques["Technique1"];
            TerrainShader.CurrentTechnique.Passes[0].Apply();
            QuadTerrain.DrawTerrain(TerrainShader, render.device);
            render.SetSamplerStates(ginfo.SamplerState, 8);
        }
Example #7
0
        /// <summary>
        /// Normal Drawn Function.
        /// </summary>
        /// <param name="gt">The gt.</param>
        /// <param name="obj">The obj.</param>
        /// <param name="cam">The cam.</param>
        /// <param name="lights">The lights.</param>
        /// <param name="render">The render.</param>
        public void Drawn(Microsoft.Xna.Framework.GameTime gt, SceneControl.IObject obj, Cameras.ICamera cam, IList <Light.ILight> lights, SceneControl.RenderHelper render)
        {
            if (isupdated == false)
            {
                QuadTerrain.UpdateTerrain(cam.Position, cam.BoundingFrustum, LOD);
            }

            WorldMatrix.SetValue(obj.PhysicObject.WorldMatrix);
            ViewMatrix.SetValue(cam.View);
            ProjectionMatrix.SetValue(cam.Projection);

            TerrainShader.CurrentTechnique = TerrainShader.Techniques["Technique2"];
            TerrainShader.CurrentTechnique.Passes[0].Apply();

            QuadTerrain.DrawTerrain(TerrainShader, render.device);

            render.ResyncStates();
            isupdated = false;
            render.SetSamplerStates(ginfo.SamplerState, 6);
        }
Example #8
0
 public void CleanUp(Engine.GraphicFactory factory)
 {
     QuadTerrain.CleanUp();
 }