Une texture pour trois canaux : ce que veut dire ORM
Chaque fiche du catalogue porte la même ligne : « Textures 2048 · ORM ». Trois lettres, trois canaux, une seule image — et une conversion à faire selon le moteur. Voilà ce que la ligne recouvre et ce qu'elle vous évite.
Une surface PBR a besoin de trois valeurs qui ne sont chacune qu'un nombre par pixel : combien de lumière ambiante ce creux reçoit-il, cette zone est-elle lisse ou rugueuse, est-ce du métal ou non. Trois cartes en niveaux de gris, donc — et une image en niveaux de gris gaspille les deux tiers de ce qu'elle pourrait porter.
Une image couleur a trois canaux. On y range les trois cartes, une par canal. C'est tout ce que veut dire ORM.
Ce que chaque lettre occupe
- R — Occlusion
- L'ombre de contact : ce que les creux, les plis et les jonctions se volent de lumière ambiante.
- G — Roughness
- La rugosité. 0 est un miroir, 1 est de la craie. C'est le canal qui fait le plus de travail visuel.
- B — Metallic
- Métal ou non. En pratique, presque toujours 0 ou 1 : les valeurs intermédiaires n'existent pas dans la nature, elles servent aux transitions.
Le rangement n'est pas arbitraire : c'est la convention glTF, et c'est la raison pour laquelle un .glb chargé dans Three.js arrive texturé sans réglage.
Ce que ça économise, en chiffres
Trois cartes 2K séparées, c'est trois fichiers, trois emplacements de texture et trois échantillonnages par pixel dans le nuanceur. Packées, c'est un fichier, un emplacement, un échantillonnage. Le gain est double :
- en mémoire — une image 2048 en RVB pèse ce que pèserait UNE des trois cartes, et les remplace toutes ;
- en temps de rendu — l'échantillonnage de texture est l'une des opérations les plus coûteuses d'un nuanceur, et on en supprime deux sur trois ;
- en tenue du budget — sur une scène qui instancie quarante bustes, c'est le nombre d'emplacements de texture, pas le nombre de triangles, qui casse en premier.
Ce que chaque moteur attend, exactement
C'est ici que la convention glTF cesse d'être universelle, et c'est là que la plupart des imports s'arrêtent.
- glTF · Three.js · React Three Fiber
- Lit l'ORM tel quel. Rien à faire.
- Unreal Engine
- Attend R = occlusion, G = rugosité, B = métallique. C'est l'ORM, dans le même ordre. Rien à faire non plus.
- Unity URP · matériau Lit
- Attend le métallique dans le ROUGE et le LISSAGE dans l'alpha. Le lissage est l'inverse de la rugosité.
- Unity HDRP · mask map
- Encore un autre ordre : métallique en rouge, occlusion en vert, masque de détail en bleu, lissage en alpha.
Pour Unity, la conversion tient en deux gestes : réordonner les canaux, et inverser la rugosité une fois pour obtenir le lissage. Un nœud de séparation dans Blender, ou n'importe quel éditeur d'image, suffit. Le .blend livré contient le jeu d'origine non aplati — c'est ce que le fichier source permet, et c'est ce qui rend la conversion possible plutôt que d'avoir à repeindre.
Le détail complet du passage vers Unity, échelle et axes compris, est dans cette note-là.
Pourquoi 2K, et pas 4K
Parce qu'une texture n'a de résolution utile que par rapport à la taille qu'occupe la pièce à l'écran. Un buste vu à trois mètres, dans un couloir, occupe une centaine de pixels de haut : une carte 4K y dépose seize fois plus d'information que l'écran ne peut en montrer, et la carte graphique la charge quand même.
Une 8K prend quatre fois la mémoire d'une 4K, qui en prend quatre fois celle d'une 2K. Sur une scène qui porte quarante pièces, l'arithmétique se voit tout de suite — et elle se voit d'abord chez le joueur dont la carte a huit gigaoctets.
Le catalogue est donc en 2K, et c'est un choix, pas une économie. La haute résolution existe : les commandes partent d'une sculpture en 8K, dont la page de l'atelier dit ce qu'elle sert — le gros plan et la cinématique, pas le temps réel.
Chaque pièce annonce sa résolution sur sa fiche, à côté du compte de triangles. Le catalogue est ici.
Les pièces citées
À lire ensuite
- De Blender à Unity : l'échelle, l'axe, les matériauxUn personnage importé de Blender arrive dans Unity cent fois trop grand, couché sur le dos, et gris. Ce ne sont pas trois bugs : ce sont trois conventions qui ne coïncident pas, et chacune se règle avant l'export plutôt qu'après.
- Combien de polygones pour un personnage, et pourquoi la question est mal poséeLa réponse courante — « le moins possible » — n'aide personne. Un budget de triangles dépend de la distance de vue, de la silhouette et du nombre de pièces à l'écran, pas d'un chiffre rond. Voici six bustes réels, leur compte exact, et ce qui explique un écart du simple au double.



