Supposons que mon modèle 3D soit une pyramide avec une base rectangulaire et je numérote les quatre coins de la base avec 1, 2, 3, 4 et donne 5 au point supérieur. Si je projette cette pyramide dans un objet en forme d'étoile 2D, les quatre points extérieurs de l'étoile ne seraient-ils pas tous associés au point numéro 5 dans le modèle 3D?
uv-mapping
Abdul Al Hazred
la source
la source
Réponses:
De la manière dont il est généralement défini, chaque sommet d'un maillage correspond à une coordonnée UV, et il doit exister exactement une coordonnée de ce type par sommet, car c'est ainsi qu'un moteur de rendu récupère les texels. Il est donc impossible d'avoir plusieurs coordonnées UV pour un seul sommet à moins d'avoir plusieurs paramétrisations pour votre maillage.
Cependant, les maillages sont souvent divisés lors du paramétrage et les mêmes sommets peuvent se retrouver à plusieurs endroits, comme dans votre exemple. Le plus souvent, ces sommets sont simplement répliqués lors du chargement / rendu, de sorte que le mappage vertex-uv reste 1-to-1 ou many-to-1. Ainsi, un moteur de rendu interprétera probablement votre exemple comme suit (la v5 est divisée en 4):
la source
J'ai juste besoin d'ajouter un peu à la réponse de ap_.
Bien sûr, vous pouvez avoir plusieurs UV pour un sommet, c'est ce qu'on appelle les couches UV. C'est ainsi que les moteurs ont affiché des cartes lumineuses et des cartes d'albédo en même temps, depuis l'avènement des cartes lumineuses. (moteur de tremblement de terre en 1996 peut-être?)
Vous pouvez avoir plus de couches UV, si vous voulez faire du multitexturing comme pour les terrains, lightmap, albedo large, albedo detail, normal map ...
Malheureusement, le rastériseur ne choisira jamais une couche UV en fonction de la primitive qu'il rend. Un tel rendu pourrait être fait avec un tampon d'index supplémentaire (primitif au tampon de mappage de couche UV) mais aucune carte graphique et aucune API graphique ne le prennent en charge. Il s'agit de toute façon d'une violation inutile de KISS.
Donc, ce que l'on ferait dans ce cas, c'est de séparer votre sommet de la pyramide en 4 sommets distincts pendant la conception. Quoi qu'il en soit, la première raison à cela, ce n'est pas le déballage UV mais la définition généralement normale. Si vous voulez des arêtes vives, vous devez briser l'ombrage, donc vous devez avoir des normales différentes, elles aussi, comme les UV, sont généralement définies 1-1 dans le flux de vertex.
Suggestion finale, peut-être que vous ne voulez pas vraiment utiliser ce déballage, je suggère plutôt ceci:
De cette façon, vous avez une continuité transparente pour le filtrage et regardez sur les bords et sur l'apex.
la source