C'est une vieille question, mais la réponse actuelle n'explique pas vraiment à quoi vous les utiliseriez.
Il s'agit de gagner de l'espace. Et avec les attributs de sommet, moins d'espace peut signifier des performances plus élevées (si vous êtes lié au transfert de sommet).
Les couleurs n'ont généralement pas besoin de plus de 8 bits par composant. Parfois, vous avez besoin de 16 bits, si c'est une valeur lumineuse HDR ou quelque chose. Mais pour les caractéristiques de surface (ce qui est le cas de la plupart des attributs de sommet), 8 bits conviennent. Les octets normalisés non signés sont donc un bon format de sommet.
Les coordonnées de texture n'ont pas besoin de 32 bits de précision en virgule flottante. Une valeur de 16 bits de [0, 1] est suffisante. Les shorts non signés normalisés sont donc un format de sommet raisonnable.
Les normales n'ont jamais besoin d'une précision de 32 bits. Ce sont des directions. Les octets normalisés signés 8 bits ont tendance à être un peu petits, mais les valeurs normalisées 10 bits sont suffisantes la plupart du temps. OpenGL (3.3+) vous permet même d'utiliser des normales 10 bits via un format compressé 10/10/10/2 bits, stocké dans un seul entier non signé 32 bits.
Vous pouvez même jouer à des jeux avec des positions de vertex, si vous vous trouvez dans le besoin urgent de plus de mémoire.
Sans normalisation, vous devrez gaspiller de précieux cycles dans votre shader en divisant les attributs en octets par 255,0. Pourquoi faire cela, alors que le matériel peut le faire gratuitement?