Subdivision de surfaces par l’algorithme de Catmull-Clark

Les images suivantes montrent les résultats de l’application de l’algorithme de subdivision de Catmull-Clark sur des modèles polygonaux. L’application Open Inventor qui a été employée pour produire ces résultats, utilise l’algorithme décrit dans “Recursively generated B-spline surfaces on arbitrary topological surfaces” (Surface en B-spline générée récursivement sur des surfaces quelconques) par E. Catmull et J. Clark (Computer-Aided Design 10(6):350-355, November 1978).

Quand un polyèdre est subdivisé avec la méthode de Catmull-Clark, de nouveaux sommets (appelés “points de face”) sont placés au centre de chaque face originelle; des nouveaux “points d’arête” (point relatif à une arête, mais qui ne se trouve pas forcement sur l’arête) sont placés par rapport au milieu de chaque arête originelle; de nouvelles arêtes sont ajoutées, afin de relier le nouveau point d’arête aux nouveaux points de face appartenant aux faces adjacentes à cette arête. Les positions de tous ces sommets sont calculées de la manière suivante:

  • Les points de face sont les équibarycentres des sommets de chaque face originelle;
  • Les points d’arête sont les équibarycentres des deux sommets de l’arête et des deux nouveaux points de face des deux faces adjacentes à l’arête;
  • Les anciens sommets sont replacés selon l’équation suivante:
         Q     2R     S(n-3)
        --- + ---- + --------
         n      n        n
    

    où:

    • Q est l’équibarycentre des nouveaux points de face des faces passant par l’ancien sommet,
    • R est l’équibarycentre des milieux des arêtes passant par l’ancien sommet,
    • S est l’ancien sommet, et
    • n est le nombre d’arêtes passant par l’ancien sommet.

Les images suivantes montrent un polyèdre suivi de cinq applications successives de l’algorithme de subdivision de Catmull-Clark:

Original model First subdivision Second subdivision Third subdivision Fourth subdivision Fifth subdivision

Cette page a été traduite en français par Jean-François Botalla.