Beispiel #1
0
 //draw a model object
 private void DrawObject(GameTime gameTime, ModelObject modelObject, Camera3D activeCamera)
 {
     if (modelObject.Model != null)
     {
         modelObject.EffectParameters.SetParameters(activeCamera);
         foreach (ModelMesh mesh in modelObject.Model.Meshes)
         {
             foreach (ModelMeshPart part in mesh.MeshParts)
             {
                 part.Effect = modelObject.EffectParameters.Effect;
             }
             modelObject.EffectParameters.SetWorld(modelObject.BoneTransforms[mesh.ParentBone.Index] * modelObject.GetWorldMatrix());
             mesh.Draw();
         }
     }
 }
        //draw a model object
        private void DrawObject(GameTime gameTime, ModelObject modelObject, Camera3D activeCamera)
        {
            if (activeCamera.BoundingFrustum.Intersects(modelObject.BoundingSphere))
            {
                if (modelObject.Model != null)
                {
                    modelObject.EffectParameters.SetParameters(activeCamera);
                    foreach (ModelMesh mesh in modelObject.Model.Meshes)
                    {
                        foreach (ModelMeshPart part in mesh.MeshParts)
                        {
                            part.Effect = modelObject.EffectParameters.Effect;
                        }
                        modelObject.EffectParameters.SetWorld(modelObject.BoneTransforms[mesh.ParentBone.Index] * modelObject.GetWorldMatrix());
                        mesh.Draw();
                    }
                }
#if DEBUG
                debugDrawCount++;
#endif
            }
        }
        //draw a model object
        private void DrawObject(GameTime gameTime, ModelObject modelObject)
        {
            if (modelObject.Model != null)
            {
                BasicEffect effect = modelObject.Effect as BasicEffect;

                effect.View       = (this.Game as Main).CameraManager.ActiveCamera.View;
                effect.Projection = (this.Game as Main).CameraManager.ActiveCamera.ProjectionParameters.Projection;

                effect.Texture      = modelObject.Texture;
                effect.DiffuseColor = modelObject.Color.ToVector3();
                effect.Alpha        = modelObject.Alpha;

                //apply or serialise the variables above to the GFX card
                effect.CurrentTechnique.Passes[0].Apply();

                foreach (ModelMesh mesh in modelObject.Model.Meshes)
                {
                    foreach (ModelMeshPart part in mesh.MeshParts)
                    {
                        part.Effect = effect;
                    }
                    effect.World = modelObject.BoneTransforms[mesh.ParentBone.Index] * modelObject.GetWorldMatrix();
                    mesh.Draw();
                }
            }
        }