2015-10-03 1 views
0

J'ai récemment mis à niveau mon ancien projet Monogame vers la dernière version de Monogame. Tout fonctionne comme par le passé, cependant, mes modèles .FBX importés apparaissent en noir pur (ce qui implique qu'ils ne sont pas allumés).Monogame importé Blender .FBX non affecté par l'éclairage

enter image description here

(Les hamburgers + bandes sont faites dynamiquement à l'aide Quads à l'exécution. Ils sont affectés par l'éclairage qu'ils devraient l'être).

Mon code (qui a travaillé dans les anciennes versions de monogame) pour l'affichage d'un modèle est la suivante:

public override void Draw() 
    { 
     foreach (ModelMesh mesh in model.Meshes) 
     { 
      foreach (BasicEffect effect in mesh.Effects) 
      { 
       effect.World = Matrix.CreateRotationZ(rotX); 
       effect.World *= Matrix.CreateRotationX(rotY); 
       effect.World *= Matrix.CreateTranslation(new Vector3(pos.X, 
                    pos.Y, 
                    0f)); 

       effect.View = MainGame.matrixView; 
       effect.Projection = MainGame.matrixProj; 

       effect.TextureEnabled = true; 
       effect.Texture = tex; 

       effect.EnableDefaultLighting(); 
       effect.AmbientLightColor = new Vector3(0.2f, 0.2f, 0.2f); 
       effect.EmissiveColor = new Vector3(1, 0, 0); 
      } 

      mesh.Draw(); 
     } 
    } 

Les modèles sont exporteed de Blender 7.4 FBX binaire (le projet ne compile pas si je l'utilise FBX 6.1 ASCII).

Merci d'avance. J'espère que ce n'est pas quelque chose de stupide que j'ai oublié.

+0

Avez-vous recompilé vos ressources de modèle lorsque vous avez porté le jeu? –

Répondre

0

J'avais le même problème la semaine dernière. Je pense que c'est en fait un problème avec l'export Binary FBX de Blender où les Textures ne sont pas exportées ou référencées correctement dans le fichier * .FBX. Je suppose cela parce que j'ai construit la version ASCII dans XNA, puis référencé le fichier * .xnb compilé dans la version monogame du jeu et il est correctement rendu. La solution que je l'ai utilisé est:

Export trop ASCII et Créer XNA Première
Ce n'est pas la manière la plus propre de le faire, mais jusqu'à ce que l'exportateur FBX get patché il est ce qui est nécessaire.

Référence Le * dossier dans monogame
Référence vos fichiers compilés XNB et définir le « Build action » comme « copie ». Mais souvenez-vous que vous devrez également référencer vos fichiers de texture construits.

Espérons que cela éclaircit.