Renderelés és alkalmazások

Egy textúránál nagyobb képek renderelése

Egy kép jóval nagyobb lehet, mint a GPU maximális textúra-mérete, ha soha nem osztják fel egyetlen textúraként. A csempés renderelés kezelhető régiókat értékel ki, és a kész pixeleket kimeneti ábrázolásba továbbítja.

Mandelbrot-renderelés látható rácshálóval nagy méretű exportáláshoz
A túl nagy méretű képeket kezelhető mozaikokra osztják, majd látható illesztések nélkül állítják össze.Kép: Björn Kindler / MandelKit · MandelKit Wissensgrafik · Eigene Darstellung · Own work

Globális nézet, helyi mozaikok

Minden csempe koordinátáit a teljes kimeneti méretekből és a látható képarányból kell levezetni. A fraktált nem szabad önállóan illeszteni vagy központosítani, mert ellenkező esetben az összeállított kép nem egy folytonos nézetet, hanem ismétlődő kivágásokat fog tartalmazni.

Egy hatalmas kimeneti képnek egyetlen globális koordinátarendszere van. Minden csempe pontos kivágást kap ebből, nem pedig egy külön lekerekített kamerából. A pixelek középpontjainak át kell nyúlniuk a csempék határain, különben varratok jelennek meg. A képarányt és a látható fraktálterületet egyszer kell meghatározni az egész képre vonatkozóan, így egy 100,000-pixeles exportálás során megőrizhető a képernyőn látható kompozíció.

Az effektusokhoz szomszédságok szükségesek

Az anti-aliasing, a normál térképek és a képernyőtérbeli szűrők a csempe szélén túl is mintavételezhetnek. A védősávok renderelése és azok összeállítás közbeni kivágása megakadályozza az illesztések megjelenését. Az olyan globális módszerek, mint a hisztogramkiegyenlítés, külön statisztikai feldolgozási lépést igényelnek, vagy szándékosan nem állnak rendelkezésre.

A sugárral rendelkező szűrők a csempe szélein túli pixeleket igényelnek. Minden csempét halóval renderelje, alkalmazza az effektust, majd vágja ki a magot. A többfokozatú effektusokhoz nagyobb kumulatív halóra lehet szükség. Átfedés nélkül varratok jelennek meg, még akkor is, ha az egyes csempék önmagukban helyesnek tűnnek. A szükséges sugár az effektus definíciójához tartozik, és az exporttervezőnek ismernie kell.

A „Disk” kifejezés helyettesíti a „peak memory” kifejezést

Egy lemezalapú kódoló vagy köztes tároló fogadja a sorokat vagy csempéket, amint azok elkészülnek. Ez korlátozza a RAM- és a GPU-memóriát, miközben a terhelést a tárolóra, a kódolási korlátokra és a feladat időtartamára helyezi át. A haladás, a lemondás és az atomi véglegesítés a hosszú exportálások helyességének részét képezik.

Ha a teljes kép nem fér el a RAM-ban vagy egy Metal textúrában, a kész szalagokat közvetlenül egy inkrementális kódolóba vagy ideiglenes fájlba írják. A folyamatnak tartalmaznia kell a renderelést és a kódolást, míg a művelet megszakítása esetén az ideiglenes adatokat tisztán kell lezárni. Soha nem szabad egyetlen végső CGImage-t megkövetelni – pontosan ez a végső összeállítási lépés eredményez egyébként üres vagy kódolhatatlan óriási exportfájlokat.

Források és további olvasnivalók

Ez a cikk az alábbi szakirodalmi forrásokat foglalja össze eredeti megfogalmazásukban. Hozzáférés és szerkesztői áttekintés: 12 augusztus 2026.

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