Sdílet prostřednictvím


Základní operace OpenGL

Následující diagram znázorňuje, jak OpenGL zpracovává data. Jak je znázorněno, příkazy se zadávají zleva a procházejí kanálem zpracování. Některé příkazy určují geometrické objekty, které se mají nakreslit, a jiné řídí způsob zpracování objektů během různých fází zpracování.

diagram znázorňující fáze kanálu zpracování dat OpenGL

Fáze zpracování v základní operaci OpenGL jsou následující:

  • zobrazit seznam Místo toho, aby všechny příkazy pokračovaly okamžitě v kanálu, můžete se rozhodnout, že některé z nich nashromáždíte v seznamu zobrazení pro pozdější zpracování.

  • Vyhodnocovací Fáze zpracování vyhodnocovače poskytuje efektivní způsob, jak odhadnout geometrii křivky a povrchu vyhodnocením polynomických příkazů vstupních hodnot.

  • operace jednotlivých vrcholů a primitivní sestavení OpenGL zpracovává geometrické primitivní body, segmenty čar a mnohoúhelníky, které jsou popsány vrcholy. Vrcholy jsou transformovány a lit a primitivy jsou oříznuty na výřez v přípravě na rasterizaci.

  • rasterizace Fáze rasterizace vytváří řadu adres vyrovnávací paměti rámce a přidružených hodnot pomocí dvojrozměrného popisu bodu, segmentu čáry nebo mnohoúhelníku. Všechny vytvořené fragmenty se předá do poslední fáze operací jednotlivých fragmentů.

  • operace pro jednotlivé fragmenty Jedná se o konečné operace prováděné s daty, než jsou uloženy jako pixely v framebufferu.

    Operace jednotlivých fragmentů zahrnují podmíněné aktualizace rámce založené na příchozích a dříve uložených hodnotách z (pro ukládání do vyrovnávací paměti z) a kombinování příchozích barev pixelů s uloženými barvami a také maskování a další logické operace s hodnotami pixelů.

Data mohou být vstupní ve formě pixelů, nikoli vrcholů. Data ve formě pixelů, například můžou popisovat obrázek pro použití při mapování textury, přeskočí první fázi zpracování popsané výše a místo toho se zpracovává jako pixely ve fázi operací pixelů. V následujících pixelových operacích jsou data v pixelech:

  • Uložena jako paměť textury pro použití ve fázi rasterizace.
  • Rasterized, s výslednými fragmenty sloučenými do framebufferu stejně jako kdyby byly generovány z geometrických dat.