O společnostiProduktyObchodPodpora
Moravské přístroje
Hlavní stránka
O společnosti
Stažení software
Stažení dokumentů
Produkty
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
Volba kamery a objektivu pro Strojové vidění
Control Web - Ukázkové aplikace

Hlavní stránkaProduktyProgramový systém Control WebČlánky

Moderní technologie počítačové vizualizace
 Nemíváte také někdy pocit, že průmyslová automatizace je tak trochu "nudným oborem"? Je to asi tím, že se jí lidé zabývají převážně proto, že se jí pod tlakem okolností zabývat musejí. Je to jejich práce, jsou to jejich pracovní povinnosti.

Technologie používané v průmyslové automatizaci jsou proto hodně tradiční, ověřené lety a časti i desetiletími praktických nasazení. Investují-li lidé do svých koníčků, chtějí vždy to nejlepší, aktivně se zajímají o nejmodernější technologie a velmi pečlivě při každém nákupu zvažují poměr cena-výkon. V zaměstnání však většinou pracují s přidělenými nástroji a motivace k používání nejvýkonnějších prostředků zde není obvykle tak přímočará. Naštěstí ale ani v tomto oboru není vše jen černé nebo jen bílé. I zde existuje dost aktivních a tvůrčích lidí, kteří stále hledají cestu vpřed.

Ještě relativně nedávno se pro vizualizaci průmyslových procesů běžně používalo programové vybavení pracující v textovém módu grafických adaptérů. Pomocí semigrafických znaků tyto programy svižně zobrazovaly sloupcové indikátory, potrubí a otevřené či uzavřené ventily. A to bylo v době, kdy jsme již mnoho let psali dopisy a e-maily v grafickém prostředí Windows. Kde je však v dnešní době semigrafika. Její používání mohla opodstatnit jen technická nedostatečnost počítačů a existence textových terminálů. A ti, kteří tvrdili, že pro průmyslovou automatizaci to bude navždy stačit, neboť semigrafika je naprosto dostačující, naštěstí neměli pravdu (dobře si tehdejší "plodné" diskuse dodnes pamatuji). Standardem dnešní doby je při vizualizaci technologických procesů využívání dvourozměrné vektorové grafiky. A opět je jisté, že to tak navždy nevydrží.

2D vektorová a bitmapová grafika

V dalším textu se budeme věnovat grafických technologiím přístupným v prostředí Microsoft Windows. O zobrazování dvourozměrné grafiky a textu se stará systém GDI (Graphics Device Interface). Je to jeden ze tří hlavních a nejstarších částí operačních systémů Windows. Moduly KERNEL, USER a GDI jsou základem Windows již od verze 1.0, dvourozměrná grafika je tedy již "odjakživa" pevnou součástí služeb jádra operačního systému.

Systém GDI se s novými generacemi operačních systémů stále zdokonaluje a rozšiřuje, stále však tento grafický jazyk udržuje kontinuitu s původní, dnes již velmi letitou, koncepcí. Současné požadavky na 2D vizualizace samozřejmě předpokládají podporu animací, průhledností, gradientních výplní a obrazových transformací. Proto bývá ve vizualizačních programech obvykle nad GDI vystavěn složitější a mocnější vykreslovací systém. Dnes je i samotný systém Windows vybaven dalšími technologiemi pro vytváření obrazu. Je zde systém GDI+, jehož API je přímo tvořeno hierarchií C++ tříd a především velmi mocný systém Direct3D. GDI+ přináší mnoho nových možností ve 2D vektorové grafice (např. gradientní štětce, maticové transformace souřadného systému i barevného prostoru, alpha blending atd.), při manipulaci s bitmapami i v typografii. Těžko odhadovat budoucí podporu tohoto rozhraní, může se jednat o slepou vývojovou větev. Naproti tomu Direct3D je postaven na standardech rozhraní COM. Tento 3D vykreslovací systém lze (stejně jako OpenGL) velmi dobře využít i pro vektorovou 2D grafiku.

Jak jsme již uvedli, GDI služby jsou součástí jádra operačního systému (i když je docela těžké vysledovat, co vše je řešeno na straně klienta a co uvnitř jádra). Řada volání těchto služeb z aplikace do jádra systému představuje určitou režii spojenou s přepnutím kontextu. Tato režie je často delší, než vlastní realizace grafického primitiva grafickým akcelerátorem. Sebelepší grafická karta pak již není schopna přispět k lepšímu výkonu grafiky. Tyto potíže pomáhá řešit akumulace funkčních volání a jejich následné hromadné předání systému při dokončení kresby. Takto je 2D grafika řešena i ve vektorovém vykreslovacím systému v prostředí Control Web.

Obr.1: Vlastní kresby lze v prostředí Control Web ukládat do knihoven pro další použití

Dalším problémem bývá rušivé blikání obrazu během překreslování. Je způsobeno tím, že vykreslovací systém obvykle přímo modifikuje paměťový rámec v grafické kartě, který je využíván pro generování obrazového signálu pro monitor. Systém Control Web se s tímto vypořádává zcela principiálně a shodně pro veškerou 2D grafiku v aplikaci obsaženou. Každému panelu lze nastavením parametru mode = off_screen zajistit vykreslování do neviditelné paměti a přenesení výsledku do viditelného rámce najednou následně po dokončení kresby. Tato operace je vždy podporována v hardware grafické karty a je velmi rychlá. Výsledkem je čistý obraz bez rušivého blikání.

Obr.2: Ukázka 2D vektorového obrázku v prostředí systému Control Web

Je-li takto přenášen vždy výsledný hotový obraz, je již lhostejno, jakou technologií byl vytvořen (nezáleží ani na tom, jde-li o 2D nebo 3D grafiku). Moderní vykreslovací systémy pro generování obrazu využívají vektorový procesor pracující s plovoucí řádovou čárkou a rasterizer pro tvorbu výsledného bitmapového obrazu. Takto pracují např. vykreslovací systémy Macromegia Flash nebo Adobe PDF a Adobe SVG Viewer (Scalable Vector Graphics - W3C XML standard pro přenositelnou grafiku).

Trochu podobným směrem kráčí budoucí generace Windows známá pod jménem Longhorn. Nové grafické rozhraní Avalon – XAML (eXtensible Application Markup Language) umožní deklarativní popis grafického uživatelského rozhraní. I když pro vytváření obrazu používáme některou z moderních technologií, bez spolupráce s GDI se alespoň při manipulaci s kontextem zařízení a poté při umísťování výsledného obrazu do patřičného okna stejně neobejdeme. Systém GDI nás bude provázet ještě velmi dlouho a jistě bude součástí připravovaného OS Windows Longhorn. Nás ale nyní nejvíce zajímá, co můžeme ku prospěchu našich aplikací využívat již nyní. Pojďme tedy k tomu nejzajímavějšímu - k interaktivní3D grafice.

3D grafika

Co pro nás dělá 3D vykreslovací systémy tak zajímavými? Pomineme-li nedostižně vizuálně působivé obrazy, pak jsou to rozhodně schopnosti současných grafických akcelerátorů. 3D akcelerátor máme v každém současném počítači a nevyužívat jej je velká škoda. Jako bychom např. trvali pouze na černobílém zobrazení v době, kdy jsou již dávno všechny monitory barevné. Princip tvorby obrazu je podobný, jako jsem již popisovali v předchozí kapitole. Základem výkonu akcelerátorů je zřetězení a paralelizace. Např. současný akcelerátor GeForce 6800 s více než 220 miliony tranzistorů má ve svém hardware 6 paralelních vektorových procesorů 16 paralelních pixelových procesorů (při zápisu do z-bufferu a stencil bufferu dokonce 32 paralelních pixelových kanálů - a to je pro Control Web a moderní vykreslovače vůbec velmi přínosné). Výsledkem jsou datové propustnosti v řádech desítek gigabyte za sekundu a schopnosti vykreslit stovky milionů stínovaných trojúhelníků za sekundu. No uznejte sami - můžeme si tyto možnosti dovolit nechat ležet ladem?

Obr3: Zřetězený proces tvorby obrazu systémem OpenGL

Poznámka:

Datové propustnosti současných grafických karet se nám mohou na první pohled zdát až zbytečně předimenzované. Vždyť i již nikoliv nejmodernější GF5900 FX zvládne datový tok přes 27 GB/s. Pokusme se však odhadnout přibližné nároky při vykreslování scény s rozlišením 1280x1024 pixelů s frekvencí 60 snímků/s. Uvažujeme-li z-buffer a barevný buffer s 32 bity na pixel a 24-bitové RGB textury, pak při přepisu pixelu (tj. čtení i zápis do z-bufferu) s mícháním bareg (blending - tj. čtení i zápis do bufferu barev) a dvěma trilineárně filtrovanými texturami, pak dostaneme 64 byte na jeden pixel (a to neuvažujeme docela častý vícenásobný přepis pixelu). Při těchto předpokladech dostaneme datový tok více než 5 GB/s. Takto vytvořený obraz by jistě nevypadal příliš realisticky, většinou musíme dále počítat s rezervami pro víceprůchodové vykreslování, zápisy a čtení stencil bufferu atd. Ve skutečností budeme potřebovat datové toky několikanásobně vyšší. Navíc je zde ještě značná zátěž způsobená tokem vektorových dat (150 milionů trojúhelníků za sekundu spotřebuje asi 3.3 GB/s). Je tedy zřejmé, že skvělé vlastnosti současných grafických akcelerátorů "zužitkujeme" zcela bez problémů.

Obr.4: Obraz se zrcadlením, odlesky a prostorovými stíny vykreslený systémem Control Web s využitím víceprůchodových vykreslovacích technik

Krátké ohlédnutí do historie

Oblast 3D počítačové grafiky prochází v současné době prudkým technickým rozvojem. Hnacím motorem tohoto pokroku jsou bezesporu počítačové hry. Díky velikosti trhu s hrami se vyvíjejí stále výkonnější 3D akcelerátory. Výkony v oblasti stovek milionů trojúhelníků za sekundu a datové toky v řádu desítek gigapixelů za sekundu již patří k běžným parametrům.

Milníkem ve vývoji počítačové 3D grafiky byl rok 1992, kdy firma Silicon Graphics (SGI) uvedla svůj Reality Engine. Tento grafický akcelerátor obsahoval 8 grafických procesorů s hardwarovou podporou transformací, osvětlení a rasterizace včetně mapování textur. Stál asi milion dolarů a byl velký jako domácí lednička. Dnes i levné grafické karty za méně než 50 dolarů výkon tohoto ve své době revolučního zařízení výrazně překonávají. Za 10 let tak klesla cena srovnatelného grafického adaptéru asi 20000 krát!

Éru levných grafických 3D akcelerátorů pro PC zahájila firma 3Dfx svou kartou Voodoo 1 v roce 1996. Tento úspěšný adaptér nenechal nikoho na pochybách o užitečnosti hardwarové podpory 3D grafiky. Dnes je již 3D grafický akcelerátor tak samozřejmou součástí každého domácího PC jako je např. myš nebo pár reproduktorů. A blízká budoucnost - hardwarová podpora 3D grafiky již nezadržitelně míří i do oblasti počítačů do dlaně a mobilních telefonů.

Jak jsme se již zmiňovali, s trochou pragmatismu můžeme z uživatelského hlediska říci, že nám nezáleží na principech a způsobech tvorby obrazu. Zajímá nás jen to, aby byl obraz hezký a byl vytvořen velmi rychle. Zde se budeme držet zásady, že co nelze vykreslit v reálném čase, je lépe nekreslit vůbec. A nechceme-li se specifickou problematikou 3D grafiky hlouběji zabývat, nemusíme. Při tvorbě aplikace v prostředí systému Control Web se často ani nemusíme zatěžovat budováním opravdu prostorové scény, stačí využít část potenciálu 3D vykreslovacího systému v běžné 2D vizualizaci.

Obr.5: Vizualizace průmyslové technologie, vykreslené jedním průchodem bez využití dalších grafických efektů

I tehdy nám 3D vykreslovací systém v prostředí Control Web přinese navíc mnohý užitek:

  • využijeme mohutného vykreslovacího výkonu 3D akcelerátoru - část grafické zátěže se přenese do paralelně běžící GPU grafické karty

  • aplikace získá perfektní vzhled osvětleného a plastického vygenerovaného obrazu

  • aplikační program běží plynuleji a přesněji v reálném čase - vykreslovací server běží ve vlastním vláknu a jeho klienti běžící v reálném čase se grafikou vůbec nezabývají

Obr.6: Při jednoprůchodovém vykreslování maximálně využijeme "hrubý" výkon grafické karty a nejvíce šetříme výkonem CPU

Budeme-li někdy chtít využít z této grafické technologie více, máme k dispozici:

  • editaci 3D prostorové scény "na místě" přímo v ploše integrovaného vývojového prostředí

  • volný pohyb kamery ve scéně včetně interpolací pozice i úhlů, a to při editaci i za běhu aplikace

  • řadu předpřipravených 3D objektů pro rychlé a bezstarostné sestavení vizualizace

  • stromový systém transformací a animací objektů a možnost plné programové kontroly scény

  • částicový systém pro realistické a dynamické zobrazování prostorových efektů s předem připravenými objekty (oheň, kouř, jistry atd.)

  • editovatelné materiály s možností průhlednosti, texturování atd.

  • import 3D modelů (*.obj, *.3ds) z různých 3D modelovacích programů

  • vizualizace zdrojů světla a simulace odlesků a rozptylů světla v optice kamery

    Obr.7: Prostorové stíny současně s vizualizací zdroje světla

  • zrcadlové plochy

  • planární stíny

  • prostorové dynamické stíny s výkonným a robustním algoritmem

  • a mnoho dalšího ...

Obr.8: In-place 3D editor vývojového prostředí systému Control Web umožňuje volný pohyb ve vytvářené scéně včetně vykreslování všech obrazových efektů

Tyto možnosti dokumentují technologickou vyspělost vykreslovacího systému a samozřejmě jich ve svých aplikacích vždy nemusíme využívat. Ale je příjemné mít je k dispozici.

Obr.9: Architektura 3D vykreslovacího stroje v systému Control Web

Důležité je také informace o architektuře 3D vykreslovacího systému a jeho zařazení do struktur prostředí Control Web. Jak je vidět na obr. 8, vykreslovací systém poskytuje své služby pouze patřičným virtuálním přístrojům a nikoliv jádru systému Control Web. Vykreslovací systém se tedy dynamicky zavádí až spolu s prvním virtuálním přístrojem, který jej potřebuje. Rozhodně tedy nemusíme mít obavu, že by v aplikacích soft PLC bez vizualizace nebo v aplikacích s 2D vizualizací komponenty 3D vykreslovacího systému jakkoliv překážely, zabíraly místo ve virtuálním pamětovém prostoru a jakkoliv zdržovaly start aplikace.

3D vykreslování v reálném čase

Je dobré se také zamyslet, proč bychom se vůbec v průmyslové automatizaci měli zabývat 3D grafikou (když už jsme se tak dlouho bez ní docela obešli :-)). Argument proti se dá vymyslet asi jen jeden jediný, a to ten, že sestavit vizualizaci dá o něco více práce. Do jisté míry je to pravda, avšak právě snadnost tvorby 3D vizualizací byla hlavním návrhovým cílem 3D grafického prostředí v systému Control Web. V řadě případů můžeme vytvořit 3D scény zcela bez hlubší znalosti problematiky i bez nutnosti relativně pracného kreslení externích 3D modelů. Na druhé straně argumentů ve prospěch 3D zobrazování je hned několik:

  • Vzhled — v současnosti se jedná o nejkvalitnější dostupnou zobrazovací technologii. Vykreslování obrazu ve 3D prostoru (3D rendering) se využívá pro tvorbu filmů, v počítačových hrách, při zobrazování modelů ve vědě a výzkumu, v CAD programech, při prezentaci dat atd. je tedy nejvyšší čas i pro průmyslovou automatizaci.

  • Výkon — 3D akcelerátor je samozřejmou součástí každého současného PC a je škoda tohoto potenciálu nevyužívat.

  • Architektura — klient-server vykreslovací systém, maximum vykreslování je řešeno mimo jádro operačního systému. To přináší lepší možnosti optimalizace a plynulejší reáln6ý čas aplikací.

  • Cena — používáme stejný počítač a aplikace vytváříme prakticky stejným způsobem jako jsme byli dříve zvyklí u 2D vizualizací. Získáváme tedy vyšší kvalitu bez nutnosti cokoliv připlácet.

Obr.10: Logo systému Control Web vykreslované v reálném čase přímo systémem Control Web

Nevyužívat pro vizualizace 3D grafický systém, je-li v podobě grafické karty a instalovaných ovladačů na počítači přítomen (a to je téměř vždy), je jako bychom svým autem stále jezdili jenom na první rychlostní stupeň.

Oblast průmyslové automatizace je tradičně velmi konzervativním oborem, který bohužel ani zdaleka nepatří k technologickým průkopníkům na poli informačních technologií. Avšak v systému Control Web v trojrozměrné grafice můžeme nyní využít nejen skvělého výkonu moderních akcelerátorů, ale díky implementaci řady nejnovějších softwarových technologií a algoritmů třírozměrného zobrazování v reálném čase získat pro své aplikace rychlou a vizuálně působivou grafickou prezentaci. Nemusíme již tedy, jak je často k vidění, prostorové zobrazení pouze napodobovat pomocí předem připravených bitmap. Můžeme mít opravdové trojrozměrné zobrazování v reálném čase!

Roman Cagaš, rc@mii.cz

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