3D : Formats DDS pour Oblivion

De Wiwiki
Aller à : navigation, rechercher


L'extension DDS désigne les fichiers DirectDraw Surface de Microsoft (.dds) introduits dans la version 7.0 de DirectX.

Caractéristiques générales

Les fichiers DDS peuvent être compressés ou non, et comporter des mip maps.

Les Mip Maps

Les mip maps sont des copies de l'image à l'échelle de plus en plus réduite, intégrée dans le fichier DDS. Elles sont utilisées par la carte vidéo pour le placage des textures(mapping) des objets à distance.

Si les mip maps ne sont pas présentes, le processeur doit les générer au fil des besoins, et cela peut ralentir l'exécution et être cause de stress de l'affichage.

Format DDS non compressé

Chaque point de l'image est défini en représentation RGBA (dite parfois ARGB, RVBA en français) par quatre octets (qui constituent les quatre canaux), un pour chaque couleur de base Red (rouge), Green (vert), Blue (bleu), et un pour le canal Alpha dont l'utilisation dépend du type de map.

Visualisation, édition et conversion des fichiers DDS

Voir la page : Outils pour le format d'image DDS

Composition d'une texture

Une texture détermine l'aspect que prend la surface d'un objet en fonction de son éclairement et de la lumière qu'il est capable d'émettre.

Une texture est le résultat de plusieurs maps, chacune étant spécialisée dans un effet particulier.

Color map

(appelée également texture de base ou diffuse map).

Canaux RGB : représentent les couleurs de base de la texture sans aucun effets.

Canal Alpha: représente , en fonction des options dans le fichier NIF, soit la transparence (blanc = opaque , noir = transparent), soit des valeurs de parallaxe pour le parallax shader ; le parallax mapping donne une accentuation des déformations en relief par rapport à la surface du maillage (le relief ne disparait pas quand on regarde la surface de profil par exemple quand on tourne l'angle d'un mur).

Normal map

(identifiée par le moteur graphique par le suffixe _n.dds).

Canaux RGB: représentent les variations locales d'inclinaison de la normale à la facette du maillage. Rouge selon l'axe X, vert selon l'axe Y, Bleu selon l'axe Z.

Canal alpha: indique les effets de lumière spéculaire (brillance et reflets) par des niveaux de gris (blanc = brillant, noir = mat).

Glow map

(identifiée par le moteur graphique par le suffixe _g.dds).

Définit la couleur de la lumière émise (lueur) en absence d'éclairage plus puissant que les valeurs du canal RGB (en particulier la nuit, ou dans un intérieur peu éclairé).

Canaux RGB: représentent la quantité minimale de lumière pour que l'émission soit possible. Une valeur verte élevée par exemple sur une map de couleur ou le vert est absent n'émet pas de lumière. Il n'y a pas d'émission non plus si la valeur du vert ambiant est plus élevée que celle de Glow Map.

Canal alpha: non utilisé.

Caractéristiques DDS utilisées par Oblivion

Utilisation Format Mip Maps Type d'image Rôle du canal alpha
Textures sans transparence

(la plupart des modèles et tout le paysage)

DXT1,

RGB

Oui Color map -
Textures avec option de transparence

(doit être activée dans le fichier NIF)

DXT3, DXT5

RGBA

Oui Color map Transparence

(Noir = Invisible, Blanc = Opaque)

Textures avec Parallax displacement mapping

(doit être activée dans le fichier NIF)

DXT3, DXT5

RGBA

Oui Color map Displacement mapping

(Noir = bosse, Blanc = dépression, gris 50% = ligne de base)

Normal Maps

(*_n.dds)

DXT3, DXT5

RGBA

Oui Normal Map
(Relief)
Brillance et reflets (lumière spéculaire)

(Black = mat, White = très brillant) La brillance est contrôlée par la propriété NiMaterialProperty du maillage (mesh) du fichier NIF

Glow Maps

(*_g.dds)

DXT1

RGBA

Oui Color map -
Icons

(et toute l'interface utilisateur)

DXT3

RGBA

Non Color map Transparence dans l'interface utilisateur

(exemple : icônes d'armes)

Illustrations des livres DXT3

RGBA

Non Color map Transparence dans les pages

(révèle l'arrière-plan)

Ecrans de chargement DXT5

RGB

Non Color map -

NOTES

  • La compression des canaux RVB est identique en DXT1, 3, et 5. La différence réside dans la façon dont le canal alpha est compressé. En DXT1 il n'y a que deux valeurs possibles de transparence (transparence totale et opacité totale) et la valeur implicite du canal alpha est 1 (blanc=opaque). Le DXT3 exprime la transparence (ou la brillance pour les normal map) de façon explicite, par des niveaux de gris, et la méthode de compression est adaptée aux variations brusques de transparence (de brillance). Le DXT5 a la même résultat du point de vue du taux de compression, mais les résultats sont meilleurs lorsque les variations sont douces (alpha interpolé).
  • Il en résulte qu'une normal map ne doit pas être sauvegardée en DXT1 car le canal alpha sert à déterminer la brillance. La canal alpha étant implicitement à blanc, il en résulte une haute brillance de lumière spéculaire sur toute la surface de la texture.
  • Le canal alpha des formats DXT3 et DXT5 sert de map spéculaire (reflets brillants), le DXT3 étant préférable pour des variations brusques, le DXT5 pour des variations plus douces et donne de meilleurs résultats dans certaines situations (à préciser).
  • Le parallax mapping et la transparence sélectionnés dans le fichier NIF peuvent être activées en même temps, mais comme ils utilisent le même canal alpha de la map de couleur, ils sont pratiquement incompatibles et vous pouvez vous attendre à des effets non indésirables.
  • Oblivion peut également utiliser des fichiers DDS non compressés RGBA 8.8.8.8 non signé (un octet par canal). Cela élimine tout le travail de décompression, mais les fichiers sont plus gros, et sollicitent davantage de ressources en mémoire vidéo. Cependant une texture non compressée de taille réduite de moitié peut parfois donner de meilleurs résultats que la texture compressée correspondante. N'hésitez donc pas à faire des essais.

Voir également