Id Tech 1

Id Tech 1

L'id Tech 1 (ou Doom engine) est un moteur de jeu qui permit de faire fonctionner les jeux Doom et Doom II de id Software. Il a aussi été utilisé sous licence par les jeux Hexen, Heretic, Strife et HacX, et d'autres jeux. Il a été créé par John Carmack, et certaines fonctions auxiliaires ont été écrites par Mike Abrash, John Romero, Dave Taylor et Paul Radek. Initialement développé sur les systèmes NeXT, il a été porté sous DOS pour la première version de Doom et a été porté ensuite sur un grand nombre de consoles et de systèmes d'exploitation.

Le code source de la version Linux de Doom a été libéré en 1997 sous une licence permettant la libre utilisation non commerciale, puis a été de nouveau libéré en 1999 sous la licence publique générale GNU (GNU GPL). La douzaine de ports non officiels des sources qui ont été créés depuis, ont permis de faire fonctionner le jeu sur des systèmes d'exploitation jusqu'alors incompatibles avec le jeu, et dans certain cas ont permis d'étendre les capacités du moteur en ajoutant de nouvelles fonctions.

Ce n'est pas un vrai moteur 3D, car il n'est pas possible d'incliner le champ de vision en haut ou en bas, et deux pièces ne peuvent pas se trouver l'une en dessous de l'autre, mais c'est une architecture logiciel assez élégante qui permet de faire du pseudo rendu 3D. Lors de son développement, Doom était révolutionnaire pour sa capacité à faire rapidement des projections de textures dans un environnement 3D.

Sommaire

Structure des niveaux

En y regardant de plus près, tous les niveaux de Doom sont en 2 dimensions, démontrant l'une des principales limitations du Doom engine : il n'est pas possible de créer des salles les unes au-dessus des autres. Cette limitation permet toutefois de faciliter l'affichage de niveau sous forme de carte, représentant les murs par des lignes et le personnage de dessus.

Éléments de base

L'élément de base est le sommet (vertex), qui représente un point en deux dimensions. Les sommets sont reliés pour former des lignes (linedefs). Chaque ligne peut avoir un ou deux côtés (connu sous le nom de sidedefs). Les sidedefs sont enfin groupés ensemble pour former des polygones (appelé sector ; secteur). Un secteur est une zone particulière d'un niveau.

Secteurs

Chaque secteur contient un ensemble de propriétés, comme une hauteur de plancher et de plafond ainsi qu'une texture pour le plancher et pour le plafond. Chaque secteur définit également un certain niveau de luminosité. Ainsi, pour créer une zone d'ombre ou de lumière, il faut créer un nouveau secteur. Il ne peut donc pas vraiment y avoir d'ombres portées, ni même de lumière dynamique. Il s'agit d'une autre limitation du Doom engine.

Sidedefs

Les sidedefs ont moins de propriétés que les secteurs ; Néanmoins, ils peuvent être orientés, et possèdent une ou deux textures (une par face).

Things

Les "Things", littéralement "Choses" en Anglais, représentent tous les objets dynamiques du jeu. Entre autres, les things peuvent représenter des ennemis, des objets à ramasser, ou même des objets de "décoration", telles les torches. Les Things peuvent être orientées dans huit directions au départ, et, outre leur nature, elles n'ont pas de propriété modifiable.

Subdivision binaire de l'espace

Doom utilise une technique connue sous le nom de partition binaire de l'espace (binary space partitioning ou BSP). Un outil est utilisé pour convertir un niveau en arbre BSP, les niveaux bruts ne sont pas intégrés dans le jeu. Selon la taille du niveau, le processus peut prendre un temps important. C'est pour cette raison qu'il n’est pas possible de déplacer des murs dans Doom ; alors que des portes ou des ascenseurs se déplacent de haut en bas jamais aucun ne se déplace sur le côté.

Un niveau est divisé en arbre binaire : chaque position de l'arbre est un nœud qui représente une zone particulière du niveau (la racine représente par exemple l'ensemble du niveau). À chaque branche de l'arbre représente une ligne de division séparent l'espace en deux. En même temps, cette ligne de division peut couper les murs (linedefs) en sous-segments (segs).

Les feuilles de l'arbre représentent des polygones convexes, et il n'est pas utile de diviser plus encore la zone. Ces polygones convexes sont référés sous le nom de sous-secteur (ou SSECTORS), et sont liés à un secteur particulier. Chaque sous-secteur possède une liste de segs qui lui est associé.

Le système BSP est une manière ingénieuse de structurer les sous-secteurs pour qu'ils soient bien ordonnés pour le rendu graphique. L'algorithme devient assez simple :

  1. Commencer au nœud racine.
  2. Traiter les nœuds fils de ce nœud de manière récursive. Les nœuds les plus proches de l'observateur étant traités en premier. Cette information peut être trouvée en regardant de quel côté de la ligne de division l'observateur se trouve.
  3. Lorsque un sous-secteur est atteint, le dessiner.

Le processus est terminé lorsque la colonne entière des pixels est remplie (c'est-à-dire lorsqu'il n'y plus de trou). Cet ordre de traitement assure qu'aucun temps n'est gaspillé pour dessiner des objets qui ne sont pas visibles et en conséquence les niveaux peuvent devenir très grands sans qu'il n'y ait vraiment de pénalité de vitesse.

Rendu

A l'époque les ordinateurs n'étaient pas assez performants pour rendre de la vraie 3d. Doom utilisait un moteur de fausse 3d: la camera ne peut jamais tourner vers le haut ou vers le bas, et le terrain est codé et analysé en 2d, ce qui réduit considérablement les calculs.

Dessin des murs

Les murs sont rendus avec la technique du Raycasting, utilisée aussi pour Wolfenstein 3D. Elle consiste à tracer des tranches verticales de texture à hauteur variable pour donner l'illusion des murs.

Plancher et plafond

Les planchers et plafonds sont rendus avec une méthode similaire: le Z-Mapping, également utilisé dans des jeux comme Mario Kart, et qui fonctionne avec des tranches de texture horizontales.

Objet (sprites)

Chaque secteur du niveau possède une liste chaînée représentant les objets (things) s'y trouvant. Pendant la phase de rendu des secteurs, les objets sont placés dans la file d'attente pour être affichés. Ceux qui ne sont pas dans le champ de vision sont ignorés.

Les bords des sprites sont coupés en vérifiant la liste des segments déjà dessinés. Les sprites dans Doom sont stockés avec le même format que celui utilisé pour les murs, de telle sorte qu'il est très facile pour de moteur de rendu de les afficher : les mêmes fonctions qui sont utilisés pour afficher des murs sont employées pour dessiner des sprites.

Alors que les sous secteurs garantissent d’être déjà triés, les sprites ne le sont pas. Doom stocke une liste de sprites à afficher (vissprites) et trie cette liste juste avant le rendu. Ainsi les sprites les plus en retrais sont affichés avant ceux qui se trouvent plus proche du champ de vision. Ceci génère des recouvrements — que l'on peut considérer comme un traitement non optimal — mais qui sont habituellement négligeables sur le temps de traitement.

Enfin, les textures utilisées sur les deux côtés d'un mur et recourant à la transparence sont affichées en même temps que les sprites à la fin du processus de rendu plutôt qu'avec les autres murs.

Éditeur de niveaux

Doom et Duke Nukem 3D utilisent le même type de cartes, mais le moteur de Duke Nukem a moins de limitations (possibilité de superposer des étages par exemple). Les niveaux de Doom peuvent donc être édités avec l'éditeur de niveau de Duke Nukem 3D.

Références

Lien externe


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Id Tech 1 de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Tech N9ne discography — Tech N9ne discography Tech N9ne at release signing for Everready (The Religion) on November 6, 2006 Releases ↙Studio albums …   Wikipedia

  • Tech N9ne — Surnom Tecca Nina, The Killa Clown, T 9, Kansas City King Nom Aaron Dontez Yates Naissance 8 novembre 1971 Kansas City (Missouri) Activité principale Rappeur, parolier, producteur exécutif …   Wikipédia en Français

  • Tech Squares — is a square and round dance club at the Massachusetts Institute of Technology. It was founded in 1967 and is still holding dances today. [ [http://www.mit.edu/ tech squares/ Official Tech Squares web site] ] Tech Squares dances high energy modern …   Wikipedia

  • Tech Mahindra — Limited Type Public (BSE: 532755) Industry IT ser …   Wikipedia

  • Tech Triumph — is the fight song of Virginia Tech. It was composed in 1919 by Wilfred Pete Maddux (class of 1920) and Mattie Eppes (Boggs).ComposersWilfred Preston ( Pete ) Maddux, a trombone and baritone player in the Virginia Tech Regimental Band (member of… …   Wikipedia

  • Tech trance — is a sub genre within Electronic Dance Music that draws upon the Techno and Trance genres as the name suggests. Tech Trance was pioneered by Oliver Lieb in the mid 90 s. Other early Tech Trance producers are Humate, Chris Cowie and Marmion. Tech… …   Wikipedia

  • Tech — may refer to:* an abbreviation for technology, and terms that are derived from it ** technical support ** techno music *a technical problem, in airline jargon e.g. the plane s gone tech *Tech 2 (or Tech II), an electronic On Board Diagnostics… …   Wikipedia

  • Tech house — Tech house, like progressive house, represents a fusion of house and techno. However, whereas progressive house tends to incorporate atmospheric, ethereal, almost ambient sounds and is often mixed to varying degrees with trance and progressive… …   Wikipedia

  • Tech Pacific — is an Asian Pacific IT wholesale distributor with offices throughout Australia, New Zealand, Singapore, Malaysia, Thailand, India and Hong Kong.Tech Pacific was founded by Jim Kennedy in Melbourne, Australia in 1985 as a boutique distributor of… …   Wikipedia

  • Tech-Com — is a fictional organization of human survivors of Judgement Day in the Terminator series, who are dedicated to defending other human survivors to fight and defeat Skynet. Tech Com may also be heard as The Human Resistance or The Resistance… …   Wikipedia

  • Tech Gate Vienna — Tech Gate Tower Der Tech Gate Tower des Tech Gate Vienna …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”