Normales de vertex
Les normales de vertex (parfois appelées pseudo-normales) sont des valeurs stockées à chaque vertex qui sont le plus souvent utilisées par un moteur de rendu pour déterminer la réflexion de l'éclairage ou des modèles d'ombrage, comme l'ombrage phong. Par exemple, la normale d'une surface est utilisée pour calculer dans quelle direction la lumière se reflète sur cette surface. Alors que les surfaces ont intrinsèquement toutes des normales faisant partie de leur structure, les sommets n'en ont pas. C'est pourquoi il est nécessaire de stocker une normale explicite à chaque sommet.
Les normales au vertex sont des coordonnées 3D, avec chaque coordonnée comprise dans la plage [-1, 1].
Ces valeurs normales peuvent, en théorie, être utilisées pour stocker tout type d'information. Cependant, il existe deux façons courantes de les utiliser pour diriger l'éclairage.
Normale à la surface (implicite)
La configuration la plus courante des normales de vertex est celle où la normale de chaque vertex est identique à la normale de la surface de la face. Cela donne à la géométrie un aspect "tranchant" lors du rendu. C'est généralement la valeur des normales qui est impliquée si les normales des vertex sont absentes d'une surface.
Normale au vertex moyenne
Une autre configuration courante des normales de vertex est celle où la normale est la moyenne de toutes les normales de surface qui se rencontrent en ce point. Une normale de vertex au coin d'une boîte, par exemple, serait la moyenne des trois faces autour de ce coin. Le rendu des géométries avec des normales moyennées produit un aspect plus doux, selon le shader utilisé.
Stockage des normales au vertex sur les géométries
La plupart des géométries FME (à l'exception des maillages et des nuages de points) stockent les normales des vertex sous forme de mesures spécialement nommées sur les vertex de la géométrie. Les noms de ces mesures sont les suivants :
- fme_vertex_normal_x
- fme_vertex_normal_y
- fme_vertex_normal_z
Les nuages de points stockent les normales des sommets sous forme de composants nommés. Les noms de ces composantes sont :
- normal_x
- normal_y
- normal_z
Les parties de maillage utilisent des références à un pool de normales de vertex commun. Pour plus d'informations, voir Maillages (IFMEMesh).