Introduction à Direct3D :

       C’est un moteur de rendu 3D fournissant des services élémentaires afin de faciliter le travail aux applications dans la création de scènes 3D. Direct3D se charge des transformations géométriques (rotations, perspective, projections, clipping 3D, etc.), de l’éclairage (position des sources, types de réflexions), et du rendu (c’est-à-dire de la transformation des facettes 3D en bitmaps affichables à l’écran).

       Le principe des couches HAL et HEL est aussi présent ici, intimement lié avec celles de DirectDraw. Deux modes de fonctionnement peuvent être exploités par une application : le mode mémorisé (retained mode) et le mode immédiat (immediate mode). Le premier permet la gestion de scènes 3D (définition et positionnement des objets, règles de déplacement) à un assez haut niveau tandis que le second est optimisé et se charge du rendu des polygones et vecteurs.

       Le mode mémorisé est construit par-dessus le mode immédiat et DirectDraw. Le mode immédiat est spécialement conçu pour permettre un portage des applications (jeux) tournant sous DOS, dont les moteurs 3D sont en général développés en interne.
       Le mode immédiat permet de conserver le code de haut niveau du moteur mais se substitue aux routines de bas niveau effectuant le rendu final.

       Les transformations géométriques sont basées sur des opérations matricielles (4x4). Le système maintient plusieurs systèmes de coordonnées : le port d’affichage, la vue 2D et le monde 3D, permettant à l’application de passer aisément de l’un à l’autre. Le système d’éclairage maintient une liste des sources de lumière et gère l’éclairage ambiant et la nature des matériaux. Les réflexions sont calculées par rendu diffus ou spéculaire selon les matériaux. La transparence est mise à contribution pour restituer les effets de brouillard et d’atténuation en fonction de la distance.

       Par ailleurs, un format de fichier Direct3D permet de stocker les éléments d'une scène, les descriptions de mouvement et de rendu. Les développeurs disposent d’outils leur permettant de convertir des fichiers 3DS ou Autocad vers le format Direct3D.

D3DFrame :

       D3DFrame est un ensemble module développé par Microsoft pour facilité la mise en œuvre d'applications.

       Plusieurs constructeurs de puces graphiques utilisent des variantes de D3DFrame pour leurs propres exemples : ATI ou NVidia par exemple.

    Le D3DFrame de base est constitué de quatre modules :

    1. D3DApp présente l'interface d'application utilisée par les exemples.
    2. D3DFile fournit le support x-file.
    3. D3DFont fournit le support des polices de caractères.
    4. D3DUtil est un passe-partout pour toutes les fonctions utiles restantes.

       Chacun de ces modules est constitué d'un fichier source .cpp et d'un fichier en-tête .h. Le fichier source se trouve dans le répertoire d3dim\src du SDK. L'en-tête se trouve dans le répertoire d3dim\include. La bibliothèque de structures se trouve dans le répertoire d3dim\lib.

       La performance du code étant de bonne qualité j'ai choisi de baser mes exemples sur ce module, il permet d'allégé considérablement le code mais surtout il a déjà été testé sur différentes configurations avec succès donc pourquoi faire compliquer quand on peut faire simple ?