Počítačová grafika: vykreslování, modelování a vizualizace

Počítačová grafika: Rendering, modelování a vizualizace

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.