Definice a rozsah počítačové grafiky
Počítačová grafika (CG) je obor informatiky a inženýrství zaměřený na tvorbu, zpracování, ukládání a zobrazování obrazových dat s využitím výpočetní techniky. Zahrnuje 2D/3D reprezentace scén, rendering (vykreslování), interaktivní vizualizaci, zpracování obrazu, rozhraní člověk–počítač, multimédia i vědeckou vizualizaci. Praktické aplikace zasahují do herního průmyslu, filmu, CAD/CAM, GIS, zdravotnictví, webu, mobilních aplikací, simulací, AR/VR a datové žurnalistiky.
Rastrová vs. vektorová grafika
- Rastrová grafika: obraz tvoří mřížka pixelů s barvou a někdy i alfou. Typicky jde o fotografie, malby, textury a záznamy obrazovky. Klíčové parametry: rozlišení (px), barevná hloubka (bpp), DPI/PPI, komprese a barevný prostor.
- Vektorová grafika: obraz je definován geometrií (body, křivky, plochy) a atributy (barvy, tahy, přechody). Je ideální pro loga, ikonografii, typografii a výkresy CAD. Lze ji škálovat bez ztráty kvality.
- Hybridní přístup: moderní pipeline kombinuje vektory (UI, SVG) s rastrovou grafikou (textury, fotografie); ve 3D je geometrie vektorová a výsledný framebuffer rastrový.
Barevné modely a správa barev
- Modely: RGB (emisivní displeje), CMYK (tisk), HSL/HSV (uživatelská editace), Lab/LCH (percepční shody), YCbCr/YPbPr (video), XYZ (referenční).
- Barevné prostory: sRGB (webový standard), Display P3 (širší gamut), Adobe RGB (tisk), Rec.709/Rec.2020 (video), ACES (film).
- Správa barev (CMS): ICC profily zařízení, kalibrace a profilování monitorů, 10/12bitový pracovní postup, LUT tabulky, převody podle metody záměru reprodukce (percepční, relativní kolorimetrický).
- HDR a mapování tónů: křivky PQ/HLG, rozlišení mezi scénou a zobrazením, lokální mapování tónů a dithering pro potlačení pruhování.
Formáty souborů a komprese
- Bezeztrátové: PNG (DEFLATE, alfa), WebP-Lossless, AVIF-Lossless, TIFF (IFD, vrstvy), BMP (historický formát), SVG (vektor + CSS, skripty).
- Ztrátové: JPEG (DCT), JPEG XL (moderní formát, bezeztrátový i ztrátový režim), WebP/AVIF (blokové transformace, vysoká účinnost), HEIF/HEIC (intra snímky HEVC).
- 3D a assety: glTF/GLB (web/RT), FBX (výměna mezi DCC nástroji), USD/USDZ (scény, varianty), OBJ (mesh), EXR (HDR, více kanálů), DDS/KTX (komprimované textury).
- Komprese textur: BC/ASTC/ETC – blokové formáty pro GPU, pevná propustnost a nižší nároky na VRAM; volba závisí na cílové platformě.
3D reprezentace a geometrie
- Polygony a meshe: vrcholy, normály, UV souřadnice, tangenty/bitangenty, topologie (manifold, non-manifold), hierarchie LOD.
- NURBS a křivky: přesné modely pro CAD/CAM, následná teselace do trojúhelníků pro rendering.
- Implicitní plochy a SDF: pole vzdáleností pro rendering (ray marching), booleovské operace, kompaktní reprezentace tvarů.
- Voxely: objemová data, lékařské snímky (DICOM), destrukce v otevřeném světě, hašované mřížky.
Grafická pipeline a architektura GPU
- Od pevně dané k programovatelné pipeline: vertex → tessellation → geometry → rasterizer → fragment → výstup. Moderní API umožňují používat výpočetní shadery, mesh/amp shadery a sady shaderů pro ray tracing.
- Paměťová hierarchie: VRAM (GDDR/HBM), cache L2, LDS/sdílená paměť, registry; minimalizace přenosů CPU↔GPU a optimalizace přístupu k paměti (coalescing, tiling).
- Paralelismus: tisíce vláken, SIMT/SIMD, warpy/wavefronty; důraz na vytížení (occupancy), skrývání latence a minimalizaci divergence.
API a ekosystém: OpenGL, Direct3D, Vulkan, Metal, WebGPU
- OpenGL: tradiční API s okamžitým i uchovávaným režimem, široká kompatibilita; vhodné pro výukové projekty a starší systémy.
- Direct3D 11/12: Windows/Xbox; D3D12 nabízí nízkoúrovňovou správu front, hald deskriptorů a explicitní synchronizaci.
- Vulkan: multiplatformní, nízkoúrovňové API s explicitní správou zdrojů, vhodné pro optimalizace na úrovni enginu a vícevláknové zaznamenávání příkazů.
- Metal: ekosystém Apple, předvídatelné ovladače, vykreslování založené na dlaždicích.
- WebGPU/WebGL: grafika v prohlížeči, sandbox, bezpečnost a přenositelnost; WebGPU přináší moderní model shaderů (WGSL) a výpočetní shadery.
Programování shaderů
- Typy shaderů: vertex (transformace), tessellation (detail), geometry (generování primitiv), fragment/pixel (barvení), compute (obecné výpočty), mesh/task (novější pipeline), RT shadery (raygen/closest-hit/any-hit/miss).
- Jazyky: GLSL, HLSL, MSL, WGSL; offline meziformáty (SPIR-V, DXIL) a optimalizace při kompilaci shaderů.
- Materiálové systémy: uzlové grafy (node-based), parametry PBR (albedo, metalness, roughness, normal, AO, emission), clearcoat, subsurface, anizotropie.
Rastrování vs. ray tracing
- Rastrování: promítání trojúhelníků do obrazové roviny, Z-buffer, vysoká rychlost pro real-time vykreslování. Stínování pomocí shadow maps, SSR a efektů v prostoru obrazovky.
- Ray tracing: sledování paprsků, akcelerační struktury BVH/SAH, globální iluminace, přesné odrazy a lom; v real-time se často kombinuje s rasterizací (RT stíny/odrazy + rasterizační Z-pass).
- Odšumování a rekonstrukce: prostorově-časové filtry (TAA), odšumovací algoritmy typu NRD/Optix, reprojekce a zvýšení rozlišení (DLSS/FSR/XeSS) pro dosažení vysoké kvality při nižším počtu vzorků.
Osvětlení a fyzikálně založené renderování (PBR)
- Modely BRDF/BTDF: Lambert, Oren–Nayar, Cook–Torrance (GGX), Fresnel (Schlick), mikrofazety, NDF a geometrická funkce (Smith).
- IBL a světelné sondy: předpočítané mapy prostředí (cubemap), předfiltrování pro různé drsnosti, irradiance SH.
- Stíny: PCF/PCSS, cascaded shadow maps, VSM/EVSM, moment shadow maps.
Vzorkování, aliasing a filtrování
- Nyquistův limit: nedostatečné vzorkování → aliasing; řešení: supersampling, multisampling (MSAA), TAA, analytické filtry (Mitchell, Lanczos).
- Texturování: mipmapping, anizotropní filtrování, normal/parallax/relief mapping, úprava UV švů a hustoty texelů.
- Rekonstrukce: časová akumulace, jitter kamery, vektory pohybu, adaptivní vzorkování.
Zpracování obrazu (image processing) a počítačové vidění
- Operace v prostorové a frekvenční oblasti: konvoluce, Gauss/DoG, Sobel/Canny, FFT, dekonvoluce a odstraňování rozmazání.
- HDR pipeline: expozice, vyvážení bílé, bloom, úprava barev, filmové křivky, dithering a zrno.
- Segmentace a detekce: prahování, morfologie, Houghova transformace; v éře ML modely U-Net/Mask R-CNN pro sémantické vrstvy a kompozici AR.
UI/UX a typografie v počítačové grafice
- Rastrování písma: hinting, subpixelové vykreslování (RGB stripe), písma SDF pro škálovatelné UI, kerning a ligatury.
- Kontrast a přístupnost: kontrastní poměry WCAG, palety vhodné pro osoby s poruchami barvocitu (deuteranopie/protanopie), velikost a čitelnost při různých DPI.
- Vektorová grafika na webu: SVG s animacemi CSS, interaktivita prostřednictvím DOM a rolí ARIA.
Webové technologie: Canvas, WebGL a WebGPU
- Canvas 2D: okamžité vykreslování grafů, her a nástrojů pro editory; důraz na dávkové zpracování a omezení překreslování.
- WebGL: hardwarová akcelerace grafiky na webu, shadery v GLSL ES; pozor na bezpečnost (zásady původu, zdrojové mapy textur).
- WebGPU: moderní backend s explicitní správou a výpočetními shadery; vhodný pro vizualizaci rozsáhlých dat a inferenci ML modelů.
AR/VR a prostorová zobrazení
- Stereoskopické vykreslování: dvě projekce, reprojekce a deformace obrazu pro nízkou latenci, foveované vykreslování se sledováním pohybu očí.
- Tracking a SLAM: kombinace IMU a kamer, chyba reprojekce, mapování prostředí, masky okluze.
- Specifika UX: komfort (IPD, snímková frekvence >= 90 Hz), kinetóza, interakční metafory (uchopování, raycast).
ML v počítačové grafice
- Neurální rendering: NeRF, 3DGS (gaussian splatting), SDF-ML; akcelerace pipeline RT a rekonstrukce scén z fotografií.
- Super-resolution a zvýšení rozlišení: časové upscalery v real-time renderingu, SR pro videosignál (VSR), percepční metriky (LPIPS, VMAF).
- Generativní obsah: text-to-image, inpainting, přenos stylu; správa, licencování a vodoznačení.
Optimalizace výkonu a kvality
- Profilování CPU/GPU: zachytávání snímků, měření času GPU, bubliny pipeline, analýza limitujících faktorů (CPU-bound, GPU-bound, bandwidth-bound).
- Dávkové zpracování a culling: instancing, nepřímé vykreslování, ořezávání podle frusta/okluze, meshlety/balíčkování.
- Paměť: překrývání alokací, trvalé mapování bufferů, komprimované textury, streamování assetů.
- Škálování kvality: dynamické rozlišení, FSR/DLSS, varianty shaderů (kvalita podle úrovně zařízení).
Produkční workflow, DCC a pipeline assetů
- Nástroje DCC: Blender/Maya/3ds Max, Substance (Painter/Designer), Houdini (procedurální tvorba), ZBrush (digitální sochařství), Marvelous Designer (oděvy).
- Pipeline: správa verzí (Perforce/Git LFS), pojmenování, jednotky měření, generování LOD, bake map (normal, AO, curvature), validace UV.
- Formáty scén: USD pro sdílení mezi odděleními, varianty a vrstvení; glTF pro distribuci na web a do RT enginů.
- QA a revize: vizuální testy, automatické porovnávání snímků (PSNR/SSIM), percepční schvalování.
Tisk, publikování a zařízení
- Příprava pro tisk: separace CMYK, přetisky (overprint), trapping, workflow RIP, správa rastru (AM/FM), měření denzitometrem.
- Displeje: gamut (sRGB/P3), 10bitové deep color, rovnoměrnost podsvícení, špičkový jas HDR; kalibrace sondou a ověření metrikou ΔE.
- Mobilní zařízení: různé DPI, výřezy a zaoblené rohy, energetická účinnost (OLED vs. LCD), adaptivní obnovovací frekvence.
Bezpečnost, licence a etika
- Licencování assetů: autorská práva, souhlas modelu s použitím podoby, textura z fotobanky vs. vlastní sken; knihovny open source a jejich licence.
- Integrita a vodoznačení: kryptografické značky, steganografie, metadata (XMP), původ obsahu v produkčních řetězcích.
- Etika obrazů generovaných pomocí ML: zkreslení, deepfakes, transparentnost generativních pipeline, souhlas subjektů a u datových sad.
Typické chyby a jak se jim vyhnout
- Nesprávná správa barev mezi aplikacemi (nekompatibilní profily, dvojité převody).
- Nesprávné škálování a převzorkování (nearest-neighbor pro fotografie, chybějící vhodný filtr a vyhlazování hran).
- Příliš velké assety (nekomprimované textury, chybějící mipmapy, zbytečně vysoké rozlišení).
- Nekonzistentní jednotky a měřítka v DCC → nesprávné osvětlení/fyzika v enginu.
- Neoptimalizovaná geometrie (zbytečné vrcholy, neuzavřené bake map normál, špatná topologie).
Kontrolní seznam pro projekty
- Definovaný barevný prostor a 10/12bitový pracovní postup tam, kde je to potřeba.
- Konzistentní pipeline assetů (názvosloví, LOD, UV, hustota texelů, komprese textur).
- Volba API a cílových platforem (Vulkan/D3D/Metal/WebGPU) + profilování od prvního prototypu.
- Materiály PBR s kalibrovanými texturami a správnými jednotkami.
- Hybridní rendering (RT tam, kde přináší hodnotu) + robustní odšumování a TAA.
- Automatizované testy kvality (vizuální rozdíly, metriky) a CI export sloučených assetů.
- Správa licencí a původu grafických podkladů.
Závěr
Počítačová grafika je průsečíkem matematiky, fyziky, softwarového inženýrství a designu. Úspěch v praxi závisí na dobře navržené pipeline, důsledné správě barev, volbě vhodných algoritmů a rozumných kompromisů mezi kvalitou a výkonem. V době širokého rozšíření HDR, ray tracingu a technik akcelerovaných pomocí ML roste význam standardizovaných formátů (USD, glTF), moderních API (Vulkan, WebGPU) a měřitelných procesů – od assetů až po poslední pixel na displeji.
