
Voici une partie des divers projets que j'ai menés dans le passé avec DirectX / C++11 :
...[quelques codes sources sont présentés]...



Caractéristiques :
- possibilité de changer l'image d'arrière plan
- implémentation facile des commandes
- historique de commandes
- commande d'aide
Codes sources :
CommandsManager.h : [afficher]
Commands.h : [afficher]
Console.h : [afficher]
CommandsDefinitions.cpp : [afficher]
CommandsManager.cpp : [afficher]
Console.cpp : [afficher]


Caractéristiques :
- définition interne de ses vertices et indices
- une texture est appliquée au cube
Codes sources :
Cube.h : [afficher]
Cube.cpp : [afficher]


Caractéristiques :
- possibilité de lancer un cube à partir du devant de la caméra
- petite carte au format BSP chargée
- possibilité de se mouvoir avec la caméra au sein de la scène
- fait avec Irrlicht 3D 1.7
Codes sources :
PhysicsEngine.h : [afficher]
PhysicsManager.cpp : [afficher]
Main.cpp : [afficher]


Caractéristiques :
- utilise DirectX 10.1
- possibilité de voir la différence avec l'affichage classique
- affichage de nombreux cubes qui tournent aléatoirement
- + cubes colorés
Codes sources :
InstancedCubeSceneNode.h : [afficher]
InstancedSceneNodeManager.h : [afficher]
InstancedCubeSceneNode.cpp : [afficher]
InstancedSceneNodeManager.cpp : [afficher]


Caractéristiques :
- Utilise une render target projetée pour la réflexion
Codes sources :
Water.h : [afficher]
Water.cpp : [afficher]
Water.fx : [afficher]




Caractéristiques :
- possibilité d'importer des objets au format de fichier .mesh
- écrit avec Qt et Ogre3D
- possibilité de se mouvoir dans la scène de l'éditeur
- possibilité de déplacer, pivoter, agrandir les objets placés
Codes sources :
ModulePreview.h : [afficher]
ModulesList.cpp : [afficher]


Caractéristiques :
- possibilité d'écrire directement du texte à l'écran à partir d'un shader approprié
- utilisation du format de fichier police de caractères avec le programme AngelFont
- utilisation des textures de polices de font en format de texture .png
- n'utilise pas la librairie D3DX
Code source :
FontTextManager.h : [afficher]
FontTextManager.cpp : [afficher]
FontText.fx : [afficher]


Caractéristiques :
- affiche le contenu du Z-Buffer sous forme de texture de post-process
Codes sources :
ZbufferRenderer.cpp : [afficher]
ZBufferPostProcess.fx : [afficher]



Caractéristiques :
- un labyrinthe 3D complet généré procéduralement avec un algorithme adapté trouvé sur Internet
Codes sources :


Caractéristiques :
- des billboards affichés à l'aide d'un Geometry Shader
- des TextSceneNodes style MMORPG
- les points d'interrogation font un mouvement périodique de bas vers le haut
- les flèches tournent autour d'elles-mêmes
Codes sources :
ArrowBillboardSceneNode.h : [afficher]
BillboardTextSceneNode.h : [afficher]
QuestBillboardSceneNode.h : [afficher]
ArrowBillboardSceneNode.cpp : [afficher]
BillboardTextSceneNode.cpp : [afficher]
QuestBillboardSceneNode.cpp : [afficher]


Caractéristiques :
- GUIWidget
- GUIImage
- GUIButton
- GUIDialog
- GUIDraggableWidget
- GUILabel
- GUIScrollBar
- GUITextArea
Codes sources :
GUIButton.h : [afficher]
GUIWidget.h : [afficher]
GUIButton.cpp : [afficher]
GUIWidget.cpp : [afficher]


Caractéristiques :
- 3 couches de nuages appliqués avec une texture possédant un canal alpha
- la structure des nuages est un dôme un peu aplati
Codes sources :
CloudsSceneNode.h : [afficher]
CloudsSceneNode.cpp : [afficher]


Caractéristiques :
- génération procédurale d'une sphère
Codes sources :
SphereMeshSceneNode.cpp : [afficher]


Caractéristiques :
- génération d'une skybox avec Cube Map
- type de structure : dôme ou cube
Codes sources :
SkyBoxSceneNode.h : [afficher]
SkyBoxSceneNode.cpp : [afficher]


Caractéristiques :
- implémentation de plusieurs effets post-traitements
- avec l'utilisation d'une FullScreen Texture Quad avec Rendertarget
- effets : inversion des couleurs, noir et blanc, vignette, radial glow, etc...
Codes sources :
PostEffectManager.h : [afficher]
PostEffectManager.cpp : [afficher]
ShaderTechnique_PostEffect.cpp : [afficher]


Caractéristiques :
- implémentation de plusieurs lumières avec couleurs différentes
- les lumières font et exercent un effet de révolution autour d'un centre
- le modèle "Suzanne" reçoit un mélange de couleurs et de lumières différentes
Codes sources :
MultipleLights.cpp : [afficher]

Voici les divers savoir-faire que je maitrise avec DirectX / C++11 :

- Importation des données d'un fichier XML
- Exportation et création d'un fichier XML

- Une matrice liée à la position de la caméra
- On construit la matrice à partir de 3 vecteurs : Right, LookAt et Up

- Utilisation de std::function et std::bind
- Utilisation des fonctions anonymes
- Utilisation du paramètre par défaut std::placeholders::_1

- Consommation total du CPU du système
- Taux de consommation du CPU du processus d'une application

- Importation du fichier d'entête avec #include <zlib.h>
- Compression et décompression d'un fichier quelconque à la volée

- Niveau première et terminale S acquis
- Objets et opérations généralistes : matrices, vecteurs, transformations de repères, etc...
- Opérations ensemblistes sur R, C et les autres ensembles
- Relations d'équivalence, d'ordre...
- Equations, fonctions exp et ln
- Trigonométrie : cercle, sinus, cosinus...

- Initialisation de DirectX 11 : SwapChain, Back Buffer, DepthStencilView, etc...
- Une classe TextureScreenQuad compatible avec les RenderTarget
- Changement de rendu fullscreen vers fenetré et vice-versa
- Acquisition des informations de la carte graphique et des modes d'affichage associés
- Gestion de la transparence avec ID3D11BlendState
- Affichage de ligne en 3D colorisée

- Backface culling (ignorer le rendu des triangles qui ne sont pas visibles)
- Matrices World, View, Projection pour transformer les primitives à l'écran
- Vertex, Index buffers et Vertex Input Layout
- D3D11_FILL_MODE : Wireframe et Solid

- Gestion du deboggage avec l'interface ID3DBlob
- Compilation avec D3DX11CompileFromFile
- Texturage, effets post-traitements, déplacement de primitives et ombrage
- Etapes vertex, geometry et pixel shaders maîtrisées
- Fonctions intrinsèques

- Gestion des exceptions
- Utilisation du logiciel de documentation Doxygen
- Utilisation de la STL
- Flags avec enum
- Pointeurs intelligents
- Connaissance des nouvelles possibilités C++11
- Utilisation du préprocesseur : __FUNCTION__, __LINE__, etc ...
- Design patterns : Singleton

- Caméra classique FPS (First Person Shooter)
- Calcul du FPS (Frame Per Second)
- Icone du curseur de la souris personnalisée
- Un Performance Timer pour synchroniser les évenements
- Une caméra à la 3ème personne trigonométrique

- Utilisation de AngelFont

- Une classe InputManager générique
- Utilisant WndProc
- Utilisant DirectInput

- Une Skybox et un Skydome pour afficher le ciel