J'essaie de comprendre pourquoi les maillages lissés dans 3D studio (Modifiers / Smoother) finissent par avoir la même quantité de sommets / faces avant ou après ce processus, ainsi que la même géométrie exacte.
Dans l'exemple suivant, les deux maillages ont 32 sommets et 60 faces.
Bien que j'ai de l'expérience avec la programmation (c ++ et c #), je suis assez débutant en infographie. Ainsi, je m'attendais à ce que l'aspect lissé d'un maillage lissé nécessite des sommets supplémentaires, c'est-à-dire une subdivision des triangles, pour aboutir à un maillage final plus détaillé. Cependant, cela ne semble pas être le cas.
Je demande donc:
1) comment le lissage est-il possible sans augmenter le détail de la géométrie du maillage?
2) le lissage augmente-t-il au moins la mémoire allouée / utilisée pour stocker le nouveau maillage par rapport à celui d'origine?
Les explications sont super bienvenues, mais les références (académiques ou non) sont également appréciées.
Réponses:
Dans ce cas, le lissage fait simplement pointer les normales de surface aux sommets de la même manière, lorsqu'il est interpolé, il semble lisse. Meshsmooth ajouterait des sommets.
1) comment le lissage est-il possible sans augmenter le détail de la géométrie du maillage?
Les yeux humains ne peuvent pas voir la courbure, sauf sur les bords des objets. Tout ce qu'ils peuvent faire, c'est approximer le lissage et traiter la pente du gradient. Donc, avoir un champ continu donne un air de douceur. L'œil est cependant extrêmement sensible aux changements brusques de couleur et interprète cela comme un pli dur.
En interpolant les normales des sommets, votre surface aura l'apparence d'un écoulement fluide. Puisque cette normale est utilisée pour calculer la couleur réfléchie finale, vous obtenez un champ de couleur lisse.
Image 1 : une normale ombragée plate par rapport aux normales d'une interconnexion lisse. Le mensonge de la normale noire sur un sommet. Les couleurs sont interpolées.
Rien ne dit que nous devons effectuer une interpolation linéaire. En fait, en perturbant les normales, nous pouvons faire changer l'apparence de la surface plane. Voici comment fonctionne le mappage de relief et le mappage normal. L'effet peut être convaincant à moins que le bord des surfaces ne joue un rôle trop important dans lequel se casse l'illusion.
Image 2 : une surface ombrée plate (verso), ombragée lisse (milieu) et une normale lisse cartographiée. L'illusion d'une surface ondulée se brise parce que le bord joue un rôle si important dans l'image que vous pourriez plutôt augmenter les normales
2) le lissage augmente-t-il au moins la mémoire allouée
Difficile de dire des choses définitives sur le moteur graphique sous-jacent. Les normales doivent de toute façon être émises vers la carte graphique, très probablement ces données sont mises en cache, mais pourraient être calculées à la volée (dans les deux cas).
Puisque Max utilise des groupes de lissage, il me semble que l'utilisation de la mémoire est constante malgré tout. Difficile à dire, même si ce n'est pas mis en cache, cela ne ferait pas une grande différence. Cela rend le shader minuscule un peu plus compliqué, mais ce n'est que très probablement que cette complexité est présente, utilisez-le ou non.
la source