id Tech 3

L'id Tech 3, plus connu sous le nom de Quake III engine, est un moteur de rendu graphique 3D (moteur de jeu), développé par id Software. Il est utilisé par de nombreux jeux. Dans son heure de gloire, il était en concurrence avec le UnrealEngine pour les projets de jeu de tir subjectif. Ils étaient à l'époque tous deux sous licence commerciale.

Id Tech 3

Informations
Développé par id Software
Première version
Dépôt ftp://ftp.idsoftware.com/idstuff/source/quake3-1.32b-source.zip
Écrit en C
Système d'exploitation Microsoft Windows, GNU/Linux et Mac OS
Environnement Windows
Type Moteur de jeu
Licence Licence publique générale GNU
Site web www.idsoftware.com/business/idtech3

Chronologie des versions

Le moteur est une évolution directe des versions précédentes incluses dans Quake et Quake II.

À la QuakeCon 2005, John Carmack a annoncé que le code source du moteur Quake III serait libéré sous GPL. Le , id Software a libéré les sources du moteur sous GPL, par contre les ressources du jeu vidéo Quake III Arena restent la propriété de id Software. Le code peut ainsi être téléchargé par qui le veut.

Infinity Ward, les créateurs de la série Call of Duty utilisent depuis Call of Duty 2 un moteur maison à base du code source d'id Tech 3 (la société avait déjà utilisé le moteur id Tech 3 en lui-même pour le premier titre). Depuis, le moteur a évolué pour les jeux successeurs de la série mais toujours sur le code source d'id Tech.

Évolutions par rapport à l'id Tech 2

Contrairement à l'id tech 2 qui avait concentré sa pipeline sur les problèmes relatifs au rendu logiciel, L'id Tech 3 a été spécialement optimisé pour openGL, ce qui a permis une importante simplification du moteur graphique.

La simplicité de l'id tech 3 en a fait le moteur de jeu le plus populaire et le plus utilisé, il est notamment à la base des séries Jedi Knight et Call of Duty.

Son format de map (q3.bsp) très rapide à lire car directement encodé en vertex buffers est devenu une référence dans la 3d rich internet application, il existe des bibliothèques pour le lire avec Webgl et Flash Player, et il est à la base du plugin quakelive.

Bones

L'animation des personnages est fluide, calculée en temps réel avec les bones (squelettes articulés).

Shaders

L'id Tech 3 introduit les fichiers shaders qui permettent un contrôle précis du rendu des textures. Ils permettent divers effets tels que la transparence, la réflexion, l'additive blending, le texture splatting, etc.

Collisionmap en brushes

L'id Tech 2 utilisait deux arbres bsp, un simplifié utilisé pour la détection de collisions, et un plus complexe qui stockait les faces afin d'assurer leur z-ordering. Le z-ordering étant inutile en full hardware, l'id tech 3 n'utilise plus qu'un seul arbre, qui gère à la fois les collisions et le culling (suppression sélective).

La collisionmap d'id tech 3 n'est plus gérée par un second bsp mais par une liste de volumes convexes (brushes). Cette collisionmap indépendante de l'arbre bsp permet de tester les collisions sur les brushes de détail.

Stockage balancé et encapsulé de la géométrie

La géométrie n'est plus compressée sous forme de n-gons (polygones) convexes, elle est directement encodée en vertex buffers (tampons de points). Les triangles sont encapsulés dans des formes plus complexes (n-gons (polygones) concaves, curves, trimeshes) qui sont stockées dans le bsp.

Cela permet d'alléger les calculs processeur, qui ne se préoccupent plus du détail des triangles.

La nouvelle pipeline de rendu fonctionne désormais comme suit:

  • frustum culling de l'arbre bsp, avec élimination des feuilles occluses grâce à l'occlusion précalculée avec un rapport cluster-to-cluster ;
  • repérage de toutes les formes contenues dans ces feuilles visibles ;
  • la carte vidéo rend tous les triangles contenus dans ces formes.

QuadPatch Curves

Le rendu hardware permettant d'augmenter considérablement la quantité de polygones, l'id tech 3 introduit des formes courbes codées en quads qui permettent de se dégager de l'esthétique low-poly (basse polygonisation) très anguleuse de l'id tech 2.

Permet de modéliser des terrains extérieurs, des grottes, des coupoles, des colonnes, etc. Le joueur peut modifier la résolution polygonale des courbes dans le menu d'options en fonction des capacités mémoire de sa machine.

Ces courbes remplacent partiellement, voir totalement, la géométrie bsp générée par les brushes. Une map peut être entièrement modélisée en courbes, stockées dans un bsp généré à partir de brushes invisibles.

Détails

L'ajout de détails (petits brushes sans incidence sur la complexité de l'arbre afin d'éviter les parcours trop coûteux en calcul ainsi que les risques de holes) posait un problème d'optimisation dans l'id tech 2, il fallait passer par des models indépendants dont l'intégration à la pipeline de rendu coûtait plus de calculs processeur que pour le model statique.

L'id tech 3 permet de modéliser des détails sans passer par les models. Les détails brushes sont intégrés au model statique, ce qui accélère leur rendu.

Ombres dynamiques

L'id tech 3 propose un rendu d'ombres dynamiques simplifiées sous forme d'une petite tache sombre projetée sur quelques polygones. Projetées uniquement, à l'origine, sur les n-gons (polygones) concaves, certains dérivés de l'id tech 3 ont rajouté la projection d'ombre sur les courbes.

Jeux utilisant le moteur de Quake 3

Références

    • Portail de l’informatique
    • Portail du jeu vidéo
    Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.