Aplikace obvykle vytváříme na dobře vybaveném počítači,
který má nejen dostatek RAM, ale i nějaký grafický akcelerátor s
vyhrazenou grafickou pamětí. Pak není problém vytvořit aplikaci,
která spotřebuje např. 2GB grafické paměti. Všechno běží svižně a
plynule, problém nastane až tehdy, když tuto aplikaci nasadíme do
provozu např. na malém jednodeskovém počítači s malou pamětí a se
sdílenou grafikou.
Spotřebu grafické paměti lze velmi ovlivnit strukturou
aplikace, převážně omezením počtu vytvářených grafických kontextů.
Vkládáme-li do panelu s GDI vykreslovačem 3D virtuální přístroje,
pro každý z nich je vytvořen samostatný vykreslovací kontext. Každý
OpenGL kontext má pak vlastní front buffer, back buffer, Z buffer,
stencil buffer, sadu přeložených shaderů, texturové objekty, vetrex
buffer objekty, správce fontů atd. atp. Máme-li dostatek grafické
paměti, není problém, jinak s kontexty musíme šetřit.
Smyslem používání OpenGL je nejen hezká grafika, ale
především využití schopností a výkonu grafického procesoru.
Akcelerovat grafiku bez grafického procesoru nelze.
Je-li aplikace určena pro počítač, ke kterému se bude
přistupovat pouze přes vzdálenou pracovní plochu, pak je nutno mít
na mysli, že veškeré grafika bude pouze softwarově emulována
prostřednictvím CPU. Navíc otevřený RDP server představuje značné
bezpečnostní riziko. Výrazně bezpečnější je přístup přes šifrovaný
protokol HTTPS a navíc zde nejsou omezeny ani možnosti
grafiky.
Bude-li aplikace provozována na virtuálním počítači, nebude k
dispozici grafický procesor.
Nebude-li ke vzdálenému počítači připojen monitor, bude
nastaveno minimální rozlišení grafické karty. V tomto případě
postačí připojit malý a levný emulátor monitoru do HDMI
konektoru.
Vypadá to hezky, ale je tam 45 vykreslovacích kontextů na
kousku GDI panelu
Použijeme-li počítač vybavený grafickým akcelerátorem,
získáváme mnoho zajímavých možností.
Velká část grafiky běží zcela paralelně v grafickém procesoru
a oddělené grafické paměti a nezatěžuje CPU počítače.
V aplikacích s kamerami a strojovým viděním můžeme pracovat s
algoritmy a funkcemi, které jsou prostřednictvím CPU
nerealizovatelné.
Můžeme využívat prostorovou 3D scénu a spoustu grafických
efektů.
Máme k dispozici i virtuální a rozšířenou realitu.
I v případě, že cílový počítač má pouze sdílenou grafiku,
je zde řada možností, které je možno využít:
Především se ujistěte, že s na cílové grafice s daným
grafickým ovladačem vše vůbec běží.
I při sdílené grafice je mnoho grafických příkazů řešeno
akcelerovaně integrovaným grafickým procesorem.
Zjistěte, kolik grafické paměti aplikace pro svůj běh
potřebuje a ujistěte se, že je na cílovém počítači k
dispozici.
V aplikaci raději nepoužívejte velké množství samostatných
grafických kontextů.
V případě, že akcelerovaná grafika a OpenGL není na cílovém
počítači funkční, používejte v aplikaci pouze softwarově
vykreslované panely GDI, GDIplus a Direct2D.
RC
|