Moravské přístroje, a. s., zdroj: https://www.mii.cz/art?id=1021&lang=405, vytištěno: 30.04.2025 11:16:35
Hlavní stránka▹Podpora▹Rady pro tvorbu aplikací | 22.10.2019 |
---|
3D virtuální přístroje poskytují kvalitu obrazu a působivé grafické efekty, které nejsou jiným způsobem vykreslování dosažitelné. V prostředí systému Control Web lze navíc libovolný prostorový virtuální přístroj vložit přímo do panelu, který je vykreslován pomocí GDI vykreslovače. Takové použití 3D přístrojů se přímo nabízí - stačí patřičný přístroj vytáhnout z palety. Vše funguje a vypadá hezky, ale i zde lze zcela bezpracně hodně ušetřit a udělat svou aplikaci efektivnější. |
Aby mohl 3D virtuální přistroj existovat v GDI panelu nebo přímo na pozadí Windows, musí si pro sebe vytvořit tzv. vykreslovací kontext. Tento kontext je svou spotřebou systémových zdrojů prakticky ekvivalentní kontextu 3D scény nebo panelu s OpenGL vykreslovačem. V rámci každého vytvořeného kontextu musí v grafické paměti vzniknout minimálně přední a zadní fragmentový buffer (je používán doublebuffering), hloubkový buffer a stencil buffer. Vždy se také musí přeložit a slinkovat několik základních shaderů v jazyce GLSL. Další objekty pak vznikají podle potřeb vznikajících při vykreslovaní. Také v paměti CPU musí být vytvořena řada objektů, které se starají např. o kameru, osvětlení, barvy a materiály atd. Pro dnes běžné velikosti grafické i operační paměti počítačů to příliš velkou zátěž nepředstavuje. Systém celkem bez potíží snese i mnoho set takovýchto kontextů. Standardní 2D panely s vloženými 3D virtuálními přístroji, vlevo s OpenGL vykreslovačem, vpravo s vykreslovačem GDI Tisíce kontextů ale již představují hodně vysoké nároky na grafickou paměť, na vytváření instanci shaderů při startu aplikace a také na správu požadavků na vykreslování a synchronizaci programových vláken v architektuře klient-server. Každý kontext má totiž vlastní frontu požadavků. Maličkou změnou můžeme dosáhnout významné úspory systémových zdrojů a efektivnějšího běhu aplikačního programu. Stačí panelu, ve kterém jsou 3D virtuální přístroje vloženy, nastavit používání OpenGL vykreslovače. Volba typu vykreslovače panelu Toto nastavení má pro aplikaci několik přínosů:
Zobrazení 3D virtuálních přístrojů se v panelu s jedním společným vykreslovacím kontextem může mírně lišit. Je to dáno tím, že všechny objekty jsou osvětleny jedním společným zdrojem světla, který je obvykle někde vpředu vlevo nahoře. I 3D přístroj v GDI panelu vypadá docela dobře, do svého pozadí automaticky přebírá barvu pozadí panelu, jen se nedokáže vykreslovat s průhledným pozadím. RC |