Rendering og bruksområder

Rendering av bilder som er større enn én tekstur

Et bilde kan være langt større enn GPU-ens maksimale teksturdimensjon hvis det aldri tildeles som én tekstur. Flisrendering beregner håndterbare regioner og strømmer de ferdige pikslene inn i en utgangsrepresentasjon.

Mandelbrot-rendering med et synlig fliseraster for eksport i stor skala
Bilder som er for store, deles opp i håndterbare fliser og settes deretter sammen uten synlige skjøter.Bilde: Björn Kindler / MandelKit · MandelKit Wissensgrafik · Eigene Darstellung · Own work

Globalt overblikk, lokale fliser

Hver flis henter koordinatene sine fra de fullstendige utskriftsdimensjonene og det synlige sideforholdet. Den må ikke uavhengig tilpasse eller sentrere fraktalen, ellers vil det sammensatte bildet inneholde gjentatte utsnitt i stedet for én sammenhengende visning.

Et stort utdata har ett globalt koordinatsystem. Hver flis får en nøyaktig utskjæring fra dette, i stedet for et separat avrundet kamera. Pikselsentrene må fortsette på tvers av flisgrensene, ellers oppstår sømmer. Bildeforhold og synlig fraktalregion defineres én gang for hele bildet, slik at en eksport på 100,000 piksler bevarer komposisjonen i skjermvisningen.

Effekter trenger nabolag

Antialiasing, normal kart og skjermromsfiltre kan ta prøver utenfor en flisekant. Å rendere beskyttelsesbånd og beskjære dem under sammensetningen forhindrer synlige overganger. Globale metoder som histogramutjevning krever en egen statistikkbehandling eller er bevisst utilgjengelige.

Filtre med radius krever piksler utenfor flisekantene. Render hver flis med en glorie, bruk effekten, og beskjær deretter til kjernen. Flerstegseffekter kan kreve en større kumulativ glorie. Uten overlapping vil det oppstå sømmer, selv om hver flis ser korrekt ut for seg. Den nødvendige radiusen er en del av effektdefinisjonen og må være kjent for eksportplanleggeren.

Disk erstatter toppminne

En diskbasert koder eller mellomlagring tar imot rader eller fliser etter hvert som de fullføres. Dette begrenser bruken av RAM og GPU-minne, samtidig som belastningen flyttes over til lagringsplass, kodingsbegrensninger og oppgavens varighet. Fremdrift, avbrytelse og atomisk fullføring er deler av korrektheten ved lange eksporter.

Når hele bildet ikke får plass i RAM eller én Metal-tekstur, skrives ferdige striper direkte til en inkrementell koder eller en midlertidig fil. Fremdriften bør omfatte rendering og koding, mens avbrytelse lukker midlertidige data på en ryddig måte. Det må aldri være behov for et enkelt endelig CGImage – nettopp det siste komposisjonstrinnet fører ellers til tomme eller ukodbare gigantiske eksporter.

Kilder og videre lesning

Denne artikkelen oppsummerer følgende fagkilder i originalformuleringer. Hentet og redaksjonelt gjennomgått 12 august 2026.

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