Komponenty OpenGL pro vývojové prostředí Delphi

Rozměr: px
Začít zobrazení ze stránky:

Download "Komponenty OpenGL pro vývojové prostředí Delphi"

Transkript

1 MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Komponenty OpenGL pro vývojové prostředí Delphi Bakalářská práce Ondřej Sochora Brno, 2010

2 Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Vedoucí práce: RNDr. Jaroslav Pelikán, Ph.D.

3 Shrnutí Tato práce pojednává o návrhu a tvorbě vizuálních komponent ve vývojovém prostředí Borland Developer Studio 2006, které implementují grafické rozhraní OpenGL a umožňují tak pracovat s trojrozměrnou grafikou. Součástí práce je přiložený CD disk, na kterém se nachází zdrojové kódy komponent a ukázkové aplikace, jež tyto komonenty používají. Příklady jsou napsány v jazyce Object Pascal a využívají grafické rozhraní OpenGL 1.5.

4 Klíčová slova: Delphi, tvorba komponent, OpenGL, Object Pascal

5 Obsah 1 Úvod Přínos práce Integrace s prostředím Delphi Úvod do komponentní technologie Kroky k vytvoření komponenty Vlastnosti komponenty Editory vlastností Editory komponent Distribuce komponent Kontext zařízení a rendering conext Funkcionalita na pozadí Kontext zařízení Rendering context Implementace kontextů v komponentě Kamera Integrace kamery do komponenty Pohledové transformace Pohyb kamery ve scéně Objekty Grafická primitiva Mesh objekty a jejich zobrazení Světla a osvětlení Základní světelný model Typy světel Materiály a textury Specifikace materiálů Implementace materiálů v komponentě Specifikace textur Implementace textur v komponentě Grafické efekty Mlha Antialiasing Objektový supersampling Supersampling scény Multisampling Míchání barev Závěr...30

6 Použitá literatura a zdroje...31 Příloha A. ObsahCD...33

7 Kapitola 1 Úvod 1.1 Přínos práce Cílem této práce je navrhnout a vytvořit komponenty pro vývojové prostředí Borland Developer Studio 2006, které pracují s grafickým rozhraním OpenGL[1]. Úkolem práce je přinést uživateli sadu ukázkových komponent, s jejichž pomocí bude schopen vytvářet jednoduché objekty, umísťovat je do scény a celou scénu vykreslit. Tyto komponenty abstrahují složitost a komplexitu rozhraní OpenGL a poskytují jednoduchý a intuitivní přístup k tvorbě aplikací zobrazujicích trojrozměrnou grafiku. Od uživatele se předpokládá základní znalost jazyka Object Pascal a jistá znalost rysů, které OpenGL nabízí. Nemusí však vědět detaily implementace OpenGL jako parametry a názvy funkcí, ale postačí si s takovými vědomostmi jako např. které parametry ovlivňují výsledný vzhled mlhy, jaký je rozdíl mezi bodovým, směrovým a reflektorovým světlem apod. Text zahrnuje vývoj dvou komponent, a to GLViewer a ObjectScene. GLViewer simuluje kameru a práci s ní, přičemž do sebe integruje různé funkcionality (kosoúhlé projekce, pohyb, rotace) a efekty (mlha, antialiasing). ObjectScene je komponenta zapouzdřující mechanismus, který umožňuje tvorbu grafických prvků (primitiv, meshů, skyboxu), jejich následnou editaci (definice materiálů a textur) a definuje scénu a její nastavení (face culling, stínování, zapnutí osvětlení aj.). Každému objektu (výjimku tvoří dvojrozměrné elementy jako body, čáry a světla) lze posléze přiřadit materiál a texturu, objektům bez materiálů lze nastavit barvu. Výše zmíněné komponenty uživateli nabízí: tvorbu scény a umístění objektů do scény možnost objektům nadefinovat materiály a textury přiřazení kamery scéně a následný pohyb kamery grafické efekty (mlha, antialiasing) načítání externích 3D souborů (3DS, OBJ) celoobrazovkový režim (fullscreen) a ukládání obrazovky do bitmapy tvorbu a nastavení světel generování terénu a venkovního prostředí (terrain, skybox) spolu s dalšími komponentami, které vývojové prostředí obsahuje (především TTimer), vytvořit jednoduché animace -1-

8 1. ÚVOD 1.2 Integrace s prostředím Delphi V prostředí Delphi se komponentou rozumí základní stavební prvek každé vizuální aplikace (nikoliv konzolové aplikace 1 ). Komponenty mohou být dvojího typu vizuální a nevizuální. Vizuální komponenty jsou například tlačítka, přepínače, formuláře (známé windowsovské okno), menu, popisky, textová pole, dialogy a mnoho dalších a jsou v době návrhu (designtime) i v době běhu (runtime) aplikace viditelné a uživatel může s nimi přímo interagovat. Nevizuální komponenty jsou například klienti FTP připojení, správci různých databázových nebo síťových připojení. Tyto komponenty jsou viditelné pouze v době návrhu aplikace a v době běhu s nimi uživatel může interagovat pouze nepřímo (pomocí ovládacích prvků, které vyvolají činnost dané komponenty) Úvod do komponentní technologie Samotný návrh aplikace je tvořen metodou umístěním konkrétní komponenty na formulář a nastavením jejích vlastností, tzv. properties v Object Inspectoru. Object Inspector je okno, respektive správce komponent, ve kterém se vlastnosti komponenty nastavují. Vlastnosti definují vzhled a chování komponenty, typicky velikost, barvu, typ písma, styl, okraje, viditelnost, atributy spojené s dědičností apod. Změny vlastností mohou být na komponentě okamžitě vidět, nebo se mohou projevit až v době běhu. V Object Inspectoru jsou viditelné pouze ty vlastnosti, které komponenta obsahuje ve svém zdrojovém kódu v sekci published. Vlastnosti komponenty mohou být i v sekci public, avšak ty jsou dostupné pouze programově v době běhu. Kromě vlastností mohou být komponentě nastaveny i události, tzv. events, pokud komponenta nějaké má. Pro nějakou událost (třeba přejetí kurzoru myši přes komponentu) se může přiřadit obslužná metoda, která se při vyvolání události provede. Prostředí Delphi používá vlastní komponentní technolgii VCL (visual component library), která má za úkol značně zjednodušit volání složitých funkcí Windows API (programové rozhraní, umožňující používat funkce systému MS-Windows a vytvářet uživatelské rozhraní). Tato knihovna v sobě nese standardní vizuální komponenty, pomocí kterých lze vytvářet grafické uživatelské rozhraní aplikace (GUI graphical user interface) a dále pak přináší mnoho nevizuálních komponent pro vývoj a návrh databází, síťových aplikací a jejich rozhraní. Knihovna VCL též umožňuje vytvářet nové komponenty nebo modifikovat stávající Kroky k vytvoření komponenty Při vytváření nové komponenty (nebo modifikaci stávající) je nutné dobře znát objektové koncepty Delphi, mít alespoň základní povědomí o struktuře a hierarchii knihovny VCL a dodržovat zaběhnuté konvence (to samozřejmě platí nejen při návrhu komponent, ale pro psaní jakéhokoliv kódu). Dále je vhodné mít určitou představu, co by komponenta měla a neměla nabízet, které vlastnosti komponenta mít nebude. Tento aspekt je důležitý zejména z hlediska vhodného výběru rodičovské třídy. 1 Konzolová aplikace je aplikace podobná programu Příkazový řádek systému MS-Windows. Ačkoli na první pohled se může jevit jako vizuální (není neviditelná, uživatel ji vidí), za vizuální aplikaci se považuje typická okenní aplikace s tlačítky, přepínači, menu apod. -2-

9 1. ÚVOD Je důležité mít na paměti, že komponenty se tvoří děděním od zvolené rodičovské třídy. Komponenta tedy specializuje rodičovskou třídu, avšak zároveň ji rozšiřuje. Při odvození nové třídy není možné některou vlastnost či metodu předka zrušit, vyjmout z deklarace nebo nadále zapomenout. Dědičnost pouze umožňuje přidat k atributům a metodám předka nové atributy a metody a je tedy důležité vybrat takovou rodičovskou třídu, která obsahuje pouze nezbytné funkcionality. V opačném případě bude nová komponenta obsahovat zbytečné funkce, které nikdy nevyužije a celková velikost kódu bude zbytečně narůstat. Ke zvolení rodičovské třídy a vytvoření jednotky (souboru.pas) je možné použít správce komponent, který vytvoří základní kód nové komponenty. Další nezbytný krok je vytvoření tzv. balíku. Balík (package) je určitý druh projektu Delphi; podobně jako při návrhu aplikace je vytvořen zdrojový soubor projektu (soubor.dpr delphi project), tak i při návrhu balíku je vytvořen podobný soubor (.DPK delphi package). Pro každý balík je vytvořen práve jeden tento soubor. Balíky jsou rozděleny na dvě části contains a requires. V části contains jsou přítomny zdrojové soubory komponenty (soubory.pas), případně ikony a zdroje (soubory.dcr). Část requires obsahuje reference na další externí balíky, které komponenta pro svoji funkčnost vyžaduje. Pokud bude vytvářená komponenta velice jednoduchá, balík sekci requires nemusí obsahovat, nicméně ve většině případů komponenty bývají robustní a vizuálního charakteru a balík sekci requires obsahuje. V případě popisovaných komponent (GLViewer a ObjectScene) balík DelphiOpenGL.dpk sekci requires vyžaduje a ta obsahuje reference na balíky vcl.dcp, rtl.dcp, vcljpg.dcp a designide.dcp. Přítomnost balíků vcl.dcp a rtl.dcp je nezbytná, protože komponenta bude vizuální a bude určena pro dobu návrhu i dobu běhu (balík DelphiOpenGL bude návrhový i běhový). Balík vcljpg.dcp umožňuje pracovat s rastrovými soubory JPG (práce s nimi je možná i bez tohoto balíku, nicméně balík vcljpg.dcp práci s nimi velice usnadňuje). Protože komponenta ObjectScene obsahuje několik editorů vlastností a editorů komponent (jsou popsány v podkapitole a 1.2.5), musí zde být zahrnuta i reference na balík designide.dcp Vlastnosti komponenty Podle definice vlastnosti (properties) představují rozhraní k interním datovým polím komponenty[2]. Znamená to tedy, že k soukromým atributům lze přistupovat pomocí tohoto rozraní (myslí se tím pouze technický termín, nezaměňovat s rozhraním, jaké používá např. jazyk Java) a třída má tak plně pod kontrolou, jakým způsobem lze data modifikovat a může ošetřit neplatné hodnoty a vyhnout se tak nekonzistentnímu stavu, do kterého by se třída (resp. její instance) mohla dostat. Pokud mají být vlastnosti viditelné v Object Inspectoru, musí být deklarovány v sekci published, jinak se mohou nacházet i v sekci public, ale Object Inspector je nezobrazí. Obecný tvar deklarace vlastnosti je property propertyname[indexes]: type index integerconstant specifiers; -3-

10 1. ÚVOD Vlastnost se deklaruje klíčovým slovem property. Za ním následuje jméno vlastnosti, tak jak bude zobrazeno v Object Inspectoru. Pokud bude vlastnost typu pole, pak následují indexy prvků oddělené čárkou, podle kterých bude komponenta číst nebo zapisovat příslušné hodnoty. V případě, že vlastnost pole není, indexy nejsou přítomny. Další povinný atribut vlastnosti je její datový typ. Typ vlastnosti může být číselný, řetězcový, enumerační (výčtový), možina, jiná komponenta nebo typ TPersistent. Specifikátor index integerconstant umožňuje několika dalším vlastnostem sdílet tutéž přístupovou metodu. Specifikátory jsou sekvence klíčových slov read, write, stored, default (popř. nodefault) a implements. Specifikátory read, resp. write stanovují, co nastane, je-li hodnota vlastnosti čtena, resp. zapisována. Za specifikátorem read může následovat privátní atribut třídy nebo název funkce, která vrací hodnotu privátního atributu, za specifikátorem write může být uveden opět privátní atribut nebo procedura, která nastavuje hodnotu tohoto atributu. Obě metody musí být kompatibilní s typem dané vlastnosti, zápisová procedura bere pouze jeden argument (pokud se jedná o sdílenou proceduru, pak má argumenty dva další argument je index do pole, do kterého má být hodnota zapsána). Každá definice vlastnosti musí obsahovat alespoň jeden z těchto dvou specifikátorů. Zbytek specifikátorů je nepovinný, pouze stručně můžeme některé zmínit, jakou hrají roli při vývoji komponenty. Specifikátor default (nodefault) při ukládání projektu prostředí Delphi zapisuje do souboru.dfm hodnoty vlastností komponenty, ale jen v tom případě, pokud se hodnota vlastnosti liší od implicitní. Pokud se neliší, Delphi nic neukládá a při následném načtení souboru.dfm se použije právě hodnota za specifikátorem default. Direktiva nodefault ruší ukládání hodnot zděděných vlastností. Pokud komponenta vyžaduje, aby se konkrétní zděděná vlastnost neukládala, použije se tento specifikátor a vlastnost tedy nebude mít při zpětném načtení projektu implicitní hodnotu. Specifikátor stored za ním následuje logická hodnota (mohou to být i číslice 0 a 1) nebo funkce, jejíž návratová hodnota je typu Boolean. Implicitně je nastaven na hodnotu true (i když není uveden). V případě, že je nastaven na hodnotu false, hodnota vlastnosti se nikdy do souboru.dfm neuloží. Všechny nové vlastnosti komponenty (ty, které nejsou zděděny od rodičovské třídy) se v Object Inspectoru nachází v kategorii Miscellaneous (česky různé). Lze ale zajistit, aby se pro nové vlastnosti vytvořily v Object Inspectoru nové kategorie nebo vlastnost přesunout do jiné, která už v Object Inspectoru je. Object Inspector je pak více přehledný a vlastnosti jsou umístěny v takových kategoriích, kde je uživatel může snáze najít. K tomu slouží procedura RegisterPropertyInCategory(categoryName: string; propertyname: string);, kde první parametr metody představuje název nové kategorie (nebo nějaké stávající, pokud vlastnost pouze přesunujeme) a druhý parametr je název vlastnosti, pro kterou je nová kategorie generována. Obdobně existuje i metoda pro registraci několika vlastností současně. -4-

11 1. ÚVOD Editory vlastností Některé komponenty mohou mít takové speciální vlastnosti, jež neodpovídají žádným datovým typům (čísla, řetězce, persistentní třídy), které je schopen Object Inspector zobrazit. V takovém případě je dobré a někdy i nutné vytvořit speciální editor vlastnosti, který bude umožňovat danou složitější vlastnost modifikovat. Editory vlastností jsou rozšířením Object Inspectoru a v podstatě oznamují Object Inspectoru, jak má zacházet s danou vlastností. Příkladem takového editoru může být vlastnost barvy pozadí formuláře (Color). Jedná se sice o výčtový typ, který Object Inspector normálně zobrazuje, avšak na rozdíl od běžného výčtového typu zobrazuje i danou barvu a to už běžný výčtový typ neumí. Ve většině případů není nutné psát editor vlastnosti úplně od základů Delphi nabízí velké množství předdefinovaných editorů a stačí vybrat ten, který umí pracovat s daným datovým typem vlastnosti, pro kterou je editor vytvářen a přepsat některé z jeho metod. Všechny editory vlastností jsou potomky třídy TPropertyEditor, jež se nachází v modulu DesignIntf.pas. Protože Borland Developer Studio 2006 neobsahuje binární soubor tohoto modulu (důvody nejsou známé, ačkoli starší verze Delphi tyto soubory obsahují), je zapotřebí v balíku, ve kterém je komponenta vyvíjena, do sekce requires přidat referenci na balík designide.dcp. Všechny vlastnosti, které se v Object Inspectoru nachází, jsou spravovány patřičným editorem např. výčtové typy jsou spravovány editorem TEnumProperty, vlastnost typu množina má přiřazen editor TSetProperty, číselné hodnoty s plovoucí desetinnou čárkou jsou zase pod správou editoru TFloatProperty apod. Nyní si krátce popíšeme vývoj editoru vlastnosti Model třídy TDGLMesh, pomocí které uživatel vybere soubor s objektem. Samotná vlastnost je řetězcového typu, ale pro pohodlný výběr v adresářové struktuře disku je pro ni vytvořen editor v podobě dialogového okna. Třída editoru je nazvána T3DFileProperty a je potomkem editoru TStringProperty. Pro potřeby našeho editoru stačí přepsat implenetaci dvou metod funkce GetAttributes: TPropertyAttributes a procedury Edit. Kód třídy je následující: T3DFileProperty = class(tstringproperty) public function GetAttributes: TPropertyAttributes; override; procedure Edit; override; end; Funkce GetAttributes: TPropertyAttributes; určuje druh vlastnosti a její chování. Existuje několik možností, jak bude hodnota ve vlastnosti zobrazena. Implicitně je zobrazována jako editační pole (např. vlastnost Caption), ale může být i stylu pareadonly (je zakázáno obsah vlastnosti měnit), pavaluelist (zobrazí se jako výčtový typ (např. vlastnost FormStyle) a další. Pro účely popisovaného editoru je zvolen styl padialog. -5-

12 1. ÚVOD Procedura Edit nastane tehdy, když uživatel v Object Inspectoru bude chtít vybrat nějaký soubor. Podobně jako u vlastnosti Font, i u vlastnosti Model je při jejím zaměření zobrazeno tlačítko se třemi tečkami (' '). Po kliknutí na něj se otevře požadované dialogové okno a uživatel může zvolit konkrétní soubor. Po zvolení souboru je ve vlastnosti uložena cesta k souboru. Implementace obou metod: function T3DFileProperty.GetAttributes: TPropertyAttributes; begin //padialog určuje, že vlastnost bude používat dialogové okno Result := [padialog]; end; procedure T3DFileProperty.Edit; begin with TOpenDialog.Create(Application) do try //zobrazí název vlastnosti v titulku dialogu Title := GetName; Filename := GetValue; //maska filtru, podle které se budou v dialogu zobrazovat //pouze soubory s danou příponou Filter := 'Mesh files (*.obj, *.3ds) *.OBJ;*.3DS LightWave OBJ (*.obj) Autodesk 3DS (*.3ds) *.3DS'; HelpContext := 0; //pokud soubor nebo cesta k němu nebude existovat, zobrazí se //chybová hláška Options := Options+[ofShowHelp,ofPathMustExist,ofFileMustExist]; if Execute then SetValue(Filename); finally free end end; Metody GetName: string;, GetValue: string; a SetValue(const Value: string); jsou definované ve třídě TPropertyEditor. Aby byl nový editor vlastnosti připraven k použití, musí se zaregistrovat do vývojového prostředí v registrační proceduře Register. To se provede metodou RegisterPropertyEditor(PropertyType: PTypeInfo; ComponentClass :TClass; PropertyName :string; EditorClass :TPropertyEditorClass);. První argument procedury je ukazatel na typ třídy vlastnosti, pro kterou je editor navržen. Druhý argument je třída komponenty, jejíž vlastnost bude tento editor používat. Další argument je název této vlastnosti a poslední argument je třída editoru. -6-

13 1. ÚVOD Tedy v případě popisovaného editoru bude funkce vypadat takto: RegisterPropertyEditor(TypeInfo(TModelName),TDGLMesh, 'Model', T3DFileProperty); Editory komponent Editory komponent jsou podobné editorům vlastností rozšířují a obohacují vývojové prostředí. Stejně jako editory vlastností jsou editory komponent odvozeny od jediné mateřské třídy, které je potřeba přepsat a předefinovat některé abstraktní a virtuální metody k dosažení požadovaného chování editoru. Jsou přiřazeny konkrétnímu typu komponenty a jsou většinou vyvolány kliknutím na komponentu pravým tlačítkem myši (když se nachází na formuláři). Způsob aktivace editoru komponenty je mírně odlišný od způsobu aktivace editoru vlastnosti, ale návrh takového editoru je víceméně stejný. Editor komponenty je vytvořen (na základě typu komponenty) vždy, když je komponenta vybrána z palety komponent. Při dvojitém kliknutí je zavolána metoda Edit. Když je vyvoláno kontextové menu komponenty, jsou zavolány metody GetVerbCount a GetVerb, které způsobí přidání položek do kontextového menu. Pokud je vybrána nějaká položka v menu (která patří dané komponentě), zavolá se metoda ExecuteVerb. Editory komponent je dobré vytvářet tehdy, když je potřeba přidat položky do kontextového menu nebo změnit chování při poklikání na komponentu. Příklad editoru lze spatřit po kliknutí pravým tlačítkem myši na komponentu TPopupMenu. Rodičovská třída všech editorů komponent se jmenuje TComponentEditor a je nezbytné přidat do balíku, ve kterém se komponenta nachází referenci na balík designide.dcp. Komponenta ObjectScene má také svůj editor a nyní si jej stručně popíšeme. Třída editoru se jmenuje TSceneEditor a je potomkem třídy TComponentEditor. Třída samotná redefinuje 4 metody, zmíněné v předchozím odstavci. Kód třídy vypadá takto: TSceneEditor = class (TComponentEditor) public procedure Edit; override; procedure ExecuteVerb(Index: Integer); override; function GetVerb(Index: Integer): String; override; function GetVerbCount: Integer; override; end; procedure TSceneEditor.Edit; begin {po provedení metody Edit se zobrazí formulář, který slouží k přidávání komponent grafických objektů a jejich správě } with ObjectSceneEditorForm do begin SetScene(Self.Component as TObjectScene, Self.Designer); Show; end; end; -7-

14 1. ÚVOD Procedura Edit je zavolána prostředím Delphi vždy, když uživatel dvakrát klikne na komponentu. Mnoho komponent používá tuto metodu k namapování události OnClick, zatímco například třída TForm používá tuto metodu k namapování události OnCreate. procedure TSceneEditor.ExecuteVerb(Index: Integer); begin case Index of 0 : Edit; end; end; Procedura ExecuteVerb je vyvolána vždy, když uživatel klikne na jednu z položek v kontextovém menu. function TSceneEditor.GetVerb(Index: Integer): String; begin case Index of 0 : Result:='Show Scene Editor'; end; end; Funkce GetVerb se provede pro každou položku menu komponenty. Význam této funkce spočívá v oznámení Delphi, které položky se v kontextovém menu mají zobrazit. function TSceneEditor.GetVerbCount: Integer; begin Result:=1; end; GetVerbCount je provedeno prostředím, kdy je zapotřebí zjistit, kolik položek má být přidáno do kontextového menu komponenty. Stejně jako editor vlastností je nutné editor komponenty zaregistrovat do prostředí funkcí RegisterComponentEditor(ComponentClass: TComponentClass; ComponentEditor: TComponenEditorClass);, kde první argument je třída, pro kterou je editor registrován, druhý argument je třída editoru. Pro rozebíraný editor bude mít funkce argumenty RegisterComponentEditor(TObjectScene, TSceneEditor);. Komponenty se sdružují do skupin a jsou dostupné v paletě komponent. Kupříkladu nabídka Standard obsahuje nejzákladnější a nejpoužívanější, jako třeba tlačítko (button), textové pole (edit), popisek (label), rozbalovací seznam (combobox) nebo přepínač (radiobutton), nabídka Dialogs pro změnu nabízí dialogy pro výběr barvy, stylu písma, dialog pro otevření souboru či jeho uložení, nebo dialog pro nastavení tiskárny a tisku. Pro to, aby se komponenta mohla zobrazit v paletě komponent, je zapotřebí ji za- -8-

15 1.ÚVOD registrovat do vývojového prostředí. To má na starost procedura RegisterComponent(const Page: string; ComponentClass: TComponentClass);, jejíž první argument značí název skupiny v paletě a druhý argument je třída komponenty, kterou registrujeme. Všechny třídy editorů vlastností a komponent, funkce pro registraci jednotlivých komponent, jejich vlastností a funkce pro roztřídění vlastností do kategorií jsou definovány v modulu IDEIntegration.pas Distribuce komponent Soubor.DPK je pouze textový popis projektu balíku. Aby se komponenty v něm obsažené mohly používat a přenášet od autora k uživateli, musí se balík přeložit do binární podoby. Delphi kompilací vytvoří dva binární soubory, konkrétně.bpl a.dcp. Soubor.DCP obsahuje hlavičku balíku a spojení všech.dcu souborů v balíku (DCU je binární forma.pas souboru). K tomuto souboru musí mít prostředí Delphi přístup, aby později mohlo přeložit aplikace využívající komponenty z daného balíku. Soubor.BPL je velice podobný dynamicky linkovaným knihovnám (.DLL), avšak se speciálními vlastnostmi, které jej předurčují pro použití v aplikacích Delphi (nebo Borland C++ Builderu). Je to v podstatě vlastní běhový i návrhový balík a Delphi musí k němu mít přístup. Soubor.BPL i.dcp je pro každý balík vytvořen právě jeden a má shodný název s projektem balíku (souborem.dpk). Pokud autor komponent má v úmyslu své komponenty nabízet za účelem zisku a nechce zveřejňovat zdrojové kódy, stačí koncovým uživatelům dát k dispozici pouze tyto dva binární soubory. V případě, že se jedná např. o projekt s otevřeným kódem, stačí nabídnout textorvý soubor.dpk se zdrojovými.pas soubory a koncový uživatel je schopen si už balík sám přeložit a nainstalovat. -9-

16 Kapitola 2 Kontext zařízení a rendering context Každá vizuální komponenta je zároveň okenním prvkem. Nejedná se o klasické okno s titulkovým pruhem a ikonami pro minimalizaci, maximalizaci a uzavření okna, ale má stejné nebo podobné atributy a charakteristiky. Typické okno, známé prakticky ze všech desktopových aplikací, je pouze speciální případ okenní komponenty. Prvotní návrh komponenty, která zobrazuje výstup OpenGL, by mohl souviset s použitím knihovny GLUT, která obsahuje funkce pro vytvoření plnohodnotného okna s už nastavenými kontexty (viz podkapitola 2.2). Vzhledem k faktu, že vytvářená komponenta GLViewer nebude ve formě takového okna, musí se vykreslování OpenGL nastavit ručně. 2.1 Funkcionalita na pozadí Všechny vizuální komponenty mají tzv. popisovač [3] (handle) jednoznačný identifikátor, pomocí kterého můžeme s komponentou manipulovat, odkazovat se na ni apod. Delphi při běžné práci uživatele od složitého odkazování pomocí popisovače chrání, nicméně tvorba nových komponent znalost práce s popisovačem vyžaduje. Další významnou část vizuálních komponent tvoří vykreslovací plocha (canvas). Je to abstrakce malířského plátna, plochy, kam komponenta vykresluje svůj obsah. Samotné vykreslení různých grafických primitiv, jako například čar, elips, n-úhelníků, neprovádí komponenty přímo, nemají tedy přímý přístup k hardwaru. Toto vše zajišťuje GDI (Graphics Device Interface), což je aplikační programové rozhraní (zkratka API) platformy MS-Windows, kterému je přístup k hardwaru umožněn. V našem případě bude GDI z velké části nahrazeno OpenGL, protože GDI není uzpůsobeno pro vykreslování trojrozměrné grafiky. 2.2 Kontext zařízení Aby komponenta mohla něco vykreslit, musí se jí nastavit kontext zařízení (Device Context, zkráceně DC). Pomocí kontextu zařízení se nasměruje výstup z GDI do vykreslovací plochy komponenty (canvasu). Kontext zařízení mimo jiné také definuje různé atributy textů a obrázků, které jsou zobrazovány dále na obrazovce nebo tisknuty tiskárnou. Komponenta GLViewer je potomek třídy TCustomControl[4], ze které dědí některé důležité rysy. Jeden z významnějších je, že se nemusíme starat o samotné vytvoření kontextu zařízení. V opačném případě bychom jej museli vytvořit sami. Před výstupem do komponenty (nebo jiného výstupního zařízení) musíme získat od GDI právě aktuální kontext. To provede funkce function GetDC(handle: HWND): HDC, kde se jí jako parametr předá výše zmíněný popisovač okna, resp. komponenty. -10-

17 2. KONTEXT ZAŘÍZENÍ A RENDERING CONTEXT V době, kdy už kontext zařízení není potřeba, jej dealokujeme funkcí function ReleaseDC(handle: HWND; DC: HDC): integer, kde se v argumentu handle funkci předá popisovač okna a v argumentu DC identifikátor kontextu zařízení, který byl před tím obdržen funkcí GetDC(handle: HWND). Uvolnění kontextu není vždy nezbytné, odvíjí se od typu kontextu. Je ale vhodné jej implicitně uvolňovat. Pokud by později došlo ke změně typu kontextu, který by se nedealokoval, mohlo by dojít ke značné spotřebě paměti nebo k jiným, závažnějším chybám. 2.3 Rendering context Další fáze návrhu komponenty spočívá v propojení OpenGL s operačním systémem a přesměrování výstupu OpenGL, tzv. rendering contextu, na dříve získaný kontext zařízení. Toto propojení umožní zachytit výstup OpenGL a v případě vícevláknové aplikace můžeme odlišit výstup pro jednotlivá vlákna. Ačkoli je knihovna OpenGL platformově nezávislá, je přesměrování jejího výstupu platformově závislé. Každý operační systém obsahuje nadstavbovou knihovnu, která propojení umožňuje. V MS-Windows je to knihovna WGL, v Linuxu knihovna GLX nebo v operačním systému Mac OS X je to knihovna AGL či NSOpenGL. Protože tato práce pojednává o vývoji v operačním systému MS-Windows, je použita knihovna WGL. Nejdůležitější funkce: function wglcreatecontext(hdc: HDC): HGLRC Tato funkce nad kontextem zařízení vytvoří OpenGL rendering context. Jako parametr bere kontext zařízení, který vrátila funkce GetDC(handle: HWND). function wgldeletecontext(hrc: HGLRC): boolean Podobně jako kontext zařízení je dobré i rendering context uvolnit, jakmile s ním není potřeba dále pracovat. Parametr funkce je konkrétní rendering context připravený k dealokaci, který funkce wglcreatecontext(hdc: HDC): HGLRC předtím vrátila. function wglmakecurrent(hdc: HDC; hrc: HGLRC): boolean Funkce nastavuje kontextu zařízení aktuální rendering context. První parametr funkce je kontext zařízení (získaný funkcí GetDC), na který je třeba napojit dříve vytvořený rendering context (druhý parametr funkce). V případě, že aktuální rendering context už není potřeba, stejná funkce oddělí rendering context od kontextu zařízení. To se provede tak, že oba argumenty funkce budou nula wglmakecurrent(0,0). -11-

18 2. KONTEXT ZAŘÍZENÍ A RENDERING CONTEXT Nastavení obou kontextů nesmí být provedeno v konstruktoru komponenty, protože by vznikla chyba (kontexty by se vytvořily pro neexistující objekt). Z tohoto důvodu je vytvoření kontextů provedeno až po inicializaci v proceduře CreateWnd, která se automaticky volá až po vytvoření instance komponenty GLViewer. Podobným mechanismem je zpracována i následná dealokace obou kontextů. Při zániku objektu (komponenty), přesněji těsně po jeho odstranění systémem z obrazovky, objekt pošle zprávu WM_DESTROY [5], kterou zachytí metoda WMDestroy, ve které se oba kontexty uvolní. Mimo jiné, kontextu zařízení se mohou nastavit různé parametry, jako například barevná hloubka, hloubka z-bufferu, počet bitů akumulačního nebo stencil bufferu, pak to, zda bude podporován stereo rendering nebo dvojitý framebuffer. Tato nastavení poté ovlivní i chování rendering contextu. 2.4 Implementace kontextů v komponentě Tvorba a správa obou kontextů je plně v režii komponenty GLViewer a uživatel se tedy nemusí o nic starat. Samotný mechanismus vytvoření a nastavení rendering contextu je zapouzdřen ve třídě TContextBuffer, která má na starosti nastavení palety, nastavení parametrů pixelformátu (struktura, která v sobě uchovává specifická nastavení rendering contextu jako například počet bitů barevné hloubky, počet bitů hloubkového, akumulačního nebo stencil-bufferu a mnohé další). Vytvořená instance třídy TContext- Buffer se následně musí předat komponentě ObjectScene, která jej vyžaduje pro správné zobrazení a nastavení několika parametrů objektů ve scéně (pokud se ve scéně už nachází). Mimo jiné, třída TContextBuffer umožňuje nastavení několika vlastností scény (nemyslí se teď vlastnosti jako property, které jsou viditelné v Object Inspectoru, ale parametry, které ovlivňují celkový vzhled scény). Tyto vlastnosti se povětšinou týkají modelu osvětlení (ambientní barva scény, osvětlení odvrácených stran polygonů apod., viz kapitola 5). Dále umožňuje nastavit typ stínování (konstantní a Gouraudovo), zapnutí nebo vypnutí osvětlování scény (zapne nebo vypne všechna světla ve scéně v jednom okamžiku) nebo face culling (technika, kdy polygony objektu, které jsou překryty jinými polygony téhož objektu se nevykreslí například zadní plošky koule, které jsou překryty ploškami předními. To umožňuje snížit náročnost scény na vykreslování). -12-

19 Kapitola 3 Kamera Kamera je velice důležitým prvkem v 3D grafice, protože poskytuje pohled na scénu. Jinými slovy, převádí trojrozměrný pohled na dvojrozměrný, který lze dále už jednoduše zobrazit na nějakém výstupním zařízení. V OpenGL objekt podobný kameře neexistuje, existuje pouze kolekce projekcí a transformací, vhodně uspořádaných za sebou, která simuluje pohled kamerou. 3.1 Integrace kamery do komponenty Protože OpenGL žádnou kameru neobsahuje, byla v rámci komponenty GLViewer vytvořena abstrakce kamery, která má zjednodušit uživateli práci s projekcemi a transformacemi, které kamera používá. Kamera není samostatná komponenta, ale je to vlastnost komponenty GLViewer (třída TCamera). Kamera má několik vlastností, které umožňují: nastavení pozice a orientace kamery nastavení záběru (field of view) pro perspektivní projekci nastavení hodnot přední a zadní ořezové roviny nastavení antialiasingu (2, 4, 8, 16 ; více v kapitole 7) výběr z mnoha typů projekcí (perspektivní, ortografická, tři axonometrické) zapnutí/vypnutí mlhy, nastavení jejích parametrů funkce pro posun a rotaci kamery zafixovat směr pohledu na nějaký objekt, který se nachází ve scéně 3.2 Pohledové transformace Třída TCamera dává uživateli na výběr z pěti různých typů projekcí. Mimo běžnou perspektivní a ortografickou projekci, které OpenGL má již v sobě implementované, si uživatel může zvolit ze tří axonometrických, a to izometrickou, kavalírní a kabinetní. Izometrická projekce je vytvořena běžnou ortografickou projekcí a umístěním kamery do pozice [x,y,z] = [1,1,1] s pohledem do počátku soustavy souřadnic. Kavalírní a kabinetní projekce je zajištěna přinásobením vhodné matice o rozměru 4 4 funkcí glmultmatrixf(const m: PGLfloat) k ortografické projekci. Obecná matice kosoúhlé projekce promítání do roviny xy vypadá takto: 1 0 Kcos Ksin 0, kde K je koeficient zkrácení a α je úhel průmětu osy z -13-

20 3. KAMERA obr. 1 - kabinetní projekce obr. 2 - kavalírská projekce Pro obě kosoúhlé projekce je úhel α roven 30, v případě kabinetní projekce je K rovno jedné polovině. 3.3 Pohyb kamery ve scéně Komponenta GLViewer nabízí uživateli metody, které umožňují pohybovat s kamerou ve scéně. Tyto metody aplikují na kameru základní lineární a afinní transformace jako např. pohyb vpřed, vzad a stranou, rotace se středem v pozici pozorovatele a v pozici cíle, kam se kamera dívá. Navíc poskytuje funkci pro přiblížení/oddálení scény (zoom). Protože výpočty transformací v pohyblivé řádové čárce jsou náročné, je drtivá většina metod napsána v jazyku symbolických adres (JSA, angl. assembly language), který maximalizuje rychlost výpočtů. Tento přístup lze jednoduše realizovat, protože překladač Delphi obsahuje vestavěný překladač tohoto jazyka (JSA) a assemblerovské instrukce lze psát přímo do těla pascalovské funkce a navíc lze přímo použít argumenty funkce či globální proměnné, vyskytující se v jednotce. Jednotka s těmito funkcemi je volně k dispozici v rámci projektu JEDI [6]. Stručný popis nejdůležitějších funkcí pro práci s kamerou: procedure Move(x,y,z:single); Metoda posune kameru na zadané souřadnice. procedure Move(distance: single); Metoda posune kameru ve směru pohledu. procedure Strafe(distance: single); Metoda posune kameru do stran. procedure Zoom(amount :single); Metoda přiblíží pohled kamery. procedure Pitch(angle: single); Metoda otočí kameru kolem osy x. procedure Roll(angle :single); Metoda otočí kameru kolem osy z. procedure Turn(angle: single); Metoda otočí kameru kolem osy y. -14-

21 Kapitola 4 Objekty Komponenta ObjectScene je navržena tak, aby uživatel mohl jednoduše vytvářet objekty, které se budou následně zobrazovat v komponentě GLViewer. Nadřazená třída všech objektů scény se nazývá TBasicObject. Obsahuje metody a funkce, které poskytují možnost manipulace s objekty v prostoru (posun, rotace, změna měřítka, generování matice transformací a jají inverze). Tato třída dále definuje základní atributy, jako souřadnice pozice, hodnoty rotace a směr up vektoru (vektor, který určuje, jaká rovina znamená pro objekt směr nahoru ) a směr vzhledem k ose z. Tato třída je fundamentální pro všechny objekty, z ní je přímo odvozena třída světel. Objekty v komponentě ObjectScene se dále dělí na ty, které mohou mít materiál a na ty, které materiál mít nemohou (více o materiálech v kapitole 6). Převážná většina objektů nacházející se v komponentě ObjectScene materiál má. Jedná se o běžná prostorová primitiva jako rovina, krychle, koule, válec, torus apod. Na druhé straně světla, body a přímky definovaný materiál nemají. Za tímto účelem jsou z třídy TBasicObject odvozeny třídy TMaterialObject a TImmaterialObject. Třída TMaterialObject definuje a popisuje ty objekty, které materiál mít mohou. V podstatě přidává vlastnost Material a zviditeňuje některé vlastnosti pro Object Inspector, které v nadřazené třídě byly typu public a tudíž by se v Object Inspectoru nezobrazovaly. Analogicky třída TImmaterialObject je mateřská třída pro objekty, které materiál mít nemohou. Těmto objektům lze nastavit alespoň barvu. Všem objektům je možno zobrazit jejich lokální osy, které mají za úkol usnadnit orietnaci uživateli v prostoru. Mateřská třída objektů (TBasicObject) je potomkem třídy TComponent a tedy s každým objektem je možné pracovat jako s běžnou vizuální komponentou lze jí nastavovat vlastnosti v Object Inspectoru. Díky faktu, že třída TComponent je potomkem třídy TPersistent, prostředí Delphi automaticky pomocí své serializační technologie ukládá vlastnosti každého objektu (komponenty) do souboru.dfm. Soubory.DFM slouží k popisu vzhledu formuláře (jeho vlastností), k popisu všech komponent, které se na něm nachází a k definici vztahů mezi komponentami a formulářem. Pro každý formulář je vytvořen jeden.dfm soubor. Prostředí Delphi používá svou vlastní serializační technologii k ukládání stavu komponent právě do tohoto souboru. Serializace je technika, kdy je instance objektu, tak jak je uložena v paměti, převedena na posloupnost bitů, kterou je dále možné uložit na nějaké pevné datové úložiště (na pevný disk nebo jiné médium) a z tohoto úložiště ji zpětně zrekonstruovat do původní podoby. V tomto případě jakákoli instatnce třídy TPersistent a jejích potomků, tedy i komponent, má schopnost být uložena serializační technologií Delphi a zpětně z tohoto souboru opět načtena a vytvořena. Tímto způsobem je velice jednoduše a elegantně dosaženo toho, že po otevření daného projektu aplikace jsou všechny komponenty instanciovány a ihned použitelné a uživatel (programátor) nemusí vytvářet vlastní serializační funkce (samozřejmě mu v tom nic nebrání). Ze stejného důvodu jsou i grafické objekty komponenty ObjectScene navrženy jako vizuální komponenta a tedy po znovuotevření projektu jsou tyto objekty vytvořeny a je možné s nimi dále manipulovat. -15-

22 4. OBJEKTY 4.1 Grafická primitiva Komponenta ObjectScene nabízí k zobrazení různá geometrická primitiva. Jednak taková, která nabízí OpenGL (bod, přímka, čajová konvička, čtyřúhelník), dále ta, která lze z těchto jednodušších elementů vytvořit (krychle, torus) a kvadriky (koule, válec, kužel, disk, popř. částečný disk). Protože komponenty nepoužívají knihovnu GLUT, je vytváření objektů o něco málo složitější, nicméně jako plus je fakt, že všechny objekty mají definované texturovací souřadnice, které GLUT pro své objekty negeneruje (vyjma čajové konvičky).vedle těchto jednoduchých primitiv je uživatel schopen vytvořit venkovní prostředí. K tomuto účelu komponenta ObjectScene nabízí dva speciální objekty, a to skybox a terén. Skybox není nic jiného než krychle a používá se k vytvoření dojmu oblohy a okolní krajiny. Avšak oproti krychli ze sady základních geometrických primitiv skybox umožňuje na každou stěnu namapovat jinou texturu. S dostatečnou velikosí skyboxu a vhodně zvolenými texturami lze vytvořit vcelku reálné prostředí, do kterého mohou být zasazeny další objekty. Vhodnými texturami se rozumí sada 6 textur, které na sebe hranami lícují a není tedy vidět, v jakých místech tyto textury na sebe navazují a také je eliminován dojem toho, že se scéna nachází uvnitř krychle. Druhý ze speciálních objektů je terén, konkrétně třída TDGLTerrain. Tato třída umožňuje vytvořit terén na základě výškové mapy. Tato výšková mapa (height map) je obyčejný šedotónní obrázek, kde jednotlivé intenzity bodů rastru definují výšku na ose y. Mezi vlastnosti této komponenty patří možnost nastavit hodnotu ofsetu (vlastnost StepSize), díky kterému lze regulovat hustotu bodů a tím zvyšovat nebo snižovat úroveň detailů. Další vlastnost, HeightRatio, umožňuje usměrňovat hodnoty na ose y a dává tak vzniknout rozlehlým pláním nebo naopak vysokým pohořím. Poslední a neméně důležitou vlastností je atribut ScaleValue, který aplikuje celkovou změnu měřítka na terén. Je zde z toho důvodu, že intentzity jasu šedotónního obrázku se pohybují v rozmezí od 0 do 255. Pokud by se tyto hodnoty aplikovaly rovnou bez změny měřítka, objekt terénu by byl úplně mimo záběr kamery a prakticky by nic nebylo vidět (už pouze jedna jednotka délky v souřadnicovém systému OpenGL je poměrně veliká). Implicitně je tento atribut nastaven na 0, Mesh objekty a jejich zobrazení Ve většině aplikací, ale i světě kolem, se člověk nesetkává pouze s výše popsanými primitivními objekty. Převážná část objektů jsou tzv. mesh 2 objekty. Mesh objekty jsou tvořeny množinou bodů (nebo hran, facet či povrchů), které reprezentují geometrii objektu. Tímto způsobem může být zobrazen jakýkoli reálný (i nereálný) objekt či před mět. Podobně jako textury (viz kapitola 6), také mesh objekty bývají ukládány a načítány do aplikace z externích souborů. 2 Mesh v angličtině znamená spleť, síťka, síťovina -16-

23 4. OBJEKTY obr. 3 ukázka mesh objektů Komponenta ObjectScene umožňuje zobrazovat objekty z externích souborů a dále s těmito objekty pracovat jako s běžnými objekty scény (lze s nimi pohybovat, rotovat, měnit měřítko apod.). Formáty souborů, které ObjectScene umí načítat jsou stručně popsány a shrnuty v následujícím přehledu: Formát Autodesk 3DS Jedná se o binární formát a tedy data v něm uložená lze rychleji zpracovávat (zapsat na disk nebo nahrát do paměti). Jedná se o de facto 3 standard 3D formátu, mnoho aplikací s ním pracuje a firma Autodesk nikdy nezveřejnila jeho specifikaci. I přes toto omezení se podařilo zhruba zjistit jeho strukturu a tedy je možné s ním pracovat. Jeho interní struktura je reprezentována v podobě stromové hierarchie, jejíž listy a uzly jsou tvořeny speciálními bloky dat, tzv. chunks. Každý takový blok obsahuje hlavičku, která jej popisuje a vlastní data. Struktura bloků vypadá takto: identifikátor: dvoubytový úsek, podle něhož lze poznat, jaká data blok reprezentuje zda materiál, světlo, vrcholy aj. velikost: čtyřbytový údaj, který udává velikost bloku v bytech (v této hodnotě je zahrnuta i velikost všech dat, které blok obsahuje včetně velikostí podbloků, pokud nějaké má) data: vlastní data bloku. Některé bloky data mít nemusí, slouží pouze jako kontejner zapouzdřující nižší podbloky podbloky: další úrovně bloků ve stromové struktuře Formát 3DS obsahuje mimo vlastní data geometrie objektů i popis světel, kamer, materiálů a názvy textur přiřazené jednotlivým materiálům a je schopen v sobě nést i informace o animaci objektů, které obsahuje. Následkem toho, že tento formát nemá zveřejněnou specifikaci, některé aplikace jej špatně interpretují (nemluvě o zápisu) a tedy jej mohou zobrazovat chybně. Ve většině případů jsou zapotřebí pouze údaje o vrcholech, normálách a texturovacích souřadnicích a zbytek informací se může bezpečně ignorovat. 3 De facto standard je vyvinut na základě dohody v rámci jisté komunity. Ta před jeho vydáním odsouhlasí, že odpovídá stanoveným cílům. Příklad jsou dokumenty RFC vydávané organizací IETF.[reference] -17-

24 4. OBJEKTY Formát Wavefront OBJ Formát OBJ je textový a je tedy velice jednoduché z něj získat veškerá data. Mimo běžných vrcholových dat umožňuje ukládat také NURBS plochy, křivky aj. Vedle OBJ souboru může existovat i soubor s příponou.mtl, který definuje vlastnosti materiálů objektů, nalézajících se v souboru.obj. V ideálním případě vypadá struktura souboru.obj takto: prvních několik řádků může a nemusí být komentář. Tyto řádky mohou být ignorovány. Komentář je uvozen znakem dvojitý křížek (#) následují řádky se souřadnicemi vrcholů v zápisu x,y,z. Jsou uvozeny znakem malé v. Například v po skupině vrcholových dat následují řádky texturovacích souřadnic. Jsou uvozeny znaky vt a zapsány ve tvaru u,v takto: vt dále mohou být přítomny hodnoty normál (které nemusí být jednotkové). Řádky jsou uvozeny znaky vn a formát zápisu je vypadá takto : vn , kde tři číselné hodnoty reprezentují složky vektoru normály pokud v souboru jsou přítomny souřadnice textur nebo normál (nejlépe oboje), jako poslední množina údajů jsou informace o ploškách. Řádky jsou uvozeny znakem f a jsou to indexy vrcholů, texturovacích souřadnic a normál odkazující do polí, které jsou vytvořeny v předchozích krocích z příslušných hodnot. Tedy zápis jednoho trojúhelníku plošky vypadá následovně: f 3187/20/ /22/ /24/4068, kde hodnota před prvním lomítkem je index do pole vrcholů, hodnota před druhým lomítkem je index do pole texturovacích souřadnic a hodnota za druhým lomítkem je index do pole normálových souřadnic. Pokud soubor obsahuje např. pouze vrcholová data, zápis plošky je ve tvaru f v// v// v//, kde v je index do pole vrcholů. -18-

25 Kapitola 5 Světla a osvětlení V případě zobrazení složitější scény, tvořené z prostorových objektů (primitiv jako např. krychle, válce, koule apod.), musí scéna obsahovat minimálně jedno světlo. V opačném případě bude scéna zobrazena chybně nebo některé objekty nebudou vidět. Uvažujme jednoduchou scénu s nějakým objektem, například krychlí. I bez světla se tato krychle vykreslí, nicméně bude vidět pouze její obrys. Až po přidání světla (nebo i více světel) krychle nabude trojrozměrný dojem. Komponenta ObjectScene nabízí stejný počet světel jako OpenGL, tedy minimálně 8 (různé implementace OpenGL nabízí různý počet světel, tedy maximální počet světel, který komponenta může nabídnout závisí na konkrétní implementaci). Je třeba mít na paměti, že s každým přidáním světla jsou výpočty náročnější a pokud má být scéna kreslena v reálném čase s mnoha světelnými zdroji, je lepší použít jiné techniky jako například vypínat vzdálená světla nebo lightmapping Základní světelný model Komponenta GLViewer umožňuje uživateli volit tři atributy modelu osvětlení OpenGL, a to barvu a intenzitu globálního ambientního světla, zda mají být výpočty osvětlení prováděny zvlášť pro přední a zadní stranu objektů (polygonů) a zda bod pohledu je nekonečně vzdálený nebo umístěný do scény. Globální ambientní světlo je světlo, které nevydává žádný zdroj. Je to světlo, které vznikne rozptylem okolního světla do prostoru a ustálí se na nějaké hodnotě. Takto může celá scéna získat barevný nádech může se tak nasimulovat třeba západ slunce, kdy celý prostor, včetně objektů, je zabarven do barvy červánků. Tento atribut osvětlení se nastavuje vlastností AmbientColor, kde lze zvolit hodnoty jednotlivých složek světla (červené, zelené, modré) a složky alfa 5. Oboustranné osvětlení určuje, jak bude prováděn výpočet na odvrácených stranách polygonů. Ve většině případech není nutné nastavení měnit, pokud se ale ve scéně nachází například rozříznutá koule, byl by její vnitřek špatně osvětlen vlivem otočených normál. Avšak po zapnutí oboustranného osvětlení se odvrácené strany polygonů osvětlí správně. Atribut oboustranného osvětlení se nastavuje ve vlastnosti ContextOptions. Poslední volitelný atribut světelného modelu je umístění bodu pohledu ve scéně. Povolení tohoto atributu má za následek zlepšení realističnosti osvětlených objektů. Implicitně je bod pohledu nastaven na nekonečno, povolením tohoto atributu se bod pohledu přesune do počátku soustavy souřadnic. Pozici kamery toto nijak neovlivní. Atribut se nastavuje vlastností LocalViewer, a to na hodnotu true nebo false. 4 Lightmapping je technika sloužící k simulaci osvětlení objektů ve scéně. Vyžaduje multitexturing a spočívá v namapování dvou textur na objekt. První textura je klasický obrázek nějakého povrchu, druhá textura je mapa intenzity světla (šedotonní obrázek, většinou nějaký gradient). Tím se vytvoří polygon, který je jakoby vystínovaný. Touto technikou lze rapidně vylepšit vzhled scény za cenu prakticky mizivého nárůstu výpočtů 5 Alfa složka nebo také alfa kanál je 4. komponenta barev v počítačové grafice. Nese v sobě informaci o průhlednosti barvy. Takto lze třeba na sebe překládat několik obrázků s průhledným pozadím a výsledný obázek bude spojení všech těchto vrstev. -19-

26 5. SVĚTLA A OSVĚTLENÍ 5.2 Typy světel Objekt světla je tvořen třídou TLigtSource, která je potomkem třídy TBasicObject. To znamená, že se světlem se může zacházet jako s jiným objektem scény, tedy umožňuje běžné lineární i afinní transformace. Za zmínku stojí fakt, že aplikace změny měřítka (scale) nebo rotace nemá na světlo nijaký vliv rotace pouze v případě, že se jedná o reflektorové světlo, kterým se může simulovat např. reflektor nebo rozsvícená baterka. Stejně jako OpenGL, tak i ObjectScene nabízí tři typy světel, které jsou v nabídce v Object Inspectoru ve vlastnosti LightStyle: směrové světlo se šíří z jednoho směru nezávisle na vzájemné poloze a vzdálenosti objektů v zobrazované scéně. Za zdroj směrového světla lze považovat například slunce, neboť světelné paprsky, které dopadají na povrch těles ze slunce, jsou víceméně paralelní (vzhledem k poměru vzdáleností slunce a těles od sebe). U směrového světla pozice zdroje nehraje roli, protože zdroj světla je zadán jako vektor, jehož 4. složka v homogenních souřadnicích je nula, tedy zdroj je jakoby v nekonečnu. Směrové světlo lze zvolit volbou lsparallel. reflektorové tento typ světelného zdroje se chová podobně jako klasický reflektor nebo kapesní svítilna, tj. světlo se šíří (stejně jako u bodového světla) z jednoho bodu, ale ne do všech směrů, nýbrž pouze v předem zadaném kuželu. Toto světlo ovlivní téměř všechny parametry, které třída LightSource v Object Inspectoru nabízí: pozice, kde je světlo umístěno (Position), směr, kam světlo svítí (Spot direction), šířka světelného kuželu (Spot cutoff) a míra intenzity světla podél osy směru kužele (Spot exponent). Reflektorové světlo se nachází pod položkou lsspot. Pro názornost jsou všechny typy světel zobrazeny na následucjích obrázcích: obr. 4 bodové světlo obr. 5 směrové světlo obr. 6 reflektorové světlo bodové bodové světlo lze chápat jako žárovku umístěnou do prostoru, která vyzařuje světlo na všechny strany se stejnou intenzitou. Bodovému světlu odpovídá položka lsomni. Žádná z transformací, kromě translace, jej neovlivňuje. -20-

27 Kapitola 6 Materiály a textury Aby byla výsledná scéna co nejvěrohodnější, je dobré objektům ve scéně přiřadit různý vzhled. Samotná světla sice scénu jistě dobře nasvítí, nicméně opravdu hezky vypadajících objektů můžeme docílit pouze nadefinováním a přiřazením materiálových vlastností a textur. Stejně jako v reálném světě mají předměty různou barvu, vzhled, lesklost, parametry, které různě lámou, odráží nebo ohýbají světelné paprsky, může se něčeho podobného dosáhnout i v počítačové grafice. Tyto charakteristiky lze obecně označit jako materiál nebo vlastnosti materiálu. Různým nastavením difuzní, ambientní barvy, barvy spekulárních odlesků a dalších případných parametrů lze dosáhnout docela přesvědčivé reprezentace různých kovových nebo plastových povrchů, různě matných, lesklých nebo zářivých. Ale ani materilály nedokáží věrně simulovat jiné, například organické nebo průmyslové povrchy. Tohoto lze dosáhonout až po aplikování textur dohromady s výše zmíněnými materilály. Textura je v podstatě vzor, který připomíná nějaký povrch dřevo, textil, trávu, cihly, beton, koberec nebo některé z mnoha dalších. Teprve po kombinaci materiálů a textur je možné opravdu věrohodně napodobit takřka každý předmět či povrch, se kterým se můžeme setkat v reálném životě. 6.1 Specifikace materiálů Materiál objektu definuje jeho optické vlastnosti, tj. jakým způsobem povrch objektu odráží světelné paprsky zdrojů světla, nacházejících se ve scéně a také definuje, jaké barevné složky světla pohlcuje toto je v podstatě fyzikální princip, který určuje barvu předmětu a jenž platí i v reálném světě. Výsledná barva předmětu, na který dopadá světlo je rovna barevné složce světla (resp. její vlnové délce), kterou předmět odráží. Pokud například máme míč, jenž pohlcuje všechny vlnové délky zelené a modré barvy a vlnové délky červené barvy odráží, pak jeho výsledná barva je červená (v bílém světle). Vzhled materiálu je výsledkem kombinací jednotlivých složek, ze kterých se materiál skládá. Podobně jako barva světla, skládá se i výsledná barva materiálu z difuzní, ambientní a spekulární barvy (zrcadlového odrazu), ale navíc se materiál skládá z dalších dvou komponent, a to emisní barvy a konstanty shininess. Následující přehled vysvětluje význam všech materiálových složek: ambientní barva: je nejvíce patrná tam, kam žádné přímé osvětlení na objekt nedopadá a ovlivňujě tak celkovou barvu materiálu objektu. Celková ambientní barva objektu je ovlivněna globálním ambientním světlem scény a ambientními složkami všech světelných zdrojů nacházejících se ve scéně. difuzní barva: nejdůležitější složka materiálu určuje, jakou výslednou barvu objektu vnímáme. Nejintenzivnější je v místech, kde světlo dopadá kolmo na povrch objektu. Ve většině případech je ambientní a difuzní barva stejná. spekulární barva: spekulární barva neboli zrcadlový odraz vytváří odlesky na objektu. Na rozdíl od ambientní a difuzní barvy závisí množství odraženého světla na úhlu mezi světelným zdrojem a místem pozorovatele. -21-

28 6. MATERIÁLY A TEXTURY Aby odlesky vůbec mohly být vidět, je důležitá také hustota geometrie objektu. Pokud bude hustota sítě polygonů objektu nízká, spekulárních odrazů se lze jen těžko dočkat. Čím ale bude hustota polygonů vyšší, tím věrnější odlesky lze očekávat. emisní barva: určením emisní barvy lze získat objekt, který zdánlivě vyzařuje danou barvu. Ve skutečnosti se z něj světelný zdroj nestane, pouze vypadá, jakoby svítil danou barvou. Lze tímto simulovat mnoho světelných zdrojů (ač žádné světlo nevyzařují) a pomocí lightmappingu můžeme dosáhnout přesvědčivé iluze svítivosti tohoto objektu. konstatnta shininess: určuje lesklost materiálu. Její hodnoty jsou v rozsahu od 0 do 128. Nízké hodnoty definují matný povrch, zatímco vysokými hodnotami lze docílit vysoce lesklých a jakoby vyleštěných povrchů. 6.2 Implementace materiálů v komponentě Materiál objektů, které ObjectScene nabízí, je implementován jako třída TMaterial a je to vlastnost (property) každého objektu, pro který má smysl materiál definovat. Jedná se tedy o všechny objekty vyjma světel, bodů a čar. Třída TMaterial obsahuje 4 vlastnosti: BackProperties, FrontProperties, BlendingMode a MaterialOptions. MaterialOptions je množina dvou hodnot moignorefog a moignore- Lighting. První hodnota způsobí, že na objekt nebude aplikována mlha, je-li ve scéně povolena, druhá má za následek, že na objekt se nebude vztahovat osvětlení, je-li osvětlení ve scéně zapnuto. Vlastnost BlendingMode je podrobně rozebrána v kapitole 7.3, avšak je dobré ji stručně popsat i zde. Tato vlastnost souvisí s mícháním barev a pomocí této vlastnosti lze materiál učinit poloprůhledným. Může se tímto imitovat například tabule skla nebo ledový krystal. BackProperties a FrontProperties jsou vlastnosti téhož typu (třída TFaceProperties) a nastavují se v nich všechny materiálové složky (rep. jejich barvy). Protože každý polygon má 2 strany (přivrácenou a odvrácenou), je možné pomocí těchto vlastností nastavit jiné parametry pro každou stranu polygonu zvlášť. Přivrácené straně polygonu odpovídá vlastnost FrontProperties a odvrácené BackProperties. 6.3 Specifikace textur Textura je, na nejnižší hardwarové úrovni, pouhé pole hodnot v paměti počítače. Většina lidí si pod pojmem textura vybaví běžný dvojrozměrný obrázek, ať už šedotónní nebo barevný. Ale textury mohou být i jednorozměrné nebo dokonce i trojrozměrné. Jednorozměrné textury se nepoužívají často, například takovou texturu lze aplikovat na body nebo úsečky. Trojrozměrné textury se používají převážně v medicíně nebo materiálovém inženýrství. Trojrozměrnou texturu lze vytvořit i složením několika dvojrozměrných textur. Například v lékařství se tento přístup používá k prostorovému zobrazení vnitřních struktur a tkání těla, kdy se jednotlivé snímky získají postupným snímáním pacientova -22-

29 6. MATERIÁLY A TEXTURY těla buď pomocí magnetické rezonance (MR) nebo počítačové tomografie (CT). Tělo pacienta se v přeneseném významu jakoby nařeže podél jedné z os a výsledné obrázky se složí. Následně lze snímky libovoně upravovat lze je různě analyzovat nebo se podle nich vytvoří plnohodnotný trojrozměrný model. Jak už bylo zmíněno v prvním odstavci, textura je pole hodnot v paměti počítače. To tedy znamená, že texturu lze vytvořit i programově pouhým vytvořením vhodné datové struktury s odpovídajícími hodnotami. Odpovídajícími hodnotami se rozumí data reprezentující například barvy (RGB), barvy s alfa hodnotou (RGBA) nebo jas (luminance). Osvědčený způsob získávání textur je nahravání dat z externích souborů, tzn. rastrových obrázků. Protože je ale rozhraní OpenGL primárně navrženo pouze pro vykreslování trojrozměrné grafiky, navíc co nejvíce platformově nezávislé, z tohoto důvodu nenabízí žádné funkce, které by toto obstarávaly (na rozdíl od rozhraní DirectX, které několik formátů umožňuje načítat). Je tedy nezbytné požít nějakou jinou knihovnu, která z mnoha různých grafických formátů umožňuje získat obrazová data[7] nebo se pokusit o napsání vlastních metod, které by nahrávání obrázků prováděly. 6.4 Implementace textur v komponentě Implementace textur v komponentě ObjectScene je zapouzdřena jako vlastnost téměř všech grafických objektů, kromě světel, bodů a čar. Tato vlastnost s názvem Texture je instancí persistentní třídy TTexture, která se nachází v jednotce DGLTexture a sama nabízí další atributy, které umožňují s texturou manipulovat. Co je ale neméně důležité je skutečnost, že k tomu, aby se textura na konkrétním objektu zobrazila, musí objekt mimo svou geometrii definovat i texturové souřadnice. Texturové souřadnice lze připodobnit k nějakým styčným bodům, podle kterých se textura na objekt uchytí (namapuje) a mezi těmito body se interpoluje. U jednoduchých grafických primitiv se texturové souřadnice určí poměrně snadno, ale s narůstající složitostí geometrie je velice obtížné alespoň dostatečně přesně texturu namapovat. Mapování textur (resp. určování jejich souřadnic) lze považovat v jistém slova smyslu za vědní disciplínu v oboru počítačové grafiky. K tomu, aby se textura řádně namapovala na objekt, je někdy potřeba použít specializovaný software 6. Pokud má navíc aplikace umožňovat třeba načítání a zobrazování 3D souborů, pak tyto soubory spolu s geometrií objektu či objektů většinou obsahují i souřadnice textur jim určené. Asi nejdůležitější atributy třídy TTexture jsou parametry Image a Enabled. Vlastnost Image je řetězcový typ, který odkazuje na umístění souboru textury na disku. Aby vyhledání patřičného souboru bylo co nejjednodušší, po kliknutí na tuto vlastnost v Object Inspectoru se otevře dialogové okno, které umožňuje pohodlné procházení adresářové struktury disku. Třída TTexture umožňuje načítat několik rastrových formátů, a to Windows Bitmap (BMP), soubory JFIF (JPG, JPEG), Truevision TGA (TGA) a bezhlavičkové soubory RAW (RAW). Třída, která načítání těchto souborů umožňuje se nachází v jednotce DGLBitmaps a je to převzatý a upravený kód z tutoriálu na stránkách věnujících se grafice a OpenGL [8]. 6 Nemusíme to nutně být programy typu Cinema 4D nebo 3D Studio Max, lze si poměrně dobře vystačit s méně robustními a ne tak finančně náročnými programy jako např. Blender nebo Poser. -23-

30 6. MATERIÁLY A TEXTURY Druhá nejdůležitější vlastnost třídy TTexture má název Enabled a je to logická hodnota, která zapíná a vypíná zobrazování textury na konkrétním objektu. Implicitně je nastavena na false, tzn. pokud sice uživatel vybere ve vlastnosti Image soubor s texturou, nebude na objektu zobrazena do té chvíle, dokud nebude v Enabled povoleno zobrazení textury a uživatel může tak nabýt dojmu, že mapování textur nefunguje správně. V drtivé většině případů málokdy texely 7 textury korespondují s celočíselnými souřadnicemi pixelů na obrazovce. V tom případě je nutné použít filtrování textur, které zajistí výpočet správné barvy pro daný pixel. V praxi mohou nastat dva případy, kdy je potřeba tyto filtry použít, a to, když se textura na objektu zmenší (minification objekt je od kamery vzdálen) nebo zvětší (magnification kamera je v těsné blízkosti objektu). Existují dva základní filtry, jak pro zmenšení, tak i pro zvětšení textury na objektu a tyto dva filtry se nazývají GL_NEAREST a GL_LINEAR. Filtr GL_NEAREST odpovídá bodovému vzorkování (point sampling), filtr GL_LINEAR je označován jako bilineární vzorkování (bilinear sampling). V případě GL_NEAREST se pro zvětšení a pro zmenšení použije takový texel, který se nachází nejblíže středu pixelu. Tento filtr poskytuje rychlý výpočet, avšak jeho nevýhoda spočívá v tvorbě nehezkých artefaktů. V případě volby GL_LINEAR se pro zvětšení a zmenšení použije vážený lineární průměr z pole 2 2 texelů 8, které se opět, jako v předchozím případě, nachází nejblíže středu konkrétního pixelu. Tento filtr poskytuje lepší výsledky než filtr GL_NEAREST, je ale výpočetně náročnější. Třída TTexture samozřejmě tyto filtry nabízí v rámci vlastností MagFilter a MinFilter jako tmgnearest, tmglinear ( MagFilter) a tminearest, tmilinear ( MinFilter). Pro srovnání jsou zde uvedeny obrázky, na kterých jsou vidět výsledky obou filtrů: obr. 7 bodové vzorkování (GL_NEAREST) obr. 8 bilineární vzorkování (GL_LINEAR) Velice často je potřeba namapovat texturu na objekt opakovaně až do velké vzdálenosti od pozorovatele. Pokud by se použila textura jen s jedním jediným rozlišením, ve vzdálenějších místech objektu by se zobrazovala s chybami a nepěknými artefakty. Řešením je vytvořit několik úrovní rozlišení textury a s rostoucí vzdáleností mapovat tuto texturu 7 Texel je základní jednotkou textury, podobně jako pixel je základní jednotkou rastrového obrazu. Texel je většinou definován barvou, intenzitou jasu nebo hodnotou alfa. 8 Pole o rozměrech 2 2 se použije v případě dvojrozměrných textur. Pokud se ale pracuje s jednorozměrnými texturami, spočítá se průměr dvou vedle sebe ležících texelů, v případě trojrozměrných textur, uvažuje se pole o rozměrech

Rámcový manuál pro práci s programem TopoL pro Windows

Rámcový manuál pro práci s programem TopoL pro Windows Rámcový manuál pro práci s programem TopoL pro Windows Příkazy v nabídce Předmět Volba rastru rychlá klávesa F4 Příkaz otevře vybraný rastr; tj. zobrazí ho v předmětu zájmu. Po vyvolání příkazu se objeví

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

Editor pro vizualizaci interiérů bytů

Editor pro vizualizaci interiérů bytů České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačové grafiky a interakce Bakalářská práce Editor pro vizualizaci interiérů bytů Dominik Vondráček Vedoucí práce: Ing. David Sedláček

Více

Práce s velkými sestavami

Práce s velkými sestavami Práce s velkými sestavami Číslo publikace spse01650 Práce s velkými sestavami Číslo publikace spse01650 Poznámky a omezení vlastnických práv Tento software a související dokumentace je majetkem společnosti

Více

Základní ovládání a práce s programem CorelDraw 11

Základní ovládání a práce s programem CorelDraw 11 2. Základní ovládání a práce s programem CorelDraw 11 Základní informace Program Corel Draw je produktem kanadské společnosti Corel corporation a je jedním z mnoha programů které při zakoupení balíku Corel

Více

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně Animace a geoprostor První etapa: Animace 3. přednáško-cvičení Jaromír Landa jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně Náplň přednáško-cvičení Nasvícení scény Světelné zdroje umělé

Více

Obsah. Položkování 1: Prefix dřívějších osamocených dílů se zachovává...23 Položkování 2: Editace předběžných čísel...23

Obsah. Položkování 1: Prefix dřívějších osamocených dílů se zachovává...23 Položkování 2: Editace předběžných čísel...23 Obsah VÍTEJTE V ADVANCE STEEL 2013, ČÁSTÍ ŘEŠENÍ GRAITEC BIM... 5 ADVANCE CAD DOSTUPNÁ 64BITOVÁ PLATFORMA... 6 VYLEPŠENÍ PLATFORMY ADVANCE CAD 2013... 7 NOVÁ PALETA NÁSTROJŮ... 8 MODELOVÁNÍ... 9 Modelování

Více

SPIRIT 2012. Nové funkce. SOFTconsult spol. s r. o., Praha

SPIRIT 2012. Nové funkce. SOFTconsult spol. s r. o., Praha SPIRIT 2012 Nové funkce SOFTconsult spol. s r. o., Praha Informace v tomto dokumentu mohou podléhat změnám bez předchozího upozornění. 01/2012 (SPIRIT 2012 CZ) Revize 1 copyright SOFTconsult spol. s r.

Více

IDEA Frame 4. Uživatelská příručka

IDEA Frame 4. Uživatelská příručka Uživatelská příručka IDEA Frame IDEA Frame 4 Uživatelská příručka Uživatelská příručka IDEA Frame Obsah 1.1 Požadavky programu... 6 1.2 Pokyny k instalaci programu... 6 2 Základní pojmy... 7 3 Ovládání...

Více

Manuál k aplikaci FieldGIS v.2.27

Manuál k aplikaci FieldGIS v.2.27 Manuál k aplikaci FieldGIS v.2.27 Petr Pala Copyright 2008 CENIA, laboratoř GIS 1. Úvod 1. Systémové požadavky 2. Části základního okna aplikace 1. Menu 1.1. File 1.2. Tools 1.3. Hlavní lišta 2. Editor

Více

Delphi popis prostředí

Delphi popis prostředí Delphi popis prostředí Delphi je komplexní vývojové prostředí, které slouží pro tvorbu aplikací. Řadí se mezi objektově orientované jazyky, protože podporuje koncepci skutečného objektového programování.

Více

SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ. Martin Štroner, Bronislav Koska 1

SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ. Martin Štroner, Bronislav Koska 1 SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ SOFTWARE FOR PROCESSING OF POINT CLOUDS FROM LASER SCANNING Martin Štroner, Bronislav Koska 1 Abstract At the department of special geodesy is

Více

Novinky verze SPIRIT 2015

Novinky verze SPIRIT 2015 Novinky verze SPIRIT 2015 Ostění pro okna a dveře (ZAK) Ve SPIRITu můžete použít každý ZAK komponent přímo z Prohlížeče komponentů způsobem drag and drop, kromě ostění oken a dveří. Ve SPIRITu 2015 máte

Více

Delphi podstata, koncepce a metody MDI aplikace

Delphi podstata, koncepce a metody MDI aplikace Delphi podstata, koncepce a metody MDI aplikace Bc. Tomáš Selucký, Ústav statistiky a operačního výzkumu, Provozně ekonomická fakulta, Mendelova zemědělská a lesnická univerzita v Brně, selucky@selucky.com

Více

TECHNICKÉ PREZENTACE

TECHNICKÉ PREZENTACE VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ TECHNICKÉ PREZENTACE Tvorba animací v rámci prezentace Ing. Pavel Smutný, Ph.D. Ostrava 2013 Ing. Pavel Smutný, Ph.D. Vysoká škola báňská

Více

Cvičení 6 z předmětu CAD I PARAMETRICKÉ 3D MODELOVÁNÍ VÝKRES

Cvičení 6 z předmětu CAD I PARAMETRICKÉ 3D MODELOVÁNÍ VÝKRES Cvičení 6 z předmětu CAD I PARAMETRICKÉ 3D MODELOVÁNÍ VÝKRES Cílem cvičení je osvojit si na jednoduchém modelu odlitého obrobku základní postupy při tvorbě výkresu.obrobek je vytvořen z předem vytvořeného

Více

Obsah. Část I Začínáme s jazykem AppleScript

Obsah. Část I Začínáme s jazykem AppleScript Obsah Úvod... 13 Je tato kniha pro vás?...13 Jaká témata kniha pokrývá?...13 Proč je text vytištěný tolika různými druhy písma a k čemu jsou všechny ty podivné značky?...15 Zpětná vazba od čtenářů...16

Více

Návrh aplikace. Project Westpon. Inteligentní simulátor budov. Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich

Návrh aplikace. Project Westpon. Inteligentní simulátor budov. Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich Návrh aplikace Project Westpon Inteligentní simulátor budov Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich . Úvod.. Účel dokumentu Tento dokument má za účel detailně popsat návrh

Více

Základní ovládání aplikace

Základní ovládání aplikace Základní ovládání aplikace Základem ovládání aplikace je jednoduchý toolbar (panel nástrojů) ve spodní části obrazovky, který umožňuje přepínání mezi jednotlivými obrazovkami aplikace. Jsou zde zobrazeny

Více

Obsah. Seznámení s prostředím Excelu. Poděkování 25 O přiloženém CD 26 Co je na CD 26 Použití CD 26 Systémové požadavky 26 Podpora 27

Obsah. Seznámení s prostředím Excelu. Poděkování 25 O přiloženém CD 26 Co je na CD 26 Použití CD 26 Systémové požadavky 26 Podpora 27 Obsah Poděkování 25 O přiloženém CD 26 Co je na CD 26 Použití CD 26 Systémové požadavky 26 Podpora 27 Konvence použité v této knize 28 Textové konvence 28 Grafické konvence 28 ČÁST 1 Seznámení s prostředím

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Úvod...12 Součásti aplikace... 12 Použité konvence... 13

Úvod...12 Součásti aplikace... 12 Použité konvence... 13 Obsah 1 2 Úvod...12 Součásti aplikace... 12 Použité konvence... 13 1. Instalace a nastavení...15 1.1 Než začnete instalovat... 16 1.2 Instalace... 16 Průběh... 17 1.3 Oprava instalace... 18 1.4 Odinstalování

Více

LuxRiot uživatelský manuál verze 1.6.12. Uživatelský manuál Verze 1.6.12. -1-2008, Stasa s.r.o.,pokorného 14, 190 00, PRAHA

LuxRiot uživatelský manuál verze 1.6.12. Uživatelský manuál Verze 1.6.12. -1-2008, Stasa s.r.o.,pokorného 14, 190 00, PRAHA Uživatelský manuál Verze 1.6.12-1- 2008, Stasa s.r.o.,pokorného 14, 190 00, PRAHA LuxRiot je softwarový balík, určený pro sledování a ukládání dat z kamer. Umožňuje přijímat data z IP kamer a video serverů

Více

Obsah. Kapitola 1 Stažení a instalace... 13. Kapitola 2 Orientace v programu a základní nastavení... 23. Úvod... 9

Obsah. Kapitola 1 Stažení a instalace... 13. Kapitola 2 Orientace v programu a základní nastavení... 23. Úvod... 9 Obsah Úvod......................................................... 9 Co vás čeká a co GIMP umí............................................... 9 Co s GIMPem dokážete?............................................................10

Více

TVORBA VÝROBNÍ DOKUMENTACE CV

TVORBA VÝROBNÍ DOKUMENTACE CV Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní TVORBA VÝROBNÍ DOKUMENTACE CV Návody do cvičení předmětu Výrobní dokumentace v systému CAD Dr. Ing. Jaroslav Melecký Ostrava 2011 Tyto studijní

Více

Propojení systému MICROPEL a inteligentní elektroinstalace ABB Ego-n

Propojení systému MICROPEL a inteligentní elektroinstalace ABB Ego-n Propojení systému MICROPEL a inteligentní elektroinstalace ABB Ego-n podpůrná knihovna Egonex.lib program CA4EGNsetup MICROPEL s.r.o Tomáš Navrátil 10 / 2010 1 propojení systému MICROPEL a Ego-n 1 2 propojení

Více

Změny ve verzi 6.0.4.33000 o proti verzi 5.5.3.30333

Změny ve verzi 6.0.4.33000 o proti verzi 5.5.3.30333 Změny ve verzi 6.0.4.33000 o proti verzi 5.5.3.30333 Důležitá vylepšení: 1. Byl přepracován a výrazně vylepšen dialog Editování SPI. Hlavní změny jsou: Byl vylepšen vzhled dialogu. V dialogu byly umožněny

Více

Manuál k aplikaci WANAS

Manuál k aplikaci WANAS Manuál k aplikaci WANAS OBSAH 1 DŮLEŽITÉ INFORMACE PRO PRÁCI V NOVÉ VERZI APLIKACE WANAS.. 2 2 PROSTOROVÁ DATA... 3 2.1 POPIS HLAVNÍCH FUNKCÍ... 3 2.2 PRÁCE S DEFINIČNÍM BODEM SEGMENTU... 4 2.3 PRÁCE S

Více

Obsah. Začínáme Viditelné součásti programu Simulace. WOP Menu CNC řízení. CNC Programy. Exec. Grafické okno. Strojní panel. 3D Model.

Obsah. Začínáme Viditelné součásti programu Simulace. WOP Menu CNC řízení. CNC Programy. Exec. Grafické okno. Strojní panel. 3D Model. F2000 WOP - Page 1 of 51 Začínáme Viditelné součásti programu Simulace Strojní panel 3D Model WOP CNC řízení CNC Programy Přípravné funkce Pomocné funkce Pevný formát CNC programu Volný formát Parametrické

Více

Návrh programu v Black Box Component Builderu s využitím architektury Model View Controller

Návrh programu v Black Box Component Builderu s využitím architektury Model View Controller Návrh programu v Black Box Component Builderu s využitím architektury Model View Controller Gustav Hrudka Katedra měřicí a řídicí techniky, VŠB Technická univerzita v Ostravě, tř. 17. listopadu, 708 33

Více

MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress

MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress www.webdevel.cz Webdevel s.r.o. IČ 285 97 192 DIČ CZ28597192 W www.webdevel.cz E info@webdevel.cz Ostrava Obránců míru 863/7 703 00 Ostrava Vítkovice M 603

Více

VYTVÁŘENÍ OBSAHU KURZŮ

VYTVÁŘENÍ OBSAHU KURZŮ VYTVÁŘENÍ OBSAHU KURZŮ Mgr. Hana Rohrová Mgr. Linda Huzlíková Ing. Martina Husáková Fakulta informatiky a managementu Univerzity Hradec Králové Projekt je spolufinancován Evropským sociálním fondem a státním

Více

Volby a Referenda. 2013 ALIS spol. s r.o.

Volby a Referenda. 2013 ALIS spol. s r.o. 21.10.2013 2 Obsah 1 KEOX - Volby 4 2 Postup zpracování 5 3 Číselníky a parametry 9 3.1 Číselníky-přehled... 9 3.2 Číselníky-popis... 9 3.3 Parametry... 10 4 Metodika a legislativa 12 4.1 Úvod... 12 pojmy

Více

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

Více

M I S Y S - W E B. Intranet řešení systému MISYS. Verze 9.00. Příručka uživatele

M I S Y S - W E B. Intranet řešení systému MISYS. Verze 9.00. Příručka uživatele M I S Y S - W E B Intranet řešení systému MISYS Verze 9.00 Příručka uživatele GEPRO s.r.o. Září 2008 Copyright GEPRO s.r.o. 2008 Ochranné známky GEPRO spol. s r.o. KOKEŠ, MISYS Ochranné známky Microsoft

Více

Fotogalerie pro redakční systém Marwel Obscura v. 2.0

Fotogalerie pro redakční systém Marwel Obscura v. 2.0 Fotogalerie pro redakční systém Marwel Obscura v. 2.0 postupy a doporučení pro práci redaktorů verze manuálu: 1.1 QCM, s. r. o., březen 2011 Podpora: e-mail: podpora@qcm.cz tel.: +420 538 702 705 Obsah

Více

TVORBA VÝROBNÍ DOKUMENTACE

TVORBA VÝROBNÍ DOKUMENTACE Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní TVORBA VÝROBNÍ DOKUMENTACE Učební text předmětu Výrobní dokumentace v systému CAD Dr. Ing. Jaroslav Melecký Ostrava 2011 Tyto studijní materiály

Více

Aplikované úlohy Solid Edge

Aplikované úlohy Solid Edge Aplikované úlohy Solid Edge SPŠSE a VOŠ Liberec Ing. Jana Kalinová [ÚLOHA 36 ÚVOD DO PROSTŘEDÍ SESTAVA A SVAŘENEC] 1 CÍL KAPITOLY. Cílem této kapitoly je co nejrychlejší zorientování se v novém modulu

Více

MAPOVÉ OKNO GSWEB. Nápověda. Pohyb v mapovém okně Výběr v mapovém okně. Panel Ovládání Panel Vrstvy. Tisk Přehledová mapa Redlining Přihlásit jako

MAPOVÉ OKNO GSWEB. Nápověda. Pohyb v mapovém okně Výběr v mapovém okně. Panel Ovládání Panel Vrstvy. Tisk Přehledová mapa Redlining Přihlásit jako GSWEB Nápověda 1. Mapové okno Pohyb v mapovém okně Výběr v mapovém okně 2. Ovládací panel a panel vrstev Panel Ovládání Panel Vrstvy 3. GSWeb - roletové menu Tisk Přehledová mapa Redlining Přihlásit jako

Více

Office 2013. podrobný průvodce. Tomáš Šimek

Office 2013. podrobný průvodce. Tomáš Šimek Office 2013 podrobný průvodce Tomáš Šimek Seznámení se společnými postupy při práci s dokumenty Office Popis základních a pokročilejších postupů při práci s Wordem, Excelem, PowerPointem a OneNote Možnosti

Více

Editor formulářů Money S3

Editor formulářů Money S3 Editor formulářů Money S3 Obsah I Obsah Část I 2 1 Co je Editor formulářů... 2 Co je to formulář... 3 Struktura formuláře... 3 Nastavení tisku... v Money S3 3 Základní ovládání... 4 Svislá lišta ikon...

Více

MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ

MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ MANUÁL MOBILNÍ APLIKACE GOLEM PRO OPERAČNÍ SYSTÉM ANDROID 4.X A VYŠŠÍ 1 OBSAH 1.Popis... 3 2.Ovládání aplikace...3 3.Základní pojmy... 3 3.1.Karta...3 3.2.Čtečka...3 3.3.Skupina...3 3.4.Kalendář...3 3.5.Volný

Více

Polygonální objekty v Rhinoceros Volné modelování

Polygonální objekty v Rhinoceros Volné modelování přednáška 10 Polygonální objekty v Rhinoceros Volné modelování 10.1 Polygonální objekty v Rhinoceros Jak již bylo zmíněno v první přednášce, program Rhinoceros je plošný modelář a při popisu svých objektů

Více

MATURITNÍ PRÁCE dokumentace

MATURITNÍ PRÁCE dokumentace MATURITNÍ PRÁCE dokumentace Jídelníček SŠIEŘ pro Android Martin Bartoň školní rok: 2012/2013 obor: třída: Počítačové systémy PS4.A ABSTRAKT Práce je zaměřená na problematiku tvorby Android aplikací,

Více

Rozdìlení poèítaèové grafiky

Rozdìlení poèítaèové grafiky Rozdìlení poèítaèové grafiky» vektorová grafika» bitmapová grafika» 3D grafika» grafika pro prezentaci» návrh grafických uživatelských rozhraní Vektorová grafika základním prvkem vektorové grafiky je objekt

Více

Programování v jazyku C# II. 4.kapitola

Programování v jazyku C# II. 4.kapitola Programování v jazyku C# II. 4.kapitola Obsah GDI + Vlastní kontrolky 2/37 GDI+ Graphics Device Interface Služba Windows framework poskytuje obalující třídy Umožňuje programování 2D grafiky bez znalosti

Více

E-ZAK, verze M-2 jednoduchý elektronický nástroj pro veřejné zakázky

E-ZAK, verze M-2 jednoduchý elektronický nástroj pro veřejné zakázky E-ZAK, verze M-2 jednoduchý elektronický nástroj pro veřejné zakázky uživatelská příručka pro zadavatele, verze 1.2 2008 QCM, s.r.o. Obsah Úvod......5 Požadavky na provoz......6 Přihlášení......6 Odhlášení......7

Více

SEZNÁMENÍ S PROGRAMEM

SEZNÁMENÍ S PROGRAMEM SEZNÁMENÍ S PROGRAMEM Základní informace pro každého Následující popis je určen pro stručné a rychlé seznámení s programem a jeho ovládáním. Detailnější vysvětlení funkcí programu naleznete v českém i

Více

Parametrizace, harmonogram

Parametrizace, harmonogram Parametrizace, harmonogram Modul slouží pro parametrizování informačního systému a pro vytváření časového plánu akademického roku na fakultě. Fakulty si v něm zadávají a specifikují potřebné "časové značky"

Více

Nástroj WebMaker TXV 003 28.01 první vydání Únor 2009 změny vyhrazeny

Nástroj WebMaker TXV 003 28.01 první vydání Únor 2009 změny vyhrazeny Nástroj WebMaker TXV 003 28.01 první vydání Únor 2009 změny vyhrazeny 1 TXV 003 28.01 Historie změn Datum Vydání Popis změn Únor 2009 1 První verze (odpovídá stavu nástroje ve verzi 1.6.2) Obsah 1 Úvod...3

Více

Metodika. Oznámení o vykonávání působností v agendě ve smyslu zákona č. 111/2009. Sb., o základních registrech. Verze 1.6

Metodika. Oznámení o vykonávání působností v agendě ve smyslu zákona č. 111/2009. Sb., o základních registrech. Verze 1.6 Metodika Oznámení o vykonávání působností v agendě ve smyslu zákona č. 111/2009 Sb., o základních registrech Verze 1.6 AIS RPP Působnostní určeno pro oznamovatele Oznámení o vykonávání působností č. 111/2009

Více

Kapitola 1: Co je Delphi 19. Překlad projektu 23

Kapitola 1: Co je Delphi 19. Překlad projektu 23 Obsah Úvod 15 Pro koho je tato kniha 15 Obsah jednotlivých kapitol knihy 16 Typografické konvence 17 Použité ikony 17 Kontakt na autora 17 Poděkování 18 Kapitola 1: Co je Delphi 19 Verze Delphi 19 Co je

Více

Integrovaný Ekonomický Systém Účetnictví - IES WIN 2006. Úvod...5

Integrovaný Ekonomický Systém Účetnictví - IES WIN 2006. Úvod...5 Úvod...5 Přehled funkcí modulu účetnictví...6 Účtový rozvrh...11 Výsledovka...12 Rozvaha...12 Saldokonto...12 Druh dokladu...12 Zpracování daňového dokladu...12 Nastavení zpracování DPH (období, sazeb,

Více

20. Projekt Domácí mediotéka

20. Projekt Domácí mediotéka Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý

Více

TECHNICKÁ UNIVERZITA V LIBERCI FAKULTA UMĚNÍ A ARCHITEKTURY. Studijní program: B8206 Výtvarná umění. Obor: Vizuální komunikace BAKALÁŘSKÁ PRÁCE

TECHNICKÁ UNIVERZITA V LIBERCI FAKULTA UMĚNÍ A ARCHITEKTURY. Studijní program: B8206 Výtvarná umění. Obor: Vizuální komunikace BAKALÁŘSKÁ PRÁCE TECHNICKÁ UNIVERZITA V LIBERCI FAKULTA UMĚNÍ A ARCHITEKTURY Studijní program: B8206 Výtvarná umění Obor: Vizuální komunikace BAKALÁŘSKÁ PRÁCE JAN VALENTA Vedoucí bakalářské práce: Doc. Stanislav Zippe

Více

Manuál administrátora FMS...2

Manuál administrátora FMS...2 Manuál administrátora Manuál administrátora FMS...2 Úvod... 2 Schéma aplikace Form Management System... 2 Úvod do správy FMS... 3 Správa uživatelů... 3 Práva uživatelů a skupin... 3 Zástupci... 4 Avíza

Více

Hydroprojekt CZ a.s. WINPLAN systém programů pro projektování vodohospodářských liniových staveb. HYDRONet 3. Modul EDITOR STYLU

Hydroprojekt CZ a.s. WINPLAN systém programů pro projektování vodohospodářských liniových staveb. HYDRONet 3. Modul EDITOR STYLU Hydroprojekt CZ a.s. systém programů pro projektování vodohospodářských liniových staveb HYDRONet 3 W I N P L A N s y s t é m p r o g r a m ů p r o p r o j e k t o v á n í v o d o h o s p o d á ř s k ý

Více

Metodická příručka pro učitele. InspIS SET modul školní testování

Metodická příručka pro učitele. InspIS SET modul školní testování Metodická příručka pro učitele InspIS SET modul školní testování Tato Metodická příručka pro učitele byla zpracována v rámci projektu Národní systém inspekčního hodnocení vzdělávací soustavy v České republice

Více

Příklad generátor fází výstavby a TDA mikro

Příklad generátor fází výstavby a TDA mikro SCIA CZ, s. r. o. Slavíčkova 1a 638 00 Brno tel. 545 193 526 545 193 535 fax 545 193 533 E-mail info.brno@scia.cz www.scia.cz Systém programů pro projektování prutových a stěnodeskových konstrukcí NEXIS

Více

Naučit se, jak co nejsnadněji přejít od verze TopoLu pro Windows k verzi TopoL xt. Cílem není vysvětlení všech možností programu.

Naučit se, jak co nejsnadněji přejít od verze TopoLu pro Windows k verzi TopoL xt. Cílem není vysvětlení všech možností programu. Školení programu TopoL xt Přechod na TopoL xt z programu TopoL pro Windows Cíl: Obsah: Naučit se, jak co nejsnadněji přejít od verze TopoLu pro Windows k verzi TopoL xt. Cílem není vysvětlení všech možností

Více

MAPOVÁNÍ BIOTOPŮ BIOTOP ARCGIS SERVER

MAPOVÁNÍ BIOTOPŮ BIOTOP ARCGIS SERVER MAPOVÁNÍ BIOTOPŮ Aplikace Mapování biotopů je určená pro on-line aktualizaci vrstvy mapování biotopů 1) (dále jen VMB) pořízené v létech 2001 až 2004 pro celé území ČR. Aktualizace byla zahájena v roce

Více

BRICSCAD V13 X-Modelování

BRICSCAD V13 X-Modelování BRICSCAD V13 X-Modelování Protea spol. s r.o. Makovského 1339/16 236 00 Praha 6 - Řepy tel.: 235 316 232, 235 316 237 fax: 235 316 038 e-mail: obchod@protea.cz web: www.protea.cz Copyright Protea spol.

Více

elearning tvorba studijních opor

elearning tvorba studijních opor Akademický informační systém Slovenská technická univerzita v Bratislavě elearning tvorba studijních opor Svazek 15 Verze: 0.60 Datum: 10. března 2016 Autor: Jitka Šedá, Martin Tyllich Obsah Seznam obrázků

Více

Analýza dat na PC I.

Analýza dat na PC I. Lékařská a Přírodovědecká fakulta, Masarykova univerzita Analýza dat na PC I. Základy programu STATISTICA IBA výuka 2008/2009 StatSoft, Inc., http://www.statsoft.com/, http://www.statsoft.cz Verze pro

Více

MAWIS. Uživatelská dokumentace

MAWIS. Uživatelská dokumentace MAWIS Uživatelská dokumentace Verze 27-11-2008 OBSAH OBSAH... 2 1) O MAPOVÉM SERVERU... 3 2) POTŘEBNÁ NASTAVENÍ... 3 Hardwarové požadavky... 3 Softwarové požadavky... 3 Nastavení Internet Exploreru:...

Více

UZ modul VVISION poslední změna 1. 3. 2013

UZ modul VVISION poslední změna 1. 3. 2013 UZ modul VVISION poslední změna 1. 3. 2013 Obsah 1 Základní popis... - 2-1.1 Popis aplikace... - 2-1.2 Zdroje obrazových dat... - 2-1.3 Uložení dat... - 2-1.4 Funkcionalita... - 2-1.4.1 Základní soubor

Více

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

DATA ARTICLE. AiP Beroun s.r.o.

DATA ARTICLE. AiP Beroun s.r.o. DATA ARTICLE AiP Beroun s.r.o. OBSAH 1 Úvod... 1 2 Vlastnosti Data Article... 1 2.1 Požadavky koncových uživatelů... 1 2.2 Požadavky na zajištění bezpečnosti a důvěryhodnosti obsahu... 1 3 Implementace

Více

NEXIS 32 rel. 3.50. Generátor fází výstavby TDA mikro

NEXIS 32 rel. 3.50. Generátor fází výstavby TDA mikro SCIA CZ, s. r. o. Slavíčkova 1a 638 00 Brno tel. 545 193 526 545 193 535 fax 545 193 533 E-mail info.brno@scia.cz www.scia.cz Systém programů pro projektování prutových a stěnodeskových konstrukcí NEXIS

Více

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro administrátora krizového řízení

Provozní dokumentace. Seznam orgánů veřejné moci. Příručka pro administrátora krizového řízení Provozní dokumentace Seznam orgánů veřejné moci Příručka pro administrátora krizového řízení Vytvořeno dne: 15. 6. 2011 Aktualizováno: 22. 10. 2014 Verze: 2.2 2014 MVČR Obsah Příručka pro administrátora

Více

Hierarchický model. 1995-2013 Josef Pelikán CGG MFF UK Praha. pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 16

Hierarchický model. 1995-2013 Josef Pelikán CGG MFF UK Praha. pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 16 Hierarchický model 1995-2013 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ 1 / 16 Hierarchie v 3D modelování kompozice zdola-nahoru složitější objekty se sestavují

Více

Seznámení Corel Draw. PDF vytvořeno zkušební verzí pdffactory Pro www.fineprint.cz. Panel Vlastnosti. panel základních kreslicích nástrojů

Seznámení Corel Draw. PDF vytvořeno zkušební verzí pdffactory Pro www.fineprint.cz. Panel Vlastnosti. panel základních kreslicích nástrojů Seznámení Corel Draw Okno programu Objeví se po spuštění, většinou je připraven nový, prázdný dokument, obvyklá velikost A4. Pamatujme, že na běžném monitoru se stránka zobrazí menší, takže při tisku budou

Více

ÚVOD 3 SEZNÁMENÍ SE SYSTÉMEM 4

ÚVOD 3 SEZNÁMENÍ SE SYSTÉMEM 4 ÚVOD 3 SEZNÁMENÍ SE SYSTÉMEM 4 JEDNODUCHÉ PŘIHLÁŠENÍ 4 ADMINISTRAČNÍ PROSTŘEDÍ 5 PŘEPÍNÁNÍ JAZYKOVÉ VERZE 5 POLOŽKY HORNÍHO MENU 5 DOPLŇKOVÉ POLOŽKY MENU: 6 STROM SE STRÁNKAMI, RUBRIKAMI A ČLÁNKY 7 TITULNÍ

Více

Program pro flexibilní tvorbu evidencí. VIKLAN - Evidence. Uživatelská příručka. pro seznámení se základními možnostmi programu

Program pro flexibilní tvorbu evidencí. VIKLAN - Evidence. Uživatelská příručka. pro seznámení se základními možnostmi programu Program pro flexibilní tvorbu evidencí VIKLAN - Evidence Uživatelská příručka pro seznámení se základními možnostmi programu Vlastimil Kubínek, Ing. Josef Spilka VIKLAN - Evidence Verse 1.11.8.1 Copyright

Více

Vysoké učení technické v Brně Fakulta elektrotechniky a komunikačních technologií

Vysoké učení technické v Brně Fakulta elektrotechniky a komunikačních technologií Vysoké učení technické v Brně Fakulta elektrotechniky a komunikačních technologií http://www.utee.feec.vutbr.cz/~fialap/vyuka/cpl.html Kolejní 2906/4 612 00 Brno Ovládání Builderu C++ pro kurz BSCP vytvořila

Více

Helios RED a Internetový obchod

Helios RED a Internetový obchod (pracovní verze!) Helios RED a Internetový obchod Obsah dokumetace: 1. Úvod 2. Evidované údaje na skladové kartě 3. Přenos skladových karet z Helios RED do e-shopu 4. Přenos objednávek z e-shopu do Helios

Více

Word 2007 Word 2007 egon. Spuštění, vzhled, zobrazení dokumentu

Word 2007 Word 2007 egon. Spuštění, vzhled, zobrazení dokumentu Word 2007 Word 2007 egon Spuštění, vzhled, zobrazení dokumentu Jan Málek 30.4.2010 Word 2007 V roce 2007 přichází firma Microsoft s novou verzí kancelářského balíku MS Office 2007 a tedy i textového editoru

Více

Tabulkové processory MS Excel (OpenOffice Calc)

Tabulkové processory MS Excel (OpenOffice Calc) Maturitní téma: Tabulkové processory MS Excel (OpenOffice Calc) Charakteristika tabulkového editoru Tabulkový editor (sprematuritníadsheet) se používá všude tam, kde je třeba zpracovávat data uspořádaná

Více

POPIS PROSTŘEDÍ PROGRAMU GIMP 2. Barvy 2. Okno obrázku 4 ZÁKLADNÍ ÚPRAVA FOTOGRAFIÍ V GRAFICKÉM EDITORU 6. Změna velikosti fotografie 6

POPIS PROSTŘEDÍ PROGRAMU GIMP 2. Barvy 2. Okno obrázku 4 ZÁKLADNÍ ÚPRAVA FOTOGRAFIÍ V GRAFICKÉM EDITORU 6. Změna velikosti fotografie 6 Obsah POPIS PROSTŘEDÍ PROGRAMU GIMP 2 Barvy 2 Okno obrázku 4 ZÁKLADNÍ ÚPRAVA FOTOGRAFIÍ V GRAFICKÉM EDITORU 6 Změna velikosti fotografie 6 Ořezání obrázku 7 TRANSFORMACE 9 Rotace 9 Překlopení 11 Perspektiva

Více

Surfels: Surface Elements as Rendering Primitives

Surfels: Surface Elements as Rendering Primitives Surfels: Surface Elements as Rendering Primitives Výzkum v počítačové grafice Martin Herodes Nevýhody plošných primitiv Reprezentace složitých objektů pomocí plošných primitiv (trojúhelníků, čtyřúhelníků

Více

Alfanumerické displeje

Alfanumerické displeje Alfanumerické displeje Alfanumerické displeje jsou schopné zobrazovat pouze alfanumerické údaje (tj. písmena, číslice) a případně jednoduché grafické symboly definované v základním rastru znaků. Výhoda

Více

Ovladač Fiery Driver pro systém Mac OS

Ovladač Fiery Driver pro systém Mac OS 2016 Electronics For Imaging, Inc. Informace obsažené v této publikaci jsou zahrnuty v Právní oznámení pro tento produkt. 30. května 2016 Obsah Ovladač Fiery Driver pro systém Mac OS Obsah 3...5 Fiery

Více

Elektronická spisová služba

Elektronická spisová služba Univerzitní informační systém Univerzita Konštantína Filozofa v Nitre Elektronická spisová služba Svazek 19 Verze: 0.49 Datum: 11. března 2016 Autor: Jitka Šedá, Martin Tyllich Obsah Seznam obrázků 5

Více

Perspektiva jako matematický model objektivu

Perspektiva jako matematický model objektivu Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Semestrální práce z předmětu KMA/MM Perspektiva jako matematický model objektivu Martin Tichota mtichota@students.zcu.cz

Více

1. Uživatelská úprava příkazů I.

1. Uživatelská úprava příkazů I. 1. Uživatelská úprava příkazů I. Studijní cíl Tento blok kurzu vysvětluje, jak zadávat příkazy operačního systému během práce v AutoCADu a jak vytvářet zkratky pro často používané příkazy a dočasně předefinovat

Více

Základní úlohy: vytvoření dokumentu...13

Základní úlohy: vytvoření dokumentu...13 3 KAPITOLA 1 Základní úlohy: vytvoření dokumentu....................13 Přehled uživatelského rozhraní.......................................15 Změna pozadí a velikosti plochy scény.................................17

Více

Rozdílová dokumentace k ovládání IS KARAT.net

Rozdílová dokumentace k ovládání IS KARAT.net Dokumentace k IS KARAT.net Rozdílová dokumentace k ovládání IS KARAT.net programový modul: Rozdílová dokumentace k ovládání IS KARAT.net OBSAH: 1 ÚVOD... 3 2 PŘIHLAŠOVACÍ DIALOG... 4 3 NAVIGACE... 5 3.1

Více

Popis prostředí MOSAIC - 2 - 1. Programové prostředí MOSAIC nastavení prostředí. Po spuštění Mosaiku se objeví okno Výběr skupiny projektů

Popis prostředí MOSAIC - 2 - 1. Programové prostředí MOSAIC nastavení prostředí. Po spuštění Mosaiku se objeví okno Výběr skupiny projektů Popis prostředí MOSAIC Autoři: Ing. Josef Kovář Ing. Zuzana Prokopová Ing. Ladislav Šmejkal, CSc. Partneři projektu: Rostra s.r.o. Trimill, a.s. Výukový materiál byl vytvořen v rámci projektu Implementace

Více

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,

Více

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

Word 2013. podrobný průvodce. Tomáš Šimek

Word 2013. podrobný průvodce. Tomáš Šimek Word 2013 podrobný průvodce Tomáš Šimek Přehled funkcí a vlastností nejnovější verze textového editoru Word Jak psát na počítači správně, úpravy a formátování textu a stránky Zpracování dalších objektů

Více

Univerzita Palackého v Olomouci. Služby spojené s Active Directory

Univerzita Palackého v Olomouci. Služby spojené s Active Directory Moderní učitel CZ.1.07/1.3.00/51.0041 Univerzita Palackého v Olomouci Pedagogická fakulta Služby spojené s Active Directory doc. PhDr. Milan Klement, Ph.D. Olomouc 2015 Publikace vznikla v rámci ESF projektu

Více

Využití ICT techniky především v uměleckém vzdělávání. Akademie - VOŠ, Gymn. a SOŠUP Světlá nad Sázavou

Využití ICT techniky především v uměleckém vzdělávání. Akademie - VOŠ, Gymn. a SOŠUP Světlá nad Sázavou Datum: 1. 12. 2013 Projekt: Registrační číslo: Číslo DUM: Škola: Jméno autora: Název sady: Název práce: Předmět: Ročník: Obor: Časová dotace: Vzdělávací cíl: Pomůcky: Využití ICT techniky především v uměleckém

Více

Programování v Javě I. Únor 2009

Programování v Javě I. Únor 2009 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

Uživatelská příručka Evidence příchozí a odchozí pošty a elektronický archiv. V prostředí společnosti. Pražská vodohospodářská společnost a.s.

Uživatelská příručka Evidence příchozí a odchozí pošty a elektronický archiv. V prostředí společnosti. Pražská vodohospodářská společnost a.s. Uživatelská příručka Evidence příchozí a odchozí pošty a elektronický archiv V prostředí společnosti Pražská vodohospodářská společnost a.s. Obsah 1. ÚVOD... 5 2. PROSTŘEDÍ WORKSPACE... 5 2.1 TECHNOLOGIE

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

Více

Adash. Provozní tvary kmitů ver.5.00

Adash. Provozní tvary kmitů ver.5.00 Provozní tvary kmitů ver.5.00 1 Obsah PROVOZNÍ TVARY KMITŮ VER.5.00 1 OBSAH 2 INSTALACE 4 Klíč HASP 4 PTK PANEL - SPRÁVCE PROJEKTU 5 Základní moduly: 5 Vytvoření nového projektu: 5 Otevření projektu: 5

Více

Program Montážky manuál uživatele

Program Montážky manuál uživatele Program Montážky manuál uživatele -1- v 1.0 Obsah 1. Úvod... 3 2. Technické informace... 3 2.1. Systémové požadavky... 3 2.2. Instalace programu... 3 2.3. Zkušební verze programu... 3 2.4. Přechod na plnou

Více

Obr. 1 - Seznam smluv

Obr. 1 - Seznam smluv Modul Evidence smluv je určen pro správu smluvních dokumentů na VUT v Brně. S tímto modulem úzce souvisí modul Smluvní partneři, ve kterém se spravují smluvní strany smluvních dokumentů. Pro nastavení

Více

Uživatelská příručka pro program

Uživatelská příručka pro program NEWARE Uživatelský manuál Uživatelská příručka pro program ve spojení se zabezpečovacím systémem strana 1 Uživatelský manuál NEWARE strana 2 NEWARE Uživatelský manuál Vaše zabezpečovací ústředna DIGIPLEX

Více