id Tech 4

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Id Tech 4
Développeur id Software
Écrit en C++
Environnement Windows, Mac OS X, Linux, Xbox, Xbox 360, PlayStation 3
Type Moteur de jeu
Licence Licence publique générale GNU

L'id Tech 4, plus connu sous le nom de Doom 3 engine, est un moteur de jeu vidéo développé par id Software et utilisé pour la première fois dans Doom 3. Le moteur a été conçu principalement par John Carmack, qui a aussi créé d'autres moteurs par le passé comme le Doom Engine et le Quake engine, qui ont été généralement reconnus comme de grandes avancées technologiques dans le domaine.

Historique[modifier | modifier le code]

L'id Tech 4 a d'abord été conçu comme une amélioration du Quake Engine. À l'origine, il était prévu de complètement réécrire le moteur de rendu du Quake Engine, tout en gardant certains sous-systèmes comme l'accès aux fichiers et la gestion de la mémoire. Après que le nouveau moteur de rendu ait été rendu fonctionnel, il a été décidé de passer du langage C au C++, ce qui a nécessité une réécriture et une restructuration complète du reste du moteur. Le moteur actuel ne contient donc que très peu de code issu du moteur Quake Engine, ce qui en fait le premier vrai nouveau moteur de id Software depuis 1996.

Ajouts par rapport à l'id tech 3[modifier | modifier le code]

L'id Tech 4 est sorti avec de nombreuses technologies nouvelles absentes du Quake 3 engine qui l'a précédé. Cela inclut le bump mapping, le normal mapping et la lumière spéculaire. D'autres fonctionnalités ont été ajoutées par la suite au moteur comme la technologie MegaTexture utilisée dans Enemy Territory: Quake Wars.

Pipeline graphique modernisée[modifier | modifier le code]

L'id tech 4 regroupe les faces en secteurs afin de rendre un nombre d'objets moins important. L'occlusion n'est plus basée sur des tableaux précalculés mais sur les portails qui se trouvent entre ces secteurs.

IA et scripting[modifier | modifier le code]

Les p.n.j. ont une ia rudimentaire (pathfinder) et le jeu est enrichi d'un langage de script appelé DoomScript.

Pixel shaders[modifier | modifier le code]

L'id tech 4 permet divers effets propres à la génération de cartes vidéo "pixel shader": déformation, flou, bump mapping...

Réecriture complète en objet[modifier | modifier le code]

Le moteur a été entièrement réécrit en C++.

Réécriture des formats de fichier[modifier | modifier le code]

Les fichiers sont désormais entièrement encodés avec le format ascii qui était déjà utilisé pour coder les entités dans id tech 3. Ce format est plus lent à charger mais plus souple, plus adapté à l'objet et plus facile à débugger.

Les cartes ne sont plus codées sur un simple fichier .bsp, elles sont désormais encodées sous forme de 4 fichiers différents afin de mieux isoler les différentes partie du programme:

- le fichier .map, lu par l'éditeur de niveaux et par le jeu, qui contient les entités et autres informations. il sert à générer 3 autres fichiers:

- le fichier .cm qui définit une collisionmap pour le moteur physique

- le fichier .proc qui contient toute la géométrie précalculée par le compilateur: triangles, portails, volumes de lumière des lampes statiques

- le fichier .aas qui contient des structures pour guider l'IA.

L'occlusion n'est plus approximativement précalculée dans des tables, elle est calculée en temps réel l'aide de portails stockés dans le bsp.

Éclairage et ombres dynamiques en temps réel[modifier | modifier le code]

La principale innovation de l'id Tech 4 est l'utilisation totale de l'éclairage dynamique. Les volumes d'ombres sont rendus en polygones avec un algorithme appelé Carmack's Reverse. Les volumes d'ombre des lampes statiques sont précalculés à la compilation de map, les volumes d'ombre de lampes mobiles sont calculés en temps réel.

Alors qu’auparavant, les moteurs 3D combinaient grossièrement les lumières pré-calculées ou les lightmaps avec des lumières dynamiques dont l'effet changeait la luminosité d'un objet entier. L'approche utilisée par l'id Tech 4 a permis un éclairage et un ombrage plus réaliste qu'auparavant.

Synchronisation des lèvres[modifier | modifier le code]

Quake 4 offre une technologie de synchronisation des lèvres en temps réel. Un système qui est similaire à celui du Source Engine, avec onze émotions faciales génériques et le support des langues anglaise, française, italienne et espagnole (le Source Engine est indépendant de la langue).

Technologie de rendu MegaTexture[modifier | modifier le code]

MegaTexture est une technologie apparue avec Enemy Territory: Quake Wars. Elle est conçue pour éliminer les textures répétitives dans un environnement. La version originale de l'id Tech 4 a été critiquée pour son inaptitude à gérer les paysages et les décors extérieurs. La technologie MegaTexture corrige ce problème en permettant l'utilisation d'une seule texture massive recouvrant tout le niveau. Il est actuellement nettement plus simple de charger une seule texture de 32000x32000 que seize textures de 4000x4000. Le résultat est considérablement plus détaillé qu'avec des textures répétitives. De plus, la sous-couche MegaTexture permet aussi d'appliquer une grande variété de paramètres à certaines zones comme la tenue de route des véhicules, les bruits de pas, ou les particules à utiliser pour les explosions. Ce qui limite l'utilisation de polygones supplémentaires.

Futures améliorations prévues[modifier | modifier le code]

Les ombres de l'id Tech 4 original ont un gros défaut : leurs contours sont tous parfaitement nets. Les prochains jeux basés sur ce moteur permettront l'utilisation de véritables ombres douces par une véritable gestion de la pénombre, calculée par rapport à la distance entre la lumière et le cache[réf. nécessaire].

Liste exhaustive des jeux utilisant l'id Tech 4[modifier | modifier le code]