MISE À JOUR 2: Il semble maintenant qu'il s'agit plus d'un problème de modélisation que d'un problème de programmation. Oups. Je suis novice dans le développement de XNA, et malgré mon expérience en C#, j'ai été coincé à un endroit pendant deux jours maintenant.Utilisation du shader 3D Studio Max DirectX dans un problème XNA
La situation: J'ai créé un modèle en 3D Studio Max 2010 qui utilise deux matériaux, tous deux de type DirectX Shader. Le modèle exporte vers FBX sans erreur et Visual Studio le compile correctement. Lorsque j'ai exécuté la méthode Draw() initialement, il a jeté une exception sur la partie 'BasicEffect' de l'une de mes boucles, démontrant (au moins pour moi) qu'il chargeait correctement le fichier .fx, qui doit être intégré dans le FBX fichier ou quelque chose.
Le problème: Lorsque vous utilisez le code suivant
foreach (ModelMesh mesh in map.Meshes)
{
foreach (Effect effect in mesh.Effects)
{
effect.CurrentTechnique = effect.Techniques["DefaultTechnique"];
effect.Begin();
effect.Parameters["World"].SetValue(Matrix.CreateTranslation(Vector3.Zero));
effect.Parameters["View"].SetValue(ActiveCamera.ViewMatrix);
effect.Parameters["Projection"].SetValue(ActiveCamera.ProjectionMatrix);
effect.Parameters["WorldViewProj"].SetValue(Matrix.Identity * ActiveCamera.ProjectionMatrix);
effect.Parameters["WorldView"].SetValue(Matrix.Identity * ActiveCamera.ViewMatrix);
foreach (EffectPass ep in effect.CurrentTechnique.Passes)
{
ep.Begin();
// something goes here?
ep.End();
}
effect.End();
}
mesh.Draw();
}
La seule chose qui se produit est une boîte blanche apparaît couvrant la moitié inférieure de l'écran, quelle que soit la position de la caméra ou de l'angle. J'ai obtenu le nom des paramètres d'effet du fichier default.fx spécifié dans Max (c'est dans [fichiers programme] \ autodesk \ 3ds Max 2010 \ maps \ fx). J'ai l'impression que je ne suis pas en mesure d'en corriger une ou toutes les autres. J'ai essayé de rechercher des tutoriels et de suivre leur code, mais rien de tout cela ne semble fonctionner pour mon modèle.
Une aide ou des idées?
MISE À JOUR: En faisant ces changements:
effect.Parameters["WorldViewProj"].SetValue(Matrix.CreateTranslation(Vector3.Zero) * ActiveCamera.ViewMatrix * Conductor.ActiveCamera.ProjectionMatrix);
effect.Parameters["WorldView"].SetValue(Matrix.CreateTranslation(Vector3.Zero) * ActiveCamera.ViewMatrix);
Le modèle a été en mesure de tirer. Cependant, tout est complètement blanc :(
Après plus de bricolage la nuit dernière, j'ai trouvé que mon code fonctionnait plus ou moins et que c'était un problème de modèle, pas un codage. Donc, une fois que je trouve comment faire correctement cela, je vais poster les résultats: P –