protected override void Draw(Microsoft.Xna.Framework.GameTime gt, SceneControl.IObject obj, SceneControl.RenderHelper render, Cameras.ICamera cam, IList <Light.ILight> lights) { SimpleTree tree = (obj.Modelo as TreeModel).Tree; tree.DrawTrunk(obj.WorldMatrix, cam.View, cam.Projection, false); render.ResyncStates(); render.SetSamplerStates(ginfo.SamplerState); }
public override void DepthExtractor(Microsoft.Xna.Framework.GameTime gt, SceneControl.IObject obj, ref Microsoft.Xna.Framework.Matrix View, ref Microsoft.Xna.Framework.Matrix projection, SceneControl.RenderHelper render) { SimpleTree tree = (obj.Modelo as TreeModel).Tree; tree.DrawTrunk(obj.WorldMatrix, View, projection, false, true); render.ResyncStates(); tree.DrawLeaves(obj.WorldMatrix, View, projection, false, true); render.ResyncStates(); }
/// <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(); }
/// <summary> /// Normal Draw 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 (rasterizerState != null && rasterizerState != render.PeekRasterizerState()) { rasterStateFlag = true; render.PushRasterizerState(rasterizerState); } shader.iDraw(gt, obj, render, cam, lights); if (rasterStateFlag) { render.PopRasterizerState(); rasterStateFlag = false; } }
public override void Draw(Microsoft.Xna.Framework.GameTime gt, SceneControl.IObject obj, RenderHelper render, Cameras.ICamera cam) { effect.Texture = obj.Modelo.getTexture(Modelo.TextureType.DIFFUSE); effect.View = cam.View; effect.Projection = cam.Projection; for (int i = 0; i < obj.Modelo.MeshNumber; i++) { BatchInformation[] bi = obj.Modelo.GetBatchInformation(i); for (int j = 0; j < bi.Count(); j++) { effect.World = bi[j].ModelLocalTransformation; effect.CurrentTechnique.Passes[0].Apply(); render.RenderBatch(ref bi[j]); } } }
/// <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); }
/// <summary> /// Normal Draw 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) { PhysxFluidObject PhysxFluidObject = obj.PhysicObject as PhysxFluidObject; InstancedBilboardModel InstancedBilboardModel = obj.Modelo as InstancedBilboardModel; if (!PhysxFluidObject.Fluid.ParticleWriteData.NumberOfParticles.HasValue) { return; } Phyx.Vector3[] pos = PhysxFluidObject.Fluid.ParticleWriteData.PositionBuffer.GetData <Phyx.Vector3>(); BilboardInstance[] inst = new Modelo.BilboardInstance[PhysxFluidObject.Fluid.ParticleWriteData.NumberOfParticles.Value]; for (int i = 0; i < PhysxFluidObject.Fluid.ParticleWriteData.NumberOfParticles; i++) { inst[i] = BilboardInstance[i]; inst[i].Position = pos[i].AsXNA(); } InstancedBilboardModel.SetBilboardInstances(inst); shader.iDraw(gt, obj, render, cam, lights); }
public void Drawn(Microsoft.Xna.Framework.GameTime gt, SceneControl.IObject obj, Cameras.ICamera cam, IList <Light.ILight> lights, SceneControl.RenderHelper render) { if (SamplePositions != null) { for (int i = 0; i < SamplePositions.Count(); i++) { render.SetSamplerState(SamplerState[i], SamplePositions[i]); samplers[SamplePositions[i]] = SamplerState[i]; } } if (BlendState != null) { render.PushBlendState(BlendState); } if (RasterizerState != null) { render.PushRasterizerState(RasterizerState); } material.Drawn(gt, obj, cam, lights, render); if (RasterizerState != null) { render.PopRasterizerState(); } if (BlendState != null) { render.PopBlendState(); } if (SamplePositions != null) { for (int i = 0; i < SamplePositions.Count(); i++) { render.SetSamplerState(samplers[SamplePositions[i]], SamplePositions[i]); } } }
/// <summary> /// Initializations the specified Material. /// </summary> /// <param name="ginfo">The ginfo.</param> /// <param name="factory">The factory.</param> /// <param name="obj">The obj.</param> public void Initialization(Engine.GraphicInfo ginfo, Engine.GraphicFactory factory, SceneControl.IObject obj) { shader.Initialize(ginfo, factory, obj); }
public void AfterAdded(SceneControl.IObject obj) { }
/// <summary> /// Update. /// </summary> /// <param name="gametime">The gametime.</param> /// <param name="obj">The obj.</param> /// <param name="lights">The lights.</param> public void Update(Microsoft.Xna.Framework.GameTime gametime, SceneControl.IObject obj, IWorld world) { shader.Update(gametime, obj, world.Lights); }
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); }
/// <summary> /// Initializes this instance. /// </summary> /// <param name="ginfo"></param> /// <param name="factory"></param> /// <param name="obj"></param> public override void Initialize(GraphicInfo ginfo, GraphicFactory factory, SceneControl.IObject obj) { }
/// <summary> /// Exctract the depth from an object /// </summary> /// <param name="gt">The gt.</param> /// <param name="obj">The obj.</param> /// <param name="View">The view.</param> /// <param name="projection">The projection.</param> /// <param name="render">The render.</param> public override void DepthExtractor(GameTime gt, SceneControl.IObject obj, ref Matrix View, ref Matrix projection, SceneControl.RenderHelper render) { }
/// <summary> /// Draw the object in a simple way (WITH MINIMUM EFFECTS,....) /// USED IN RELECTIONS, REFRACTION ..... /// </summary> /// <param name="gt">The gt.</param> /// <param name="obj">The obj.</param> /// <param name="view">The view.</param> /// <param name="projection">The projection.</param> /// <param name="lights">The lights.</param> /// <param name="render">The render.</param> /// <param name="clippingPlane">The clipping plane.</param> /// <param name="useAlphaBlending">if set to <c>true</c> [use alpha blending].</param> public override void BasicDraw(GameTime gt, SceneControl.IObject obj, ref Matrix view, ref Matrix projection, System.Collections.Generic.IList <Light.ILight> lights, SceneControl.RenderHelper render, Plane?clippingPlane, bool useAlphaBlending = false) { }
/// <summary> /// Pos drawn Function. /// Called after all objects are Draw /// </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 PosDrawnPhase(Microsoft.Xna.Framework.GameTime gt, SceneControl.IObject obj, Cameras.ICamera cam, IList <Light.ILight> lights, SceneControl.RenderHelper render) { shader.PosDrawPhase(gt, obj, render, cam, lights); }
public void Initialization(Engine.GraphicInfo ginfo, Engine.GraphicFactory factory, SceneControl.IObject obj) { this.ginfo = ginfo; //Add the normal texture to the shader TerrainShader.Parameters["NormalTexture"].SetValue(QuadTerrain.globalNormalTexture); //Set the Global Scale (used for the normal and blending textures) value in the shader. TerrainShader.Parameters["globalScale"].SetValue(QuadTerrain.flatScale * QuadTerrain.TerrainHeight); }
/// <summary> /// Pre drawn Function. /// Called before all the objects are draw /// </summary> /// <param name="gt">The gt.</param> /// <param name="mundo">The mundo.</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 PreDrawnPhase(Microsoft.Xna.Framework.GameTime gt, SceneControl.IWorld mundo, SceneControl.IObject obj, Cameras.ICamera cam, IList <Light.ILight> lights, SceneControl.RenderHelper render) { }
/// <summary> /// Draws the specified gt. /// </summary> /// <param name="gt">The gt.</param> /// <param name="obj">The obj.</param> /// <param name="render">The render.</param> /// <param name="cam">The cam.</param> /// <param name="lights">The lights.</param> protected override void Draw(GameTime gt, SceneControl.IObject obj, SceneControl.RenderHelper render, Cameras.ICamera cam, System.Collections.Generic.IList <Light.ILight> lights) { }
public void Update(Microsoft.Xna.Framework.GameTime gametime, SceneControl.IObject obj, SceneControl.IWorld world) { material.Update(gametime, obj, world); }