public virtual void Draw(GraphicsDevice device, TsCamera camera) { if (active) { Matrix[] transforms = new Matrix[model.Bones.Count]; model.CopyAbsoluteBoneTransformsTo(transforms); foreach (ModelMesh mesh in model.Meshes) { foreach (BasicEffect effect in mesh.Effects) { effect.World = mesh.ParentBone.Transform * GetWorld(); effect.View = camera.view; effect.Projection = camera.projection; effect.TextureEnabled = true; if(type == 2) { effect.Texture = TextureManager.elecTurTex; } effect.Alpha = 1; effect.LightingEnabled = true; effect.DirectionalLight0.DiffuseColor = new Vector3(0.3f, 0.3f, 0.3f); //RGB is treated as a vector3 with xyz being rgb - so vector3.one is white effect.DirectionalLight0.Direction = new Vector3(0, -1, 1); effect.DirectionalLight0.SpecularColor = Vector3.One; effect.AmbientLightColor = new Vector3(0.3f, 0.3f, 0.3f); effect.EmissiveColor = new Vector3(0.3f, 0.3f, 0.3f); effect.PreferPerPixelLighting = true; } mesh.Draw(); } } }
public TsModelManager(Game1 game) { this.game = game; solid = new List<TsModel>(); cam = new TsCamera(game); depthStencilState = new DepthStencilState(); depthStencilState.DepthBufferEnable = true; depthStencilState.DepthBufferWriteEnable = true; dbNoWriteEnable = new DepthStencilState(); depthStencilState.DepthBufferEnable = true; dbNoWriteEnable.DepthBufferWriteEnable = false; addModels(); }