Example #1
0
        private void DrawModel(Vehicle vehicle)
        {
            Model vModel = vehicle.GetModel();
            Texture2D vTex = vehicle.GetTexture();
            Vector3 vPos = vehicle.GetPosition();
            Quaternion vRot = vehicle.GetRotation();

            Matrix worldMatrix = Matrix.CreateScale(0.05f, 0.05f, 0.05f) * Matrix.CreateRotationY(MathHelper.Pi) * Matrix.CreateFromQuaternion(vRot) * Matrix.CreateTranslation(vPos);
            Matrix[] xwingTransforms = new Matrix[vModel.Bones.Count];
            vModel.CopyAbsoluteBoneTransformsTo(xwingTransforms);

            foreach (ModelMesh mesh in vModel.Meshes)
            {
                foreach (Effect currentEffect in mesh.Effects)
                {
                    currentEffect.CurrentTechnique = currentEffect.Techniques["Textured"];
                    currentEffect.Parameters["World"].SetValue(xwingTransforms[mesh.ParentBone.Index] * worldMatrix);
                    currentEffect.Parameters["View"].SetValue(viewMatrix);
                    currentEffect.Parameters["Projection"].SetValue(projectionMatrix);
                    currentEffect.Parameters["EnableLighting"].SetValue(true);
                    currentEffect.Parameters["LightDirection"].SetValue(lightDirection);
                    currentEffect.Parameters["Ambient"].SetValue(0.5f);
                    currentEffect.Parameters["xTexture"].SetValue(vTex);
                }

                mesh.Draw();
            }
        }