Renderování a aplikace

Renderování obrázků větších než jedna textura

Obrázek může být mnohem větší než maximální rozměr textury GPU, pokud není nikdy alokován jako jedna textura. Renderování v dlaždicích vyhodnocuje zvládnutelné oblasti a streamuje hotové pixely do výstupního zobrazení.

Renderování Mandelbrotovy množiny s viditelnou mřížkou dlaždic pro export ve velkém formátu
Příliš velké obrázky se rozdělí na zvládnutelné části a poté se složí bez viditelných spojů.Obrázek: Björn Kindler / MandelKit · MandelKit Wissensgrafik · Eigene Darstellung · Own work

Globální pohled, lokální dlaždice

Každá dlaždice odvozuje své souřadnice z celkových rozměrů výstupu a viditelného poměru stran. Nesmí fraktál samostatně přizpůsobovat ani vycentrovat, jinak bude sestavený obrázek obsahovat opakované výřezy namísto jednoho souvislého pohledu.

Obrovský výstup má jeden globální souřadnicový systém. Každá dlaždice z něj získává přesný výřez, nikoli samostatně zaoblený záběr kamery. Středy pixelů musí navazovat přes hranice dlaždic, jinak se objeví spoje. Poměr stran a viditelná fraktální oblast jsou definovány jednou pro celý obrázek, což umožňuje export v rozlišení 100,000 pixelů tak, aby byla zachována kompozice zobrazení na obrazovce.

Efekty vyžadují sousedství

Antialiasing, normálové mapy a filtry v obrazovém prostoru mohou vzorkovat i za okrajem dlaždice. Vykreslení ochranných pásem a jejich oříznutí během sestavování zabraňuje vzniku viditelných spojů. Globální metody, jako je vyrovnání histogramu, vyžadují samostatný statistický průchod nebo jsou záměrně nedostupné.

Filtry s poloměrem vyžadují pixely přesahující okraje dlaždic. Každou dlaždici vykreslete s halo, aplikujte efekt a poté ořízněte na jádro. Vícefázové efekty mohou vyžadovat větší kumulativní halo. Bez překrytí se objeví spoje, i když každá dlaždice samostatně vypadá správně. Požadovaný poloměr patří k definici efektu a musí být znám exportnímu plánovači.

Disk nahrazuje špičkovou paměť

Kodér využívající disk nebo mezipaměť přijímá řádky či dlaždice postupně, jak jsou dokončovány. Tím se omezuje využití paměti RAM a GPU a tlak se přesouvá na úložiště, limity kódování a délku trvání úlohy. Průběh, zrušení a atomická finalizace jsou součástí správného fungování při dlouhých exportů.

Pokud se celý obrázek nevejde do paměti RAM nebo do jedné textury Metal, dokončené pruhy se zapisují přímo do inkrementálního kodéru nebo do dočasného souboru. Průběh by měl zahrnovat renderování i kódování, zatímco zrušení operace dočasná data čistě uzavře. Nikdy nesmí být vyžadován jediný finální CGImage – právě tento závěrečný krok kompozice jinak vede k prázdným nebo nekódovatelným obřím exportům.

Zdroje a další literatura

Tento článek shrnuje následující odborné zdroje v původním znění. Přístup a redakční revize 12 srpen 2026.

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