Rendu et applications

Rendu d’images plus grandes qu’une texture

Une image peut être bien plus grande que la dimension maximale de texture du GPU si elle n’est jamais allouée en tant qu’une seule texture. Le rendu par tuiles évalue des régions gérables et transmet les pixels finalisés vers une représentation de sortie.

Rendu de Mandelbrot avec une grille de tuiles visible pour une exportation à grande échelle
Les images de très grande taille sont divisées en tuiles faciles à gérer, puis assemblées sans joints visibles.Image: Björn Kindler / MandelKit · MandelKit Wissensgrafik · Eigene Darstellung · Own work

Vue globale, tuiles locales

Chaque tuile tire ses coordonnées des dimensions totales de la sortie et du format d'affichage visible. Il ne faut en aucun cas ajuster ou centrer la fractale de manière indépendante, sinon l'image assemblée comportera des recadrages répétés au lieu d'une vue continue.

Une sortie de grande taille dispose d’un système de coordonnées global unique. Chaque tuile est découpée avec précision à partir de ce système, plutôt que d’être capturée par une caméra avec un cadrage distinct. Les centres des pixels doivent s’aligner au-delà des limites des tuiles, sous peine de voir apparaître des joints. Le format d’image et la région fractale visible sont définis une seule fois pour l’ensemble de l’image, ce qui permet une exportation en 100,000 pixels tout en préservant la composition de la vue à l’écran.

Les effets nécessitent des « voisinages »

L’anticrénelage, les cartes de normales et les filtres en espace écran peuvent échantillonner au-delà du bord d’une tuile. Le rendu de bandes de garde et leur recadrage lors de l’assemblage permettent d’éviter les joints visibles. Les méthodes globales telles que l’égalisation d’histogramme nécessitent un passage statistique distinct ou sont intentionnellement indisponibles.

Les filtres avec rayon nécessitent des pixels dépassant les bords des tuiles. Rendu de chaque tuile avec un halo, application de l’effet, puis recadrage sur le cœur. Les effets en plusieurs étapes peuvent nécessiter un halo cumulatif plus large. Sans chevauchement, des joints apparaissent même si chaque tuile semble correcte prise isolément. Le rayon requis fait partie de la définition de l’effet et doit être connu du responsable de l’exportation.

« Disque » remplace « mémoire maximale ».

Un encodeur ou un stockage intermédiaire s'appuyant sur le disque accepte les lignes ou les tuiles au fur et à mesure de leur achèvement. Cela limite l'utilisation de la RAM et de la mémoire GPU tout en transférant la charge vers le stockage, les limites d'encodage et la durée des tâches. La gestion de la progression, de l'annulation et de la finalisation atomique fait partie intégrante de la fiabilité des exportations de longue durée.

Lorsque l’image complète ne tient pas dans la mémoire vive (RAM) ou dans une seule texture Metal, les bandes terminées sont écrites directement dans un encodeur incrémental ou un fichier temporaire. La progression doit inclure le rendu et l’encodage, tandis que l’annulation ferme proprement les données temporaires. Une seule image finale CGImage ne doit jamais être requise — c’est précisément cette étape finale de composition qui, sinon, produit des exportations géantes vides ou non encodables.

Sources et lectures complémentaires

Cet article résume les sources spécialisées suivantes en reprenant leur formulation d'origine. Consultées et révisées par la rédaction 12 août 2026.

  1. Metal overviewApple Developer Documentation
  2. The Science of Fractal ImagesSpringer