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 intelligents en Xna à l’aide de la technique BilLOD

Je réalise en ce moment même un article pour la MSDN sur l’affichage de terrains intelligents en Xna à l’aide d’une technique que j’ai “inventé”. Le système fonctionne plutôt pas mal et répond à tous mes besoins. J’en profite donc pour le partager avec vous ici. Je donnerais l’url de l’article sous peu. Pour l’heure je peux donner les grandes lignes du fonctionnement de cet algo. Principe : J’ai tenté de comprendre à quoi correspondait une forme en Xna. Pourquoi est ce ci important de comprendre ça ? Tout simplement parceque la forme est l’élément visuel le plus important d’un … Continue reading Affichage de terrain intelligents en Xna à l’aide de la technique BilLOD

Smart Terrain Rendering with Xna using Billod algorithm

Version Française ici. If you’re a game developer you’ve already worked on terrain rendering. It is, in my opinion the critical point of a game. Not because conceptually speaking it is the most important visible thing on the screen but because it is the main factor playing on the performance and quality of your application. It is therefore important to use techniques designed to minimize the burden borne by your game to view the ground while preserving its quality display. This article shows a way that attempts to answer this question in XNA. Conducting a study of game engine designed … Continue reading Smart Terrain Rendering with Xna using Billod algorithm

Annexe : Progressive Mesh en Xna

Retourner au sommaire des cours    Avant toutes choses je tiens à remercier Stan Melax qui m’a gentiment aidé à passer son algorithme en DirectX et Xna et m’a laissé la possibilité d’utiliser pour ce cours quelque schémas qu’il avait réalisé.      L’utilisation de MRM est une véritable merveille pour accroître de manière significative les performances de ses applications. Le principe est simple : transformer un model 3D détaillé et formé de très nombreux polygones en une version allégée utilisant moins de faces mais aillant un aspect aussi similaire que possible. Cette technique est la plupart du temps couplée avec la camera pour … Continue reading Annexe : Progressive Mesh en Xna

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

Les MipMaps

Les mipmaps permettent une amélioration flagrante de la qualité de rendu des textures en fonction de leur distance par rapport à la position de la caméra qui filme la scène. Prenons la place d’un programme de jeu qui veut afficher un mur. Ce dernier utilisera un cube avec une texture de mur. Etant très maniaque ce programmeur va utiliser une texture de grande qualité afin d’obtenir un mur réaliste. Certes pour une vue de près l’effet voulu sera réussit, mais imaginez le gâchis pour une vue de loin : non seulement Direct3D va tenter d’afficher la forme avec une texture importante, … Continue reading Les MipMaps

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

Progressive Mesh (PMesh) / MultiResolutionMesh (MRM) in Managed DirectX

L’utilisation de MRM est une véritable merveille pour accroître de manière significative les performances de ses applications. Le principe est simple : transformer un model 3D détaillé et formé de très nombreux polygones en une version allégée utilisant moins de faces mais aillant un aspect aussi similaire que possible. Cette technique est la plupart du temps couplée avec la camera pour réduire proportionnellement la qualité du modèle 3D en fonction de la distance à laquelle il se trouve de la camera. Au final, nous pouvons ainsi grappiller des FPS et libérer le GPU en lui évitant d’afficher des modèles détaillés au … Continue reading Progressive Mesh (PMesh) / MultiResolutionMesh (MRM) in Managed DirectX