Rendering & applications

Rendering images larger than one texture

An image can be far larger than the GPU’s maximum texture dimension if it is never allocated as one texture. Tiled rendering evaluates manageable regions and streams the finished pixels into an output representation.

Mandelbrot rendering with a visible tile grid for a large export
Oversized images are divided into manageable tiles and then assembled without visible seams.Image: Björn Kindler / MandelKit · MandelKit Wissensgrafik · Eigene Darstellung · Own work

Global view, local tiles

Every tile derives its coordinates from the full output dimensions and visible aspect ratio. It must not independently fit or center the fractal, or the assembled image will contain repeated crops rather than one continuous view.

A huge output has one global coordinate system. Every tile receives an exact crop from it rather than a separately rounded camera. Pixel centers must continue across tile boundaries or seams appear. Aspect ratio and visible fractal region are defined once for the entire image, allowing a 100,000-pixel export to preserve the composition of the screen view.

Effects need neighborhoods

Antialiasing, normal maps and screen-space filters may sample beyond a tile edge. Rendering guard bands and cropping them during assembly prevents seams. Global methods such as histogram equalization need a separate statistics pass or are intentionally unavailable.

Filters with radius require pixels beyond tile edges. Render each tile with a halo, apply the effect, then crop to the core. Multi-stage effects may need a larger cumulative halo. Without overlap, seams appear even though each tile looks correct alone. Required radius belongs to the effect definition and must be known to the export planner.

Disk replaces peak memory

A disk-backed encoder or intermediate store accepts rows or tiles as they complete. This bounds RAM and GPU memory while shifting pressure to storage, encoding limits and job duration. Progress, cancellation and atomic finalization are part of correctness for long exports.

When the full image cannot fit in RAM or one Metal texture, completed strips are written directly to an incremental encoder or temporary file. Progress should include rendering and encoding, while cancellation closes temporary data cleanly. A single final CGImage must never be required—exactly that final composition step otherwise produces blank or unencodable giant exports.

Sources and further reading

This article summarizes the following specialist sources in original wording. Accessed and editorially reviewed 12 August 2026.

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