Co zahrnují základy 2D a 3D počítačové grafiky
Počítačová grafika je disciplína, která se zabývá reprezentací, zpracováním a zobrazováním obrazových dat. V 2D grafice pracujeme primárně s plochami, barvami a kompozicí; ve 3D grafice s geometrií ve třech rozměrech, světlem a materiály. Společným jmenovatelem je matematický model světa (či obrazu), sampling na diskrétní mřížku obrazových bodů a fyzikálně podložené zobrazení na výstupním zařízení.
Raster vs. vektor: dva základní modely 2D reprezentace
Rastrová grafika reprezentuje obraz jako matici pixelů s barevnými hodnotami. Výhodou je věrnost fotografickým detailům a jednoduché zpracování filtrů; nevýhodou škálování (pikselace) a vysoké nároky na paměť ve vysokém rozlišení.
Vektorová grafika používá geometrické prvky (body, úseky, Bézierovy křivky, výplně). Je škálovatelná bez ztráty kvality, ideální pro loga, ilustrace a typografii. Renderování do rastrového obrazu probíhá až v okamžiku zobrazení či exportu.
Barvové modely a správa barev
Barvy se v počítačích popisují modely jako RGB (aditivní míchání světel pro obrazovky), CMYK (subtraktivní pro tisk), HSV/HSL (percepčně orientované) nebo CIE L*a*b* (přibližně uniformní vnímáním). Pro věrné zobrazení je nutná správa barev (ICC profily), volba barevného prostoru (sRGB, Display P3, Rec.709, Rec.2020) a správná práce s gammou a lineárními daty.
Sampling, rekonstrukce a aliasing
Konverze spojité scény na diskrétní pixely je sampling. Nesplnění Nyquistových podmínek vede k aliasingu (zubaté hrany, moiré). Řešením je anti-aliasing (MSAA, SSAA, FXAA/TAA), prefiltrované textury (mipmapping, anisotropní filtrování) a rekonstrukční filtry (box, bilineární, bicubická, Lanczos).
2D kompozice: vrstvy, alfa a blending
Kompozice více vrstev používá alfa kanál pro průhlednost. Rozlišujeme straight a premultiplied alpha; premultiplikace zjednodušuje korektní blending a minimalizuje halo efekt. Typické operace jsou over, additive, multiply, screen, které odpovídají fyzikálním i kreativním kombinacím světel a pigmentů.
Geometrické transformace v 2D a 3D
Posun, rotace a škálování se sjednocují do afinních transformací popsaných maticemi. V homogenních souřadnicích 3×3 (2D) či 4×4 (3D) lze transformace řetězit násobením. V 3D se orientace často reprezentuje kvaterniony (bez gimbal locku), interpolace probíhá metodami slerp/lerp.
3D geometrie: polygony, plochy a křivky
Základní 3D reprezentací je polygonová síť (triangulace). Pro CAD a přesné modely se používají Bézierovy plochy a NURBS. Normály, tečny a binormály definují lokální rámec pro osvětlení a mapování textur. Topologie (hrany, vrcholy, smyčky) ovlivňuje kvalitu deformačních operací (skin, rigging).
Projekce, kamera a klipování
3D scéna se promítá na 2D obraz pomocí projekční matice. Perspektivní projekce zachovává iluzi hloubky (vzdálené objekty se zmenšují), ortografická projekce ji potlačuje (užitečné pro technická zobrazení). Objekty mimo frustum se klipují, neviditelné zadní plochy se odstraňují (back-face culling).
Grafický renderovací řetězec (pipeline)
Moderní pipeline zahrnuje fáze: aplikace (příprava geometrií a stavů), vertex/mesh shading (transformace vrcholů, generace geometrie), volitelně tessellace, rasterizace (převod na fragmenty), fragment shading (výpočet barvy), testy (hloubka, šablona), kompozice a post-processing. V reálném čase běží na GPU (OpenGL, Vulkan, Direct3D, Metal, WebGPU).
Osvětlení a lokální modely stínování
Klasické lokální modely: Lambert (difúzní), Phong/Blinn-Phong (zrcadlové odrazy). Parametry materiálu (albedo, lesk/exponent) řídí rozložení odražené energie. Normálové mapy modifikují orientaci povrchu bez změny geometrie, čímž zvyšují počet detailů.
Fyzikálně založené renderování (PBR)
PBR zajišťuje energetickou konzistenci a realističnost. Materiály popisují BRDF (např. GGX/Trowbridge-Reitz) a respektují mikrofacetový model, Fresnelův jev a geometrické stínění. Běžný metalness-roughness workflow zahrnuje mapy albedo/base color, normal, metallic, roughness, ambient occlusion a případně height/parallax.
Globální osvětlení a stíny
Lokální modely ignorují vícenásobné odrazy. Globální osvětlení (radiosity, path tracing) zahrnuje interreflexe a barevné bleedingy. V reálném čase se používají aproximace: screen-space ambient occlusion, reflection probes, lightmaps, voxel-GI. Stíny se řeší metodami shadow mapping (PCF/PCSS), variance shadow maps a cascaded shadow maps pro rozsáhlé scény.
Ray tracing vs. rasterizace
Rasterizace je extrémně rychlá pro primární viditelnost. Ray tracing sleduje paprsky scénou, přirozeně řeší odrazy, lomy a měkké stíny. Hybridní přístup (RT pro efekty, raster pro základ) je standardem v moderních enginech, akcelerovaný pomocí BVH/SAH a RT jader GPU.
Texturování a mapování parametrických souřadnic
Textury přidávají detail: barvu (albedo), drsnost, výškové informace (parallax/relief mapping), emisivitu. UV mapování rozvine povrch na 2D, projekční a triplanar techniky pomáhají u procedurálních materiálů. Mipmapping a anisotropní filtrování stabilizují sampling z pohledu perspektivy.
Hloubka, Z-buffer a viditelnost
Z-buffer ukládá pro každý pixel nejbližší hloubku. Test hloubky rozhoduje, který fragment je viditelný. Kvůli nelinearitě perspektivní projekce je důležité vhodně volit near/far roviny pro minimalizaci z-fighting. Další techniky zahrnují order-independent transparency (A-buffer, per-pixel linked lists) a occlusion culling.
Animace, kinematika a deformace
Vektorové 2D animace využívají transformace křivek a klíčové snímky. V 3D se používá skeletální animace (kostra, skinning – lineární LBS či dual-quaternion skinning), kinematika (forward/inverse), morfe pro výrazy a simulace pro tkaniny, vlasy a měkká tělesa.
Typografie, SDF a 2D rozhraní
Text v 2D i 3D se renderuje pomocí Signed Distance Fields, které umožňují ostré hrany v různých měřítcích. Hinting, kerning a baseline grid zajišťují čitelnost. Vektorová písma (OTF/TTF) se rasterizují adaptivně dle DPI a transformací.
HDR, tonemapping a barevné pipeline
HDR render targety (float16) umožňují akumulaci vysokých jasů, které se následně mapují do displejového rozsahu pomocí tonemapperů (Reinhard, Hable, ACES). Důležité je zachovat lineární workflow: výpočty v lineárním prostoru, konverze do cílového OETF (např. sRGB) až na výstupu.
Formáty souborů a komprese
2D: PNG (bezztrátový s alfa kanálem), JPEG/JPEG XL (ztrátový, fotografie), WebP/AVIF (moderní komprese, alfa kanál). 3D: OBJ (jednoduchý, bez hierarchie), FBX (animace), glTF 2.0 (moderní přenos materiálů PBR, komprese geometrie Draco, textury KTX2/BasisU). Textury pro real-time často využívají block komprese GPU (BC/DXT, ASTC, ETC).
Výkon, škálování a optimalizace
Pro real-time rendering je klíčové omezit počet draw calls (instancing, batching), používat level of detail (geometrie a shader LOD), efektivní culling (frustum, occlusion, clustered/tiled lighting) a minimalizovat přepínání stavů GPU. Na straně CPU pomáhá datově orientovaný design (SoA), cache-friendly struktury a multithreading (job systémy).
Procedurální generování a node-based workflow
Procedurální techniky (šum Perlin/Simplex, Worley, fraktály, L-systémy) generují textury i geometrii. Node-based editory (materiály, geometrie) podporují nedestruktivní tvorbu a varianty. Signed Distance Functions se používají pro ray-marching a konstrukční geometrii (CSG).
2D pipeline: filtry, konvoluce a efekty
Obrazové filtry se implementují jako konvoluce s jádry (gauss, sharpen, edge-detect). Adaptivní metody (bilaterální filtr) zachovávají hrany. V reálném čase se efekty realizují jako post-processing pasy na full-screen quadu: bloom, DOF, vignette, chromatic aberration, film grain.
Fyzikální korektnost vs. umělecké záměry
Striktně fyzikální modely poskytují konzistenci, avšak ne vždy esteticky vyhovující výsledek. Umělecké směrování často využívá stylizaci (toon shading, non-photorealistic rendering), manipulaci s křivkami tónů, barevnými LUTy a řízené porušování fyzikálních zákonů v bezpečných mezích.
Webová grafika: Canvas, WebGL a WebGPU
Na webu se 2D rasterizace provádí přes Canvas 2D, náročnější 2D/3D scény využívají WebGL (OpenGL ES) a nově WebGPU (moderní API blízké Vulkanu, Metalu a D3D12). Správná správa zařízení, resize, DPI a barevného prostoru je nezbytná pro konzistentní výstup napříč různými prohlížeči.
Tisk vs. obrazovka: rozlišení, DPI a rasterizace
Displeje pracují s PPI (pixely na palec) a aditivním RGB, tiskárny s DPI (body na palec) a subtraktivním CMYK. Pro tisk je nutná vyšší hustota vzorků a korektní převod barev (rendering intent). Vektorové podklady minimalizují artefakty škálování; fotografie vyžadují správné ostření a resampling.
Přístupnost a čitelnost v grafice
Kontrastní poměry, minimální velikosti písma, barvoslepé palety a jasné hierarchie jsou klíčové v uživatelských rozhraních, infografice i vizualizacích dat. V reálném čase je důležitá stabilita obrazu (minimální blikání, stabilní temporální filtry) a čitelnost v různých světelných podmínkách.
Úzká hrdla a diagnostika
Profilování odhaluje, zda je limitujícím faktorem CPU (příprava draw calls, logika) nebo GPU (fill-rate, paměťová propustnost, ALU). Nástroje typu frame capture (RenderDoc, NSight), GPU časovače a heatmapy overdraw pomáhají cílit optimalizace. U 2D grafiky pomáhá analýza vrstev a pořadí kompozice.
Etapy tvorby grafického aktiva
Workflow typického 3D aktiva: blokování tvaru, high-poly sculpt, retopologie, UV unwrap, bake map (normal/ambient occlusion/curvature), PBR texturování, LOD generace a export do engine/glTF. U 2D: moodboard, skica, vektorová konstrukce, koloristika, export v cílových rozlišeních a formátech.
Trendy: neurální rendering a diferenciální rasterizace
Neurální metody (super-resolution, denoising, upscalery) a neural radiance fields (NeRF) umožňují rekonstruovat scénu z fotografií. Diferencovatelné renderování propojuje grafiku s učením; umožňuje gradientní optimalizaci tvaru a materiálů. V praxi roste adopce hybridního RT, temporálních upscalerů a robustních PBR pipeline.