Rendering och tillämpningar

Rendering av bilder som är större än en textur

En bild kan vara betydligt större än GPU:ns maximala texturdimension om den aldrig tilldelas som en enda textur. Tiled rendering utvärderar hanterbara regioner och strömmar de färdiga pixlarna till en utgångsrepresentation.

Mandelbrot-rendering med ett synligt rutnät för en stor export
Överdimensionerade bilder delas upp i hanterbara delar och sätts sedan ihop utan synliga skarvar.Bild: Björn Kindler / MandelKit · MandelKit Wissensgrafik · Eigene Darstellung · Own work

Global vy, lokala rutor

Varje ruta hämtar sina koordinater från de fullständiga utskriftsdimensionerna och det synliga bildförhållandet. Fraktalen får inte anpassas eller centreras separat, annars kommer den sammanställda bilden att innehålla upprepade beskärningar istället för en sammanhängande vy.

En stor utdata har ett globalt koordinatsystem. Varje ruta får en exakt beskärning från detta istället för en separat avrundad kamera. Pixelcentrum måste fortsätta över rutgränserna, annars uppstår sömmar. Bildförhållandet och den synliga fraktalregionen definieras en gång för hela bilden, vilket gör det möjligt att exportera i 100,000-pixel för att bevara kompositionen i skärmvyn.

Effekter behöver omgivningar

Antialiasing, normalkartor och skärmrumsfilter kan ta prover bortom en kakelkant. Att rendera skyddsband och beskära dem under sammanställningen förhindrar synliga skarvar. Globala metoder såsom histogramutjämning kräver ett separat statistikpass eller är avsiktligt otillgängliga.

Filter med radie kräver pixlar utanför kakelkanterna. Rendera varje kakel med en gloria, tillämpa effekten och beskär sedan till kärnan. Effekter i flera steg kan behöva en större kumulativ gloria. Utan överlappning uppstår synliga skarvar även om varje kakel ser korrekt ut för sig. Den erforderliga radien ingår i effektdefinitionen och måste vara känd för exportplaneraren.

Disk ersätter toppminne

En diskbaserad kodare eller mellanlagring tar emot rader eller rutor allteftersom de färdigställs. Detta begränsar RAM- och GPU-minnet samtidigt som trycket flyttas över till lagring, kodningsbegränsningar och jobbets varaktighet. Framsteg, avbrytande och atomär slutföring är en del av korrektheten vid långa exporter.

När hela bilden inte får plats i RAM-minnet eller i en Metal-textur skrivs färdiga remsor direkt till en inkrementell kodare eller en tillfällig fil. Framsteg bör omfatta både rendering och kodning, medan avbrytning stänger tillfälliga data på ett korrekt sätt. En enda slutlig CGImage får aldrig krävas – just det sista kompositionssteget ger annars tomma eller okodbara jätteexporter.

Källor och vidare läsning

Denna artikel sammanfattar följande fackkällor i originalformuleringar. Hämtad och redaktionellt granskad 12 augusti 2026.

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