Export (0) Print
Expand All

How To: Draw a Model with a Custom Effect

Demonstrates how to load a Model file and draw the Model using a custom Effect without modifying the Content Pipeline.

The Complete Sample

The code in this topic shows you the technique. You can download a complete code sample for this topic, including full source code and any additional supporting files required by the sample.

Drawing a Model With a Custom Effect

When you load a Model, the model is set by default to use the BasicEffect. You can change this by customizing the content pipeline, or you can apply a new Effect to the Model when you load the Model.

To draw a model with a custom effect

  1. In your game's LoadContent method, load your Model, typically using the ContentManager.

    terrain = Content.Load<Model>("terrain");
  2. In LoadContent, load your Effect, typically using the ContentManager.

    MyEffect = content.Load<Effect>("CustomEffect");
  3. Iterate through each ModelMeshPart in your model, and assign your Effect to the Effect property of the ModelMeshPart.

    public static void RemapModel(Model model, Effect effect)
        foreach (ModelMesh mesh in model.Meshes)
            foreach (ModelMeshPart part in mesh.MeshParts)
                part.Effect = effect;
  4. Draw the Model, using the steps outlined in How To: Render a Model with one exception: instead of using BasicEffect, use the Effect attached to the model.

    foreach (ModelMesh mesh in terrain.Meshes)
        foreach (Effect effect in mesh.Effects)

Community Additions

© 2014 Microsoft