Moravian instruments
Vyhledávání
Hlavní menu
Hlavní stránka
O společnosti
Stažení software
Stažení dokumentů
Obchodní partneři
Produkty
Programový systém Control Web
Strojové vidění VisionLab
Kamery DataCam a  osvětlovače DataLight
Průmyslový počítačový systém DataLab
Vědecké kamery
Speciální technika
Ceník
Aktivace produktů
Služby
Školení
Zakázková řešení
Podpora
Control Web - Ukázkové aplikace


Hlavní stránkaPodporaRady pro tvorbu aplikací

Rady pro tvorbu aplikací - příliš mnoho vykreslovacích kontextů
 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

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

Volba typu vykreslovače panelu

Toto nastavení má pro aplikaci několik přínosů:

  • Vznikne jediný vykreslovací kontext přes celou plochu panelu.

  • Mnohé objekty v operační i grafické paměti existují pouze v jedné instanci a jsou uvnitř kontextu sdíleny.

  • Virtuální přístroje nemusí vykreslovat své pozadí, mohou být průhledné a mohou se libovolně překrývat.

  • Také při vykreslování konvenčních 2D virtuálních přístrojů se v maximální míře používána akcelerace pomocí GPU. Vykreslování je rychlé a efektivní.

  • Pro kvalitu kresby mají velký význam shadery pro barevné přechody, antialiasing, rasterizace fontů atd.

  • Celý panel lze jednoduše zoomovat při zachování nejvyšší kvality grafiky včetně ostrosti fontů.

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

 
 | O společnosti | Produkty | Podpora | Stažení software | Stažení dokumentů | 
Moravské přístroje, a.s., Masarykova 1148, Zlín-Malenovice, 76302