Le dépeçage d'un jeu: Doom3
Par Benjamin (prae) GIGON, mardi 24 juillet 2007 à 15:44 :: OpenGL & 3D :: #50 :: rss
Il y'a quelques mois, j'avais proposé ici un lien vers une publication sur la création de Zelda N64: les anecdotes, les travaux, l'utilisation du moteur de Mario64 pour ce Zelda, etc..etc...
Cette fois-ci, je suis tombé sur une brève sur l'intérieur de Doom3.
Petits extraits :
Doom III : Behind the scenes
Cette fois-ci, je suis tombé sur une brève sur l'intérieur de Doom3.
Petits extraits :
Que peut on retenir de cette première présentation de la technologie de Doom III ? Essentiellement le travail impressionnant effectué au niveau de l'éclairage : d'un point de vue local tout d'abord avec enfin une utilisation sérieuse de l'éclairage au pixel près (per pixel lighting), enfin d'un point de vue global avec des ombres impressionnantes. Tout ceci résulte en fait d'une nouvelle approche de John Carmack dans la conception de son moteur : l'unification du modèle d'éclairage.
Jusqu'à présent les moteurs 3D faisaient une distinction entre deux types d'éclairage : l'éclairage statique des décors et l'éclairage "dynamique" des modèles. L'éclairage statique est constitué de lightmaps, de simples textures en niveaux de gris permettant de spécifier les régions lumineuses (blanc) des régions sombres (noire) [...] Avec Doom3 désormais toutes les lumières sont traitées de la même façon, la calcul de l'éclairage a été entièrement supprimé de l'éditeur de niveaux et sera effectué en temps réel et le décor tout comme les modèles seront éclairés au pixel près, ajoutez à cela une gestion des ombres dynamiques et vous comprendrez l'étendu du travail réalisé par John Carmack
Le principe est simple : un volume d'ombre (shadow volume) est tout simplement le demi espace défini par une source lumineuse et un objet projetant une ombre, toute surface dans le volume d'ombre n'est pas affectée par l'éclairage de la source lumineuse en question.
Dés lors combiner la vitesse du Gouraud en offrant d'un éclairage au pixel près est devenu le Graal dans le domaine de la 3D temps réel et c'est désormais possible en utilisant quelques astuces et les possibilités des puces 3D récentes. L'idée consiste à précalculer les normales d'une surface, puis à les encoder dans une texture : après tout une texture 2D n'est rien d'autres qu'une fonction qui à deux scalaires u et v fait correspondre un vecteur.
La raison pour laquelle Carmack a été obligé d'écrire plusieurs versions de son Renderer est simple : OpenGL est, comme son nom l'indique, un standard ouvert gouverné par un consortium de sociétés connu sous le nom d'ARB (Architecture Review Board). Contrairement à DirectX qui est contrôlé uniquement par Microsoft, qui décide à chaque nouvelle version de l'API de ce qui y sera ajouté, c'est l'ARB (et donc l'ensemble de ses membres) qui décide des évolutions d'OpenGL. Comme vous vous en doutez, parvenir à mettre d'accord un ensemble de sociétés (dont certaines en concurrence directe) n'est pas une chose aisée !
Doom III : Behind the scenes
- 1 - Introduction, historique
- 2 - Historique, suite
- 3 - Technologie : les Shadow Volumes
- 4 - Technologie : le Per Pixel Lighting
- 5 - Les code path (différents codes pour les diverses cartes 3D)
- 6 - Conclusion
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire