| 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á grafikaV 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 WebJe-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 grafikaCo 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
 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
              technikKrátké ohlédnutí do historieOblast 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é kartyaplikace získá perfektní vzhled osvětleného a plastického
              vygenerovaného obrazuaplikač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
              CPUBudeme-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í vizualizacestromový 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ětlazrcadlové plochyplanární stínyprostorové dynamické stíny s výkonným a robustním
              algoritmema 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 WebDů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 časeJe 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 WebNevyuží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 |