void DrawSimpleModel(SimpleModel simpleModel, Matrix transformation, GameTime gameTime) { SimpleModelEffect.Parameters["World"].SetValue(transformation); SimpleModelEffect.Parameters["WorldViewProjection"].SetValue(transformation * ViewMatrix * ProjectionMatrix); GraphicsDevice.SetVertexBuffer(simpleModel.VertexBuffer); GraphicsDevice.Indices = simpleModel.IndexBuffer; GraphicsDevice.DepthStencilState = DepthStencilState.Default; foreach (EffectPass pass in SimpleModelEffect.CurrentTechnique.Passes) { pass.Apply(); GraphicsDevice.DrawIndexedPrimitives(Microsoft.Xna.Framework.Graphics.PrimitiveType.TriangleList, 0, 0, simpleModel.FaceCount); } }
protected override void Initialize() { CharacterTexture = Content.Load <Texture2D>("swat"); RifleTexture = Content.Load <Texture2D>("hk_mp5n"); CharacterMesh = new SkinnedModel(); CharacterMesh.GraphicsDevice = GraphicsDevice; CharacterMesh.FilePath = @"Content\Soldier.fbx"; CharacterMesh.Initialize(); CharacterMesh.Meshes[0].Texture = Content.Load <Texture2D>("swat"); AnimationIdle = new SkinnedModelAnimation(); AnimationIdle.FilePath = @"Content\Rifle Idle.dae"; AnimationIdle.Load(); AnimationRunning = new SkinnedModelAnimation(); AnimationRunning.FilePath = @"Content\Rifle Run.dae"; AnimationRunning.Load(); AnimationWalk = new SkinnedModelAnimation(); AnimationWalk.FilePath = @"Content\Rifle Walking.dae"; AnimationWalk.Load(); ModelRifle = new SimpleModel(); ModelRifle.GraphicsDevice = GraphicsDevice; ModelRifle.FilePath = @"Content\mp5.3ds"; ModelRifle.Initialize(); ModelInstance = new SkinnedModelInstance(); ModelInstance.Mesh = CharacterMesh; ModelInstance.SpeedTransitionSecond = 0.4f; ModelInstance.Initialize(); ModelInstance.SetAnimation(AnimationIdle); HeadBoneAnimationInstance = ModelInstance.GetBoneAnimationInstance("soldier_Head"); HandBoneAnimationInstance = ModelInstance.GetBoneAnimationInstance("soldier_RightHand"); SimpleModelEffect = this.Content.Load <Effect>("SimpleModelEffect"); SkinnedModelEffect = this.Content.Load <Effect>("SkinnedModelEffect"); var Position = new Vector3(500, 200, 0); var Direction = new Vector3(0, 200, 0); ViewMatrix = Matrix.CreateLookAt(Position, Direction, Vector3.Up); ProjectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(60), GraphicsDevice.DisplayMode.AspectRatio, 0.1f, 5000f); base.Initialize(); }