Dans XNA, comment charger une texture ou un maillage à partir d'un fichier sans utiliser le pipeline de contenu?Chargement de fichier XNA
Répondre
Je crois que Texture2D.FromFile(); est ce que vous cherchez.
Il ne semble pas que vous puissiez le faire avec un modèle.
http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.texture2d.fromfile.aspx
La méthode .FromFile ne fonctionnera pas sur xbox ou zune. Vous avez deux choix:
- Il suffit d'utiliser le pipeline de contenu ... sur xbox ou zune (si vous souciez d'eux), vous ne pouvez pas avoir un contenu fourni par l'utilisateur de toute façon, il n'a pas d'importance si vous utilisez uniquement le pipeline de contenu.
- écrire du code pour charger la texture (à l'aide .SetData), ou bien sûr pour analyser le fichier modèle et charger les vertexbuffers appropriés, etc.
Pour toute personne intéressée par le chargement d'un modèle à partir d'un fichier vérifier cette tutoriel:
Cette méthode repose sur le pipeline de contenu. Il construit réellement le fichier de modèle dans les coulisses, puis charge le Xnb via le pipeline de contenu. – Aranda
Ceci est une fenêtre seule façon de charger une texture sans le charger à travers le pipeline, Comme indiqué ci-dessus Cory, tout le contenu doit être compilé avant de le charger sur la Xbox et Zune.
Texture2D texture = Texture2D.FromFile (GraphicsDeviceManager.GraphicsDevice, @Localisation de votre Texture Here.png);
Si vous voulez vraiment charger un Xna Xna.Framework.Graphics.Model
sur un PC sans le pipeline de contenu (par exemple pour le contenu généré par l'utilisateur), il y a un moyen. J'ai utilisé SlimDX pour charger un fichier X, et éviter le code d'analyse, les quelques trucs de réflexion pour instancier le Modèle (il est scellé et a un constructeur privé donc pas destiné à être étendu ou personnalisé). Voir ici: http://contenttracker.codeplex.com/SourceControl/changeset/view/20704#346981
XNA 4.0 semble ne pas avoir Texture2D.FromFile(). Cela pourrait fonctionner uniquement sous les versions 3.x. –
Vous pouvez utiliser Texture2D.FromStream (GraphicsDevice, stream) dans 4.0. –