Beispiel #1
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);
        }
Beispiel #2
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();
        }
Beispiel #3
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);
        }
Beispiel #4
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);
        }