Rendering di immagini più grandi di una singola texture
Un’immagine può essere di gran lunga più grande della dimensione massima della texture della GPU se non viene mai allocata come un’unica texture. Il rendering a tessere valuta regioni gestibili e trasmette in streaming i pixel finiti in una rappresentazione di output.

Vista globale, tessere locali
Ogni riquadro ricava le proprie coordinate dalle dimensioni totali dell’output e dalle proporzioni visibili. Non deve adattare o centrare il frattale in modo indipendente, altrimenti l’immagine assemblata conterrà ritagli ripetuti anziché una vista continua.
Un output di grandi dimensioni ha un unico sistema di coordinate globale. Ogni riquadro riceve da esso un ritaglio esatto, anziché una telecamera arrotondata separatamente. I centri dei pixel devono continuare oltre i confini dei riquadri, altrimenti compaiono delle giunture. Le proporzioni e la regione frattale visibile sono definite una sola volta per l’intera immagine, consentendo un’esportazione di 100,000 pixel che preservi la composizione della vista sullo schermo.
Gli effetti richiedono i «vicinati»
L'antialiasing, le mappe normali e i filtri screen-space possono campionare oltre il bordo di una tessera. Il rendering delle bande di protezione e il loro ritaglio durante l’assemblaggio prevengono la comparsa di giunture. I metodi globali, come l’equalizzazione dell’istogramma, richiedono un passaggio statistico separato oppure sono intenzionalmente non disponibili.
I filtri con raggio richiedono pixel oltre i bordi delle tessere. Renderizza ogni tessera con un alone, applica l’effetto, quindi ritaglia fino al nucleo. Gli effetti a più fasi potrebbero richiedere un alone cumulativo più ampio. Senza sovrapposizione, compaiono delle giunture anche se ogni singola tessera appare corretta. Il raggio richiesto fa parte della definizione dell’effetto e deve essere noto al responsabile dell’esportazione.
«Disk» sostituisce «peak memory»
Un codificatore supportato da disco o una memoria intermedia accetta righe o tessere man mano che vengono completate. Ciò limita l’utilizzo della RAM e della memoria della GPU, spostando la pressione sullo spazio di archiviazione, sui limiti di codifica e sulla durata del processo. Lo stato di avanzamento, l’annullamento e la finalizzazione atomica sono elementi fondamentali per garantire la correttezza delle esportazioni di lunga durata.
Quando l’immagine completa non riesce a stare nella RAM o in una singola texture Metal, le strisce completate vengono scritte direttamente in un encoder incrementale o in un file temporaneo. Lo stato di avanzamento dovrebbe includere il rendering e la codifica, mentre l’annullamento chiude i dati temporanei in modo pulito. Non deve mai essere richiesta una singola immagine finale CGImage: proprio quella fase finale di composizione, infatti, produce esportazioni giganti vuote o non codificabili.
Fonti e approfondimenti
Questo articolo riassume le seguenti fonti specialistiche utilizzando la formulazione originale. Consultato e revisionato dal punto di vista editoriale 12 agosto 2026.
- Metal overviewApple Developer Documentation
- The Science of Fractal ImagesSpringer


