Optimization de code pour du Xna rapide et efficace !

Je dois en omettre un grand nombre, si vous en avez d’autres n’hesitez pas à me les soumettre que je les rajoute ici ! Première optimisation, les strings : Eviter tout indexeur à base de string s’il y’a un équivalent à base d’int. L’instruction : myEffect.Techniques[“Precompiled”] ; Est bien moins efficace q’un : const int TechnikIndex = 0; myEffect.Technique[TechnikIndex] Eviter au maximum la class string, si on a besoin de puissance. En C# tout modification d’une string entraine la création d’une nouvelle instance et donc une allocation mémoire. Une string N EST JAMAIS MODIFIABLE et l’allocation mémoire est une opération très … Continue reading Optimization de code pour du Xna rapide et efficace !

Affichage de terrain par l’intermédiaire de la technique BILLOD

Terrain BilLOD Si vous êtes un développeur de jeu vous avez forcement déjà travaillé sur l’affichage de terrain. Il s’agit généralement du point critique de tout jeu. Non pas parce que, conceptuellement parlant il est l’élément le plus important visible à l’écran mais parce qu’il est le principale facteur jouant sur les performances et la qualité de votre application. Il est donc important d’utiliser des techniques qui visent à réduire au maximum la charge supportée par votre jeu pour afficher le terrain tout en préservant sa qualité d’affichage.  Cet article présente justement une technique qui tente d’apporter une réponse à … Continue reading Affichage de terrain par l’intermédiaire de la technique BILLOD

Les meilleures sessions Xna aux techdays

 Pour ceux qui vont aux techdays voici ce que je selectionnerai pour approcher tout ce qui touche au multimédia, jeux, developpement : http://galilee.microsoft.fr/TechDays2008/Recherche-Session.aspx?Key=xna&domID=&PRODUIT=&AUDIENCE=&LEVEL=&SpkID= http://galilee.microsoft.fr/TechDays2008/Recherche-Session.aspx?Key=directx&domID=&PRODUIT=&AUDIENCE=&LEVEL=&SpkID= http://galilee.microsoft.fr/TechDays2008/Recherche-Session.aspx?Key=&domID=&PRODUIT=897ed8b3-7e75-446c-b2d8-28adbd31f674&AUDIENCE=&LEVEL=&SpkID=&x=21&y=11  http://galilee.microsoft.fr/TechDays2008/Session.aspx?CellID=4cde9cee-db06-4f5b-bd6e-a9d031a4fdb2 http://galilee.microsoft.fr/TechDays2008/Session.aspx?CellID=b400af3d-5dfb-4b7f-afdb-af293ab0ba70  http://galilee.microsoft.fr/TechDays2008/Session.aspx?CellID=4435849c-bd65-47da-9eff-1405877f996e http://galilee.microsoft.fr/TechDays2008/Session.aspx?CellID=64962a3a-9582-4d41-833a-e8a3e4fb986c http://galilee.microsoft.fr/TechDays2008/Session.aspx?CellID=24d5fe9e-3a1d-4f76-b0c3-e7d5b50fa59d  Les sujets qu’on y trouve sont vastes… Peu abordent vraiment le multimedia, mais on peut facilement se débrouiller pour améliorer ses compétences dans des domaines paralleles mais au combien importants…

Livre blanc : Le XNA Framework Content Pipeline

Le XNA Framework Content Pipeline est la clé maitresse du XNA Game Studio Express. Il permet la gestion contrôlée du “contenu” des applications tournant avec Xna (par contenu ici nous entendons “données de jeux”). Le contenu dans le monde des jeux vidéos est un paradoxe malheureux : s’il s’agit sans aucun doute de la partie la plus importante d’une application multimédia, mais c’est aussi un ensemble d’aspects difficiles à manipuler. Importer et gérer des données dans un jeu n’est vraiment pas aisé : que ce soit la recherche d’un outil pour créer du contenu, ou des outils pour les gérer,  … Continue reading Livre blanc : Le XNA Framework Content Pipeline

Annexe : Transformations et Matrices

Retourner au sommaire des cours   Les transformations dans l’espace représentent le traitement clé de voute dans toute application 3D. C’est par les transformations que les objets prennent vie. Une transformation pour parler simplement est une suite de multiplication de matrices. Généralement on distingue 3 types de matrices pour travailler sur un modèle 3D avant son affichage à l’écran : les matrices de rotation, les matrices de redimentionnement, les matrices de translation. Lorsqu’on veut déplacer un objet de le faire tourner il suffit donc de réaliser des traitements du type :  matriceTransformation = matriceRotation * matriceTranslation Ici nous réalisons une rotation puis … Continue reading Annexe : Transformations et Matrices

Coût de l’application des states au Device

Changer l’état (state) du device que ce soit pour le texture stage, le render stage ou autre … a un coût. Ce post vise a les expliciter afin que vous puissiez fournir à vos application une gestion intelligente qui évitera de changer les états quand il y’en a pas besoin, réduira le nombre de changements et surtout qui va regrouper l’affichage des objets par état…   Voici les différents états applicables au device et leur coût (classés du plus important au plus faible) :   API Call Avg # of Cycles   SetVertexDeclaration     SetFVF   SetVertexShader   SetPixelShader   SPECULARENABLE   SetRenderTarget   SetPixelShaderConstant (1 Constant)   NORMALIZENORMALS     LightEnable   SetStreamSource   LIGHTING   DIFFUSEMATERIALSOURCE     AMBIENTMATERIALSOURCE   COLORVERTEX … Continue reading Coût de l’application des states au Device

"Attempted to read or write protected memory. This is often an indication that other memory is corrupt."

  Un post sur l’utilité de la méthode Clear de ICollection  Voila une exception de type System.AccessViolationException qui peut vous gâcher la vie lorsque vous manipulez des listes. Beaucoup de développeurs DirectX débutants tombent dessus sans savoir que la réponse est toute simple. I n c o m p r é h e n s i b l e au premier abord. Si vous regardez sur le net les autres personnes qui sont tombées dessus, soit elles n’y comprennent rien, soit elles tombent sur des gens qui leur donnent des réponses complètement à coté de la plaque (c’est très drôle d’ailleur vous … Continue reading "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."