id Tech 3

Un article de Wikipédia, l'encyclopédie libre.

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.

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[modifier | modifier le code]

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[modifier | modifier le code]

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

Shaders[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

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[modifier | modifier le code]

Références[modifier | modifier le code]