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); }
/// <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(); }
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); }
/// <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); }