Realistické zobrazení terénu

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

Download "Realistické zobrazení terénu"

Transkript

1 MASARYKOVA UNIVERSITA FAKULTA INFORMATIKY Realistické zobrazení terénu DIPLOMOVÁ PRÁCE Bc. Martin Červinka i

2 1. ÚVOD Brno, Jaro 2007 ii

3 Prohlášení Prohlašuji, že tato diplomová 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. Poděkování Na tomto místě bych chtěl poděkovat Mgr. Vítu Kovalčíkovi, vedoucímu mé diplomové práce, za pomoc a vedení při tvorbě této práce. ii

4 Shrnutí Diplomová práce se zabývá počítačovými technikami zobrazování terénu s cílem porovnat jejich kvalitu z hlediska výsledného vizuálního efektu. Dále jsou techniky porovnávány po stránce nároků na paměť a výkonu grafické karty a také z uživatelského pohledu grafika, který těmito technikami terén vytváří. Jsou zde uvedeny i autorovy nové přístupy k dané problematice. Klíčová slova iii

5 zobrazení terénu, texturovací technika, High Level Shading Language, 3ds Max, textury Obsah 1 Úvod Zobrazení terénu Mapování textur Základní texturovací techniky Globální přístup Detailní přístup High level Shading Languagety Datové typy Konstruktory Přetypování Struktury Samplers Vestavěné funkce Shader Inputs Uniform inputs Varying inputs Pokročilé texturovací techniky Multitexturing Lineární mícháni povrchů (Linear) Lineární míchání povrchů s alfa kanálem (Linear Alpha) Smooth Step míchání povrchů Modelování terénu Autodesk 3ds Max Tvorba textur Adobe Photoshop Experimentální aplikace Plugin Terrain Exporter Prohlížeč Terrain Explorer Testování Závěr...43 Příloha A Obsah doprovodného DVD...45 iv

6 v

7 Kapitola 1 1 Úvod Úvod Zobrazení terénu je v počítačové grafice jednou z často řešených otázek a prolíná se mnoha jejími oblastmi. Ve vývoji zobrazování terénu lze sledovat nejen vzrůstající úroveň počítačové techniky a programování a především zvyšující se požadavky uživatelů aplikací na reálný dojem z vizualizace krajiny. Názorně je to vidět u počítačových her. Přestože je jejich vliv občas kritizován ze společenského hlediska, pro počítačovou grafiku je nepřehlédnutelné, že přispěly ke vzniku vysoce efektivních algoritmů. Výše uvedené téma diplomové práce jsem si vybral z důvodu mého zájmu o tuto problematiku. O ni se zajímám již od roku 2003, kdy jsem se snažil pro svoji potřebu vytvořit pohlednější krajinu, než bylo běžné v tehdejších počítačových hrách. Ze začátku jsem byl v tomto snažení spíše v roli grafika než programátora. Z jistou nadsázkou lze o mé práci říci, že došlo v celku k výjimečné situaci, kdy se spojila činnost programátora i grafika do jedné osoby. Tato pozice je velmi časově náročná. Přináší však výhodu v podobě možnosti okamžitě ověřit vizuální kvalitu reálné scény a kontrolovat obtížnost aplikace dané techniky. Omezujícím faktorem vizuální kvality bylo jednoznačně práce s texturami. Již od začátku mi bylo zřejmé, že rozsáhlý a vizuálně zajímavý terén mohou s běžně známými technikami vytvářet pouze zkušení grafici nebo celé týmy odborníků. Bylo nutno využít pokročilejších technik, které by lépe využily moderních grafických karet za účelem realistického zobrazení a především zmenšení nároků na odbornost a časovou náročnost tvorby terénu. Při práci jsem narážel na nedostatek veřejně přístupných informacích. Ať už se jednalo o samotné prostředky, které nám nabízí moderní grafické karty nebo nově se vyvíjející techniky zobrazování terénu. Na druhou stranu mě tato informační bariéra donutila postupovat v práci vlastními cestami. V určitých fázích řešení problematiky jsem si však uvědomil, že jsem bezděčně dospěl k podobným, někdy dokonce ke stejným postupům jaké používaly přede mnou s jistým časovým náskokem především profesionální týmy. Diplomová práce je členěna do 8 kapitol. Po úvodní kapitole jsou v druhé definovány některé základní pojmy týkající se zobrazení terénu a pak jsou zmíněny obecně známé přístupy texturování. Další kapitola pojmenované High Level Shading Language stručně popisuje programovací jazyk, pomocí které ho lze programovat moderní grafické karty. Základní 1

8 1. ÚVOD znalost této problematiky je do jisté míry podstatná k širšímu porozumění technik, které jsou popsány ve čtvrté kapitole. Většina technik je v současné době více či méně známé. O poslední technice (Smooth Step) autor diplomové práce předpokládá, že dosud nebyla v žádné známé aplikaci použita. Pátá kapitola popisuje praktické zkušenosti a částečně podává rady jak realistický terén modelovat. V šesté kapitole je stručně popsána implementace vlastní aplikace pro nahrání a zobrazení modelů, která sloužila i k testům technik, jež jsou uvedeny v kapitole sedmé. 2

9 Kapitola 2 2 Zobrazení terénu Zobrazení terénu K zobrazení objektů v interaktivní počítačové grafice se používá polygonální reprezentace. Základním prvkem této reprezentace je trojúhelník. K zobrazení terénu se může použít pravidelná nebo nepravidelná trojúhelníková síť. Pravidelná trojúhelníková síť je složena pouze s pravoúhlých rovnoramenných trojúhelníků. To přináší řadu výhod. Mohou se ukládat pouze výškové souřadnice vrcholů, rovinné souřadnice jsou pevně dány pravidelnou čtvercovou mřížkou. Algoritmy pro zmenšování počtu trojúhelníků jsou výrazně jednodušší a méně výpočetně náročné. I vytvoření specializovaných modelovacích nástrojů pro tvorbu terénů je jednodušší a samotná práce v takovýchto programech je rychlejší. Velkou nevýhodou je však o jeden až dva řády větší množství trojúhelníků potřebných k reprezentaci terénu, než v případě ručně modelované nepravidelné trojúhelníkové sítě. K problematickým místům patří cesty, koryta řek a skály. Dokonce nemožné je modelovat převisy a jeskyně. Protože jsou ale tyto situace v krajně spíše výjimečné, lze je řešit individuálně. Popisovat však model jen pomocí trojúhelníkové sítě je velmi nepraktické. Informace jsou uloženy pouze ve vrcholech sítě a výsledná barva povrchu je určena interpolací hodnot z vrcholů daného trojúhelníku. K reálnému popisu by bylo potřeba velmi detailní síť s obrovským množstvím vrcholů. Řadu informací lze však zanedbat nebo zjednodušit a předpřipravit. Tím dochází k úspoře paměti i výpočetního výkonu. K tomuto účelu slouží textury. Texturu lze chápat jako blok paměti nebo pole, které může mít různé rozměry a dimenze. Nejčastěji se používá dvojrozměrné pole pro uložení obrázků. K jednotlivým hodnotám textury se přistupuje pomocí vzorkovací funkce. Vstupními parametry jsou texturovací souřadnice, jejichž počet je dán dimenzí textury. Pomocí texturovacích souřadnice je adresováno příslušné místo v textuře a je vrácena jeho hodnota. 2.1 Mapování textur Proces nanášení textury na povrch tělesa se nazývá mapování textury (texture mapping). Zde budou popsána jen nejpoužívanější mapování 2D textur, které si lze představit jako potahování objektu libovolně elastickou látkou. Na každý vrchol tělesa lze připíchnout 3

10 2. ZOBRAZENÍ TERÉNU jakoukoliv část látky. Tím dochází k propojení textury s objektem a do vrcholu se uloží texturovací souřadnice. Uvnitř trojúhelníku jsou texturovací souřadnice interpolovány. Pro celý povrch je získána informace jaká část textury bude tomuto místu přiřazena. K nanesení textury na objekt už stačí jen získat požadovaná data z textury. K tomu slouží vzorkovací funkce, která libovolným hodnotám texturovacích souřadnic u,v přiřadí hodnoty z textury. Texturovací souřadnice lze přiřazovat vrcholům ručně nebo se může využít některé mapovací funkce, které podle polohy vrcholu x,y,z generují texturovací souřadnice u,v. Žádoucí je taková funkce, která mapuje texturu s co nejmenším zkreslením. Obrázek 2.1 Mapování textur propojení 2D prostoru textury (dole) s 3D objektem 2.2 Základní texturovací techniky V současné době je již možno se velmi dobře vypořádat s hrubým popisem i rozsáhlých terénů pomocí trojúhelníkové sítě. Pro realistické zobrazení je jednoznačným omezením faktorem proces mapování textur. Nejedná se ani tak o samotný princip popsaný v předešlé kapitole, ale o celý proces realistického popisu terénu pomocí textur, který lze označit pojmem texturovací technika. Obtížnost tohoto úkolu stačí demonstrovat na následujícím příkladu paměťové náročnosti zobrazení konkrétní části terénu (obr. 2.2). V dřívější době byly možnosti grafických karet velmi omezené a pomocí jedné techniky nešlo dosáhnout současně takové kvality zobrazení (obr. 2.2(a) a obr. 2.2(c)). 4

11 2. ZOBRAZENÍ TERÉNU (a) 8994 trojúhelníků ~ 0,26 MB (b) Textury s rozlišením 25 bodů na metr ~ 5,96 MB (c) Textury s rozlišením 250 bodů na metr ~ 596 MB Obrázek 2.2: Zobrazení terénu Počet trojúhelníku je pro realistické zobrazení dostačující a nároky na paměť jsou velmi malé. Při použití textur s nízkým rozlišením je však kvalita jednoznačně nedostačující. V druhém případě je situace opačná. Existují dva základní způsoby jak mapovat terén. 5

12 2. ZOBRAZENÍ TERÉNU 2.3 Globální přístup Prvním triviálním způsobem jak mapovat terén je vytvořit jednu obrovskou texturu, která celá pokryje požadovaný blok (obr. 2.3). Používá se klasické rovinné mapování. Pomíjí se skutečnost, že tvorba takovéto textury je velmi složitá a také, že obtíže dané použitým způsobem mapování, který je pro tuto techniku takřka nezbytný. Samotný způsob je však použitelný jen pro velmi omezenou oblast. Nebo se musíme smířit s chybějícími detaily při velkém přiblížení (obr. 2.2(b)). Z větší vzdálenosti však terén může působit velmi reálně. Slabina této techniky se jednoznačně projeví při detailním pohledu na terénu. Při požadavcích na realistické zobrazení je pro rozsáhlé terény pouze tento přístup nepoužitelný. Obrázek 2.3: Myth 2 (1999) - pro celý level je použita jedna textura 2.4 Detailní přístup Druhým způsobem je použití sady detailních textur reprezentují typické části terénu (tráva, hlína, skála ). Detailní textury jsou na terén mapovány individuálně nebo tak, že se na větších plochách neustále opakují. Volba měřítka detailní textury je kompromisem. Pokud bude zabírat malou plochu, dosáhne se vysoké kvality v zobrazení 6

13 2. ZOBRAZENÍ TERÉNU detailů, ale více vyniknou problémy s opakováním a navazováním textur. Jedná se o primitivní způsob komprese. Příliš nevadí ani omezená sada textur, ze které se vybírají povrchy a na mnoha místech se vyskytují totožné fragmenty. Detailních textur mohou být desítky pro velmi širokou škálu povrchů. Obrazových informací je takové množství, že pozorovatel na první pohled nevnímá omezené množství textur. Navíc jedno zopakování nevýrazného motivu v obraze je jen těžko odhalitelné a samotná podobnost dvou tvarů je v přírodě docela obvyklá. Co ovšem vidí pozorovatel okamžitě je naprostá pravidelnost vzniklá několikanásobným zopakováním celé textury, které je patrné při pohledu na terén z větší vzdálenosti. Tento efekt je silně rušivý a nelze se mu při použití dlaždicové techniky prakticky vyhnout (viz obr. 2.4). Obrázek 2.4: Zopakování stejného motivu 2x a 6x Dalším problémem je navazování detailních textur. Napojování stejných textur je dobře známý problém. Více specifický problém je napojování odlišných textur, tak aby přechod mezi povrchy byl reálný. Je to dáno způsobem architektury grafických karet. Klasický způsob nám umožňuje na jeden trojúhelník mapovat pouze jednu texturu. To by znamenalo ostrý přechod mezi různými detailními texturami přes hranu trojúhelníku, což je ve většině případů nepřijatelné. Situace lze řešit speciálními texturami pro přechod mezi požadovanými povrchy (obr. 2.5). Tím je možné dosáhnout kvalitních výsledků, ale zvětšují se nároky na paměť i kvalitu tvorby. 7

14 2. ZOBRAZENÍ TERÉNU Obrázek 2.5: Mafia (2002) - Přechod mezi různými povrchy řešený speciální texturou Přestože způsob detailní texturovací techniky přináší řadu problémů, byl v podstatě jedinou možnou variantou jak detailně vykreslit terén. Například v počítačových hrách, kdy kamera zabírající scénu je totožná s pohledem virtuálního hrdiny nebo se nachází v jeho bezprostřední blízkosti a je potřeba věrohodně zobrazit i povrch vzdálený jen několik metrů. Detailní textury je proto nutné volit v malém měřítku. Pak nastává problém s opakováním motivů především na vzdálených plochách. Situace je často řešena nemožností volného pohybu kamery po scéně. Na vzdálenější plochy, ke kterým se nelze přiblížit nebo se už jen většinu času nacházející ve větší vzdálenosti se aplikují textury ve větším měřítku. Především však dochází k zamaskování opakujících se textur pomocí dalších objektů vyskytujících se na scéně (obr. 2.6). (a) Nejvyšší možná kvalita terénu 8

15 2. ZOBRAZENÍ TERÉNU (b) Nejvyšší možná kvalita terénu i objektů Obrázek 2.6: The Elder Scrolls IV: Oblivion (2006) 9

16 Kapitola 3 3 High level Shading Languagety High level Shading Language Současné grafické karty jsou programovatelné a umožňují nahradit fixní grafickou frontu. Není již nutné se spoléhat na předem definované zobrazovací postupy a je možné vytvářet vlastní techniky, které mohou velmi výrazně ovlivnit výslednou podobu vykreslované scény. Programovat lze zatím jen některé části zobrazovacího grafického řetězce a možnosti jsou do jisté míry omezené, ale vývoj v této oblasti je velmi dynamický. Klíčové pro zpracování a modifikaci vykreslovaných dat jsou jednotky vertex shader a pixe l shader. K velkému rozvoji v programování shaderů došlo až z příchodem High Level Shading Language (HLSL). Jednou z nejvýznamnějších novinek uvedených v DirectX 9. Pomocí HLSL můžeme programovat shadery na úrovni algoritmů a nemusíme se starat o hardwarové detaily a práci s registry. HLSL stejně jako ostatní jazyky vyšší úrovně přináší řadu výhod a dobré čitelnost kódu. O optimalizaci kódu se stará kompilátor. 3.1 Datové typy HLSL podporuje řadu datových typů, od jednoduchých skalárních po komplexnější vektory a matice. Skalární datové typy bool int half float double booleovská hodnota pravda, nepravda 32-bitů s pevnou desetinou čárkou 16-bitů s pohyblivou desetinou čárkou 32-bitů s pohyblivou desetinou čárkou 64-bitů s pohyblivou desetinou čárkou Vektorové typy 10

17 3. HIGH LEVEL SHADING LANGUAGE Nejčastěji se definují jménem datového typu následující celým číslem. Lze je však definovat více způsoby: float4 float vector <float, 4> vector0; vector1[4]; vector2; Jakmile je vektor definovaný, může se přistupovat k jednotlivým složkám klasicky jako u pole nebo pomocí tečkové notace. V případě tečkové notace složky musí pocházet buď z {x, y, z, w} nebo {r, g, b, a} jmenného prostoru. Například: float4 color = {0.7f, 0.5f, 0.2f, 1.0f }; float value0 = color[0]; // value0 je 0.7f float value1 = color.x; // value1 je 0.7f float value2 = color.g; // value2 je 0.5f float3 vec0 = color.rgb; // vec0 je {0.7f, 0.5f, 0.2f}; float2 vec1 = color.xg; // chyba v tečkové notaci Binární operace nad vektory jsou prováděny po složkách. float4 v = a * b; v.x = a.x * b.x; v.y = a.y * b.y; v.z = a.z * b.z; v.w = a.w * b.w; Takto je definováno násobení. Výsledkem je opět vektor a ne skalár, jak by tomu bylo u skalárního součinu. Skalární součin a násobení matic lze provádět pomocí vestavěné funkce mul(). Maticové typy Další velmi obvyklé typy proměnných jsou matice. Stejně jako skaláry a vektory i matice mohou být tvořeny kterýmkoliv ze základních typů. Matice mohou mít jakýkoliv rozměr. Obvykle se však používají matice do čtyř řádků i sloupců. Takto se vytvoří matice o třech řádcích a čtyřech sloupcích: float3x4 mata; matrix<float, 3, 4> matb; K prvkům matice lze přistupovat stejným způsobem jako k položkám vektor. Tedy: float2x2 fmat = { 0.7f, 0.5f, 0.2f, 1.0f }; float value0 = fmat[0][0]; // value0 je 0.7f 11

18 3. HIGH LEVEL SHADING LANGUAGE float value1 = fmat._m00; // value1 je 0.7f float value2 = fmat._12; // value2 je 0.5f float3 vec0 = fmat._21_22; // vec0 je {0.2f, 1.0f} float2 vec1 = fmat[1]; // vec1 je {0.2f, 1.0f} 3.2 Konstruktory Konstruktory fungují podobně jako v jazyce C++, navíc mají některá vylepšení, která usnadňují práci s komplexními datovými typy. Příklady použití konstruktoru: float3 vpos = float3( 1.0f, 2.0f, 3.0f ); float fdiffuse = dot(vnormal, flaot3(0.0f, 1.0f, 0.0f)); float vpadl = flaot4(vpos, fdiffuse); Konstruktory se obvykle používají pokud chceme dočasně definovat hodnotu nebo pokud chceme jednoznačně zabalit dva menší datové typy dohromady. 3.3 Přetypování Pro pomoc při psaní a generování efektivního kódu je dobré být seznámen s možnostmi přetypováni v HLSL. K přetypování často dochází v důsledku povýšení nebo degradování dané proměnné tak, aby pasovala na proměnou, které bude přiřazena. V následujícím případě je při inicializaci prostý float přetypován na float4{0.0f, 0.0f, 0.0f, 0.0f} float4 vpos = 0.0f; K podobnému přetypování dochází pokud více dimenzionální typ jako je vektor nebo matice přiřazujeme typu s menší dimenzí. float3 vlight; float ffinal, fcolor; ffinal = vlight * fcolor; V toto případě jsou nadbytečná data zahozena. Proměnná vlight je přetypována na float a pro násobení se skalární proměnnou fcolor je použita pouze její první složka. Hodnota ffinal je rovna vlight.x * fcolor. 12

19 3. HIGH LEVEL SHADING LANGUAGE 3.4 Struktury Velmi často je vhodné definovat strukturu v HLSL shaderech. Struktura často slouží jako návratový typ z hlavní funkce vertex shaderu. Jejich použití je však všeobecné. struct VS_OUTPUT { float4 Position float2 Tex float3 LightVec float3 CameraVec float3 Color }; : POSITION; : TEXCOORD0; : TEXCOORD1; : TEXCOORD2; : TEXCOORD3; 3.5 Samplers K vzorkování textur jsou potřeba tři věci: Textura. Sampler (jeho stav). Samplovací instrukce. texture = texture0; sampler s_2d = sample state { texture = texture0; }; float3 sample_2d( float2 tex : TEXCOORD0 ) : COLOR { return tex2d( sampler_2d, tex ); }; Textura je deklarována proměnnou texture0 a sampler proměnnou s_2d. Ve složených závorkách definujeme texturu, která bude vzorkována a volitelně filtrovací stav. Pokud je stav sampleru vynechán, použije se základní nastavení (lineární filtrování a 13

20 3. HIGH LEVEL SHADING LANGUAGE wrap mode pro texturovací souřadnice). Vstupním parametrem vzorkovací funkce jsou texturovací souřadnice. Funkce vrací barvu na požadovaných souřadnicích textury. 3.6 Vestavěné funkce HLSL poskytuje řadu vestavěných funkcí pokrývajících většinu potřebných operací pro programování shaderů. [ HLSL Intrinsic Functions ] 3.7 Shader Inputs Vertex a pixel shadery mají dva druhy vstupů, varying a uniform. Varying vstupy jsou data, která jsou jedinečná pro každé vykonání shaderu. Pro vertex shader to jsou například pozice, normála pocházející z proudu vrcholů. Uniform data (informace o materiálu, transformační matice, ) jsou neměnná pro více průběhů shaderem Uniform inputs V HLSL mohou být uniform data specifikována dvěma způsoby. Obvyklá metoda je deklarováním globálních proměnných a jejich použitím ve vertex nebo pixel shaderu. Druhým způsobem je označit vstupní parametr hlavní funkce shaderu jako uniform. Oba způsoby vedou k přidání proměnné do seznamu uniform variables požadovaných shaderem. float4 UniformGlobal; float4 main( uniform float4 UniformParam ) : POSITION { return UniformGlobal * UniformParam; } Proměnné typu uniform použité shaderem jsou svázány s aplikací přes konstant table obsahující pozici registru informaci o typu proměnné a případně její základní hodnotu Varying inputs 14

21 3. HIGH LEVEL SHADING LANGUAGE Varying data jsou stanovena označením vstupních parametrů hlavní funkce shaderu pomocí vstupní sémantiky. Všechny vstupní parametry hlavní funkce musí být označeny vstupní sémantikou nebo klíčovým slovem uniform, jinak shader nelze zkompilovat. Vstupní sémantika je jméno použité k propojení vstupu daného shaderu a výstupu z předchozího úseku grafické fronty. Například vstupní sémantika POSITION0 určuje vertex shaderu, kde se nachází data s pozicí vrcholu ve vertex buuferu. Pixel a vertex shadery mají rozdílnou sadu vstupních sémantik, protože do nich vstupují data z navzájem odlišných částí grafické fronty. Vstupní sémantika do vertex shaderu popisuje jak mají být data uložená pro každý vrchol ve vertex bufferu nahrána do vertexu shaderu ( pozice, normály, texturovací souřadnice, barvy, ). Vstupní sémantika pixel shaderu popisuje informace, které jsou poskytovány rasterizační jednotku a jsou jedinečná pro každý pixel. Data jsou generována interpolací mezi výstupy z vertex shaderu pro každý vrchol zpracovávané primitivy. Vstupní sémantika může být zadána dvěma způsoby. První metoda je přidáním dvojtečky : a jména vstupní sémantiky přímo za vstupní parametr v deklaraci hlavní funkce. Druhou metodou je definovat vstupní strukturu se vstupní sémantikou pro všechny položky. Strukturu použít jako vstupní a parametr hlavni funkce. struct VS_Input { float4 Pos1 : POSITION1 }; float4 main( float4 Pos0 : POSITION0, VS_Input In ) : POSITION { return Pos0 * Pos1; }; Některé vstupní sémantiky vertex shaderu Sémantika POSITIONn NORMALn COLORn TEXCOORDn TANGENTn BINORMALn... Popis pozice normála barva texturovací souřadnice tangenta binormála Vstupní sémantika pixel shaderu 15

22 3. HIGH LEVEL SHADING LANGUAGE Sémantika COLORn TEXCOORDn Popis barva texturovací souřadnice n je volitelné přirozené číslo. Například POSITIONT0, TEXCOORD2,... Výstupy shaderu Vertex a pixel shader poskytují výstupní data pro následující úsek grafické fronty. Výstupní sémantika slouží ke specifikaci jak data generovaná shaderem budou napojena na vstup navazující části grafické fronty. Například výstupní sémantika z vertex shaderu slouží k propojení výstupů s interpolátory pro rastrování, tak aby byla generována data pro pixel shader. Výstupy z pixel shaderu jsou hodnoty poskytované do alpha blending jednotky pro každý z renderovaných cílů nebo informace o hloubce zapisované do depth bufferu. Výstupní sémantika z vertex shaderu se používá jak k propojení s pixel shaderem, tak s rasterizační částí. Jediným povinným výstupem z vertex shaderu je POSITION, který je požadován rasterizační jednotkou. TEXCOORDn a COLORn označují výstupy použitelné k interpolaci pro pixel shader. Syntaxe pro výstupní sémantiku je stejná jako syntaxe vstupní sémantiky. Sémantika může být specifikována označením parametru klíčovým slovem out nebo pomocí struktury, která je použita jako out parametr nebo je použita jako návratová hodnota funkce. Výstupní sémantika vertex shaderu Sémantika POSITION PSIZE FOG COLORn TEXCOORDn Popis pozice velikost bodu mlha barva texturovací souřadnice Výstupní sémantika pixel shaderu Sémantika COLORn Popis barva 16

23 3. HIGH LEVEL SHADING LANGUAGE DEPTH hodnota hloubky Následující shodné příklady ukazuje nejrůznější varianty jak lze data z funkce vracet: struct OutStruct { float2 Tex1 : TEXCOORD1; }; float4 main( out float2 Tex0 : TEXCOORD0, out OutStrt Out ) : POSITION { Tex0 = float2( 0.0f, 0.0f ); Out.Tex1 = float2( 1.0f, 0.0f ); return float4( 0.0f, 1.0f, 2.0f, 1.0f ); } struct OutStruct { float4 Pos : POSITION; float2 Tex0 : TEXCOORD0 float2 Tex1 : TEXCOORD1; }; OutStruct main() { OutStruct Out; Out.Pos = float4( 0.0f, 1.0f, 2.0f, 1.0f ); Out.Tex0 = float2( 0.0f, 0.0f ); Out.Tex1 = float2( 1.0f, 0.0f ); return Out; } 17

24 Kapitola 4 4 Pokročilé texturovací techniky Pokročilé texturovací techniky V druhé kapitole byly popsány dva základní přístupy k mapovaní terénu. Oba mají své nevýhody, které lze do značné míry potlačit, ale také své limity, které je předurčují k určitému použití. Především se jedná o problém obrovského množství dat a jejich kvality. Získat takové množství pouze pomocí snímací techniky z reálné scény je prakticky nemožné. Stejně jako ruční tvorba bez jakéhokoliv pokročilého nástroje. Jedinou možností je kombinace těchto postupů za použití vhodných nástrojů umožňujících editovat větší množství dat najednou s předpřipravených fragmentů, případně některou část tvorby generovat automaticky. To však vede k vytvoření dat, která nejsou vnitřně jedinečná a vybízející k určité formě komprese. Dřívější možnosti grafických karet byly v této oblasti velmi omezené a realistické zobrazení terénu nebylo možné dosáhnout. Současné grafické karty nám poskytují řadu možností a jde především o to jak jich využít. Během vlastního vývoje texturovacích technik vznikly desítky shaderů. Většinou však pouze maskovaly nedostatky daného stavu techniky a snažily se konkrétní myšlenku dotáhnout k nejlepší vizuální kvalitě. V následujících podkapitolách jsou popsány jen ty nejdůležitější poznatky, které opravdu posunuly samotnou techniku kupředu. Ukázky jsou doplněny o zdrojové kódy pixel shaderů, které navíc pro jednoduchost obsahují pouze části potřebné pro samotné míchání textur. V ukázkových shaderech je použita pouze jedna globální proměnná a sada samplerů. Sampler je potřeba definovat pro každou texturu, která bude v shaderu použita. Vždy však bude v tomto tvaru. 18

25 4. POKROČILÉ TEXTUROVACÍ TECHNIKY float4x4 g_matworldviewproj; sampler2d SamplerGC = sampler_state { Texture = ( g_texture_global_color ); MipFilter = LINEAR; MinFilter = LINEAR; MagFilter = LINEAR; // optional states //... }; Pro přehlednost je použit jeden společný vertex shader. Před každým pixel shaderem jsou uvedeny vstupní parametry, které určí jaké hodnoty z vertex shaderu budou použity. struct VS_DATA { float4 Position : POSITION float2 Tex0 : TEXCOORD0; float2 Tex1 : TEXCOORD1; float3 Surface : TEXCOORD2; }; VS_DATA VS_All( VS_DATA In ) { VS_DATA Out; // Position projected on screen Out.Position = mul( In.Position, g_matworldviewproj ); // Pass Texture coordinates Out.Tex0 = In.Tex0; Out.Tex1 = In.Tex1; // Pass Surface definition Out.Surface = In.Surface; } return Out; Vertex shader slouží pouze k předání hodnot do pixel shaderu. Jedinou výjimkou je transformace souřadnic z lokálních prostoru modelu do projekčního prostoru, které postupují do rasterizační jednotky. Všechny pixel shadery dále využívají minimálně jednu sadu texturovacích souřadnic. 4.1 Multitexturing 19

26 4. POKROČILÉ TEXTUROVACÍ TECHNIKY Jedná se o mapování více textur současně na jeden objekt. Tato technika stojí v úplných počátcích programovatelných grafických front a k její implementaci ještě není potřeba shaderů. Možnosti v té době byly velmi omezené, ale k viditelnému zlepšení stačí jen vynásobení jedné textury druhou. (a) Pouze globální textura (b) Globální textura (c) Globální a detailní textura (d) Detailní textura Obrázek 4.1: Multi-texturing Tímto způsobem byla vylepšována především technika, kdy je použita jedna globální textura pro celou krajinu nebo rozsáhlý blok. Přidání detailní textury částečně vyřeší 20

27 4. POKROČILÉ TEXTUROVACÍ TECHNIKY nízkou kvalitu povrchu při velkém přiblížení. Podobně lze však obohatit i způsob texturování, kdy máme sadu detailních textur a přidáním globální textury potlačíme vnímání opakujících se textur. Stačí pouze jednoduše vytvořit textur obsahující šum. Pro začátek je jednodušší rozvíjet variantu použití jedné barevné globální a jedné šedotóní detailní textury. V této variantě je dominantní globální textura, proto je možné použít jen jednu detailní texturu. Narozdíl od opačné varianty, kdy je výsledný obraz příliš jednotvárný (obr. 4.2). (a) Pouze detailní (b) Detailní i globální Obrázek 4.2: Použití barevné detailní textury a globální šedotóní textury Pro věrohodné zobrazení terénu je však použití jedné detailní textury nedostačující. První možným vylepšením je použít více detailních textur. Ke změně mezi detailními texturami dochází na úrovni polygonů. To však díky dominantní globální barevné textuře příliš nevadí. Při modelování je pro každý polygon vybrána ze sady detailních textur ta, která na daném polygonu nejvíce odpovídá globální textuře. Polygonovou síť je potřeba rozdělit do skupin podle detailních textur. A pro každou skupinu nastavit správnou detailní texturu na úrovni aplikace. struct PS_INPUT { float2 Tex0 : TEXCOORD0; float2 Tex1 : TEXCOORD1; }; float4 PS_FixedPipeline( PS_INPUT In ) : COLOR { float3 globalcolor = tex2d( SamplerGC, In.Tex1 ); float greyscaledetail = tex2d( SamplerDGS, In.Tex0 ).r; } return float4( globalcolor * greyscaledetail, 1.0f ); 21

28 4. POKROČILÉ TEXTUROVACÍ TECHNIKY Pixel shader využívá dvou párů texturovacích souřadnic. Pokud však používáme pro oba druhy textur stejný způsob mapovaní (například rovinné) můžeme použít jen jeden pár texturovacích souřadnic, protože druhý se liší jen měřítkem. Výsledná barva vznikne pouze vynásobením obou vzorků textur. 4.2 Lineární mícháni povrchů (Linear) Pro další vývoj je přeci jenom potřeba vyrovnat se s ostrým přechodem detailních textur přes hranu trojúhelníku (obr. 4.3 (a)). Není již možné definovat použití textur pouze na úrovni polygonů. Lze však využít vrcholů, do kterých je možné ukládat řadu volitelných informací a v shaderu je použít k libovolným účelům. Pomocí jedné proměnné je možné definovat poměr prolnutí dvou textur. Pokud je vrcholům na hranících odlišných materiálů přiřazena odpovídající hodnota, shader umožní generovat terén s pozvolnými přechody na úrovni detailních textur (obr. 4.3 (b)) (a) Ostrý přechod bez míchání (b) Pozvolný přechod s lineárním mícháním Obrázek 4.3: Barevná globální a detailní šedotóní textura 22

29 4. POKROČILÉ TEXTUROVACÍ TECHNIKY struct PS_INPUT { float2 Tex0 : TEXCOORD0; float2 Tex1 : TEXCOORD1; float Mix : TEXCOORD2; }; float4 PS_MixedDetailsGS( PS_INPUT In ) : COLOR { float3 globalcolor = tex2d( SamplerC, In.Tex0 ); float detailgs_0 = tex2d( SamplerGS0, In.Tex1 ).r; float detailgs_1 = tex2d( SamplerGS1, In.Tex1 ).r; float detailgs = lerp( detailgs_0, detailgs_1, In.Mix ); } return float4( globalcolor * detailgs, 1.0f ); lerp(a, b, s) vrací hodnotu a + s(b a), která lineárně interpoluje mezi hodnotami a a b. Vrácenou hodnotou je a, pokud s = 0 a b pokud s = 1. Pomocí proměnné Mix je ze dvou textur získána výsledná detailní textura. Po následném vynásobení z globální barevnou texturou získáváme výslednou hodnotu pixelu. Obrázek 4.4: Lineární míchání povrchů s šedotóními detailními texturami 23

30 4. POKROČILÉ TEXTUROVACÍ TECHNIKY Přestože tato technika již vypadá velmi zajímavě, k realistickému zobrazení terénu má ještě hodně daleko (obr. 4.4). Největším nedostatkem je malá barevná pestrost daná šedotóní detailní texturou. Protože jsou pomocí lineárního míchání alespoň částečně vyřešeny ostré přechody mezi texturami, nic nebráni využití barevných detailních textur, které tento nedostatek odstraní. Menší komplikací je téměř nutnost použít rovinné mapování pro globální texturu. Dochází tak k velkému zkreslení na strmých místech a nemožnost jedinečně mapovat objekty jako jsou skalní převisy a jeskyně. Při použití složitějších barevných textur je více zřetelné opakování se textur. Z tohoto důvodu je důležité, aby k míchání textur nedocházelo pouze na hranách větších bloků ale i uvnitř. Pro větší bloky je vhodné použít sadu detailních textur, které jsou míchány podobným způsobem. Je však zapotřebí vhodné aplikace pro modelování terénu, která umožní efektivně přiřazovat vrcholům hodnoty definující poměr smíchaných textur. struct PS_INPUT { float2 Tex : TEXCOORD0; float3 Mix : TEXCOORD1; }; float4 PS_VertexMix( PS_INPUT In ) : COLOR { float3 detailr = tex2d( SamplerR, In.Tex ); float3 detailg = tex2d( SamplerG, In.Tex ); float3 detailb = tex2d( SamplerB, In.Tex ); float3 detailk = tex2d( SamplerK, In.Tex ); float4 surface = float4( In.Mix, 1.0f In.Mix.r - In.Mix.g In.Mix.b ); } return float4( detailr * surface.r + detailg * surface.g + detailb * surface.b + detailk * surface.a, 1.0f ); Výsledná barva vznikne smícháním čtyř detailních textur. Stačí použít pouze tří hodnot k definování povrchu. Je však nutné dodržet podmínku, aby jejich součet byl vždy menší než 1. 24

31 4. POKROČILÉ TEXTUROVACÍ TECHNIKY Obrázek 4.5: Lineární míchání barevných detailních textur K míchání textur dochází pomocí lineární interpolace hodnot uložených ve vrcholech. Pokud se chce dosáhnout realistického zobrazení, je polygonová síť terénu pro tuto techniku většinou příliš hrubá. Dochází k velkému rozmazání prolínaných textur. Možným vylepšením je definovat povrch pomocí textury. Podobně jak globální barevná textura přímo určovala výslednou barvu povrchu. Povrchovou texturu bude určovat pouze poměr použití detailních textur a až jejich smícháním vznikne výsledná barva. Pixel shader se bude lišit pouze v proměnné surface, která nebude naplněna interpolovanými hodnotami z vertex shaderu, ale pomocí vzorkování globální povrchové textury. Tím je dosaženo výrazného zlepšení kvality. Problém s mapováním globální textury je možné řešit odděleným skalnatých útvarů od terénu a jejich mapování řešit individuálně. Nevýhodou je i odpovídající výrazné navýšení potřebné paměti. Ovšem pro omezené lokace můžeme dosáhnout velmi realistického výsledku. 4.3 Lineární míchání povrchů s alfa kanálem (Linear Alpha) Další možností je rozložit povrch na logicky uspořádané vrstvy. Ty pak v daném pořadí skládat na sebe. Například pokud je ve vrcholu uložena hodnota RGB = ( 0.5, 0.5, 0.5 ) definující použití tomu odpovídajících detailních textur. Ve výsledku budou textury použity takto: detailblue = 0.5, detailgreen = 0.25, detailred = 0.125, detailblack =

32 4. POKROČILÉ TEXTUROVACÍ TECHNIKY Tomu v pixel shaderu odpovídá trojnásobné použití funkce lerp. Porovnáni obou způsobů je znázorněno na obrázku 4.6. (a) Metoda poměrného míchání (b) Metoda skládání vrstev Obrázek 4.6: Barva definující povrch struct PS_INPUT { float2 Tex : TEXCOORD0; float3 Surface : TEXCOORD1; }; float4 PS_VertexMix( PS_INPUT In ) : COLOR { float3 surface = In.Surface; float3 color = tex2d( SamplerK, In.Tex ); float3 detailr = tex2d( SamplerR, In.Tex ); float3 detailg = tex2d( SamplerG, In.Tex ); float3 detailb = tex2d( SamplerB, In.Tex ); color = lerp( color, detailr, surface.r * detailr.a ); color = lerp( color, detailg, surface.g * detailg.a ); color = lerp( color, detailb, surface.b * detailb.a ); } return float4( color, 1.0f ); Tento způsob nám umožňuje používat alfa kanál detailních textur. Není nutné zbytečně zvyšovat rozlišení povrchových textur. Detailní prolínání by mělo stejně odpovídat tomu, co je uloženo v detailní textuře. Proto je vhodné přidat k detailním texturám alfa kanál a využít ho při míchání textur. Tím je možné dosáhnout daleko širší použitelnosti textur (obr. 4.7) nebo výrazného snížení požadavků na rozlišení povrchových textur. 26

33 4. POKROČILÉ TEXTUROVACÍ TECHNIKY (a) Originální textura (b) alfa kanál (c) a (d) použití na různých texturách nižší vrstvy Obrázek 4.7 Detail lineárního míchání s alfou 4.4 Smooth Step míchání povrchů Pro dosažení ještě lepší vizuální kvality je i technika lineárního míchání s alfou nedostačující. Kromě ještě stále vyšší paměťové náročnosti je hlavním nedostatkem způsob jakým dochází k prolínaní textur. Ke všem pixelům detailní textury je přistupováno stejným způsobem. Problém je možné velmi dobře demonstrovat na konkrétním příkladu, kdy trávník pozvolna přechází jen v povrch pokrytý pískem. Počet trsů trávy se postupně zmenšuje. Pokud je pro zobrazení použito pouze dvou textur, tak v polovině přechodu jsou všechny trsy ve výsledném obrazu z 50%. Tímto způsob je možné míchat pouze objekty, které mají velikost menší než jeden pixel. Například pro požadovanou kvalitu zrnka písku. Ve skutečnosti však nedochází k nějakému prolínání obou povrchů. Pro větší objekty jako jsou stébla trávy je vhodné využít alfa kanál spíše ve smyslu prahování. Hodnota definující povrchu by neurčovala poměr prolnutí dvou vrstev, ale množství bodů, které se z odpovídající detailní textury promítnou do výsledného obrazu. V krajních hodnotách povrchu samozřejmě nesmí mít alfa kanál na výslednou podobu vliv tak, aby docházelo ke korektnímu skládání povrchů a zároveň bylo možno využít všechny body detailní textury. Mezi krajními hodnotami by alfa kanál měl být využíván s lineárním závislostí. Při klesající hodnotě povrchu se nejdříve z obrazu ztrácejí prvky s nejnižší hodnotou alfy. Takto definovaným požadavkům na prahovací funkci odpovídá následující ukázka části zdrojového kódu a obrázek 4.8(b). if( colorr.a + surface.r > 1.0f ) surface.r = 1.0f; else surface.r = 0.0f; color = lerp( color, detailr.rgb, surface.r ); 27

34 4. POKROČILÉ TEXTUROVACÍ TECHNIKY Ovšem takto ostré prahování není pro výsledné zobrazení vůbec vhodné. Sousední pixely mohou být každý z jiné textury a nedochází tak ke správné lineární interpolaci ve výsledném obraze (obr. 4.9(a)). Při velkém přiblížení je možné vidět artefakty odpovídajícím bodům detailních textur. Při oddálení a pohybu kamery dochází k zrnění obrazu. Ani pokud je jeden texel mapován na jeden pixel obrazu není situace ideální a výsledný obraz díky ostré změně vypadá uměle. (a) Linear Alpha (b) Prahování (c) Smooth Step (1) (d) Smooth Step (8) Obrázek 4.8: Srovnání texturovacích technik 28

35 4. POKROČILÉ TEXTUROVACÍ TECHNIKY (a) Ostrý přechod způsobený prahováním (b) Přirozenější přechod Obrázek 4.9: Artefakty vzniklé prahováním Je třeba rozmazat ostrou hranu černobílého přechodu (obr. 4.8(b)) a získat pozvolný přechod se stupni šedi. Musíme však zachovat základní požadavek, aby v krajních hodnotách definující povrch nezáleželo na hodnotách alfa. Levá strana definičního čtverce musí být vždy celá černá a pravá strana vždy celá bílá (obr. 4.8(c) a 4.8(d)). Přechodový pruh musí mít vždy směrnici < -1. Čím víc se přechod rozmažeme, tím strměji musí přímka stoupat. Avšak co nejpomaleji, tak aby se rovnoměrně využilo celé spektrum hodnot definujících povrch (obr. 4.8(c) a 4.8(d)). Takto definovaným podmínkám přesně odpovídá následující blok příkazů. // obr. 4.8 c) g_mixcontrast = 1.0f, d) g_mixcontrast = 8.0f surface.r = ( / g_mixcontrast ) * ( surface.r - 0.5f ); surface.r = saturate( ( surface.r + colorr.a - 0.5f ) * g_mixcontrast + 0.5f ); color = lerp( color, detailr, surface.r ); Výraz / g_mixcontrast může nabývat hodnot z intervalu (1, ) a odpovídá absolutní hodnotě směrnice. Pro hodnoty blížící se jedné odpovídá klasickému lineárnímu míchání a pro hodnoty blížící se nekonečnu naopak ostrému prahování. Funkce saturate omezí hodnoty do intervalu [ 0, 1 ]. 29

36 4. POKROČILÉ TEXTUROVACÍ TECHNIKY struct PS_INPUT { float2 Tex : TEXCOORD0; float3 Surface : TEXCOORD1; }; float4 PS_SmoothStep( PS_INPUT In ) : COLOR { float3 color = tex2d( SamplerK, In.Tex ); float4 detailr = tex2d( SamplerR, In.Tex ); float4 detailg = tex2d( SamplerG, In.Tex ); float4 detailb = tex2d( SamplerB, In.Tex ); float3 surface = ( / g_mixcontrast ) * ( In.surface - 0.5f ); surface.r = saturate((surface.r + colorr.a - 0.5f) * g_mixcontrast + 0.5f); surface.g = saturate((surface.g + colorg.a - 0.5f) * g_mixcontrast + 0.5f); surface.b = saturate((surface.b + colorb.a - 0.5f) * g_mixcontrast + 0.5f); color = lerp( color, detailr, surface.r ); color = lerp( color, detailg, surface.g ); color = lerp( color, detailb, surface.b ); } return float4( color, 1.0f ); Takto muže vypadat finální verze pixel shaderu. Proměnná surface z důvodů optimalizace může být definována ve vertex shaderu. Dále je možné implementovat více detailních vrstev nebo i úrovní. 30

37 4. POKROČILÉ TEXTUROVACÍ TECHNIKY (a) Smooth Step Vertex Surface Color (b) Smooth Step Pixel Surface Color (c) Smooth Step - 2 vrstvy (d) Smooth Step - 3 vrstvy (e) Smooth Step - 4 vrstvy Obrázek 4.10: technika Smooth Step 31

38 Kapitola 5 5 Modelování terénu Modelování terénu Všechny modely byly vytvořeny v profesionálním nástroji Autodesk 3ds Max, který byl vybrán pro svoji kvalitu a otevřenost novým technologiím. V reálném čase je možné vytvářet komplexní scénu včetně všech efektů a textur. 5.1 Autodesk 3ds Max Cílem není podrobně popisovat možnosti tohoto nástroje ani samotný postup práce. Budou jen stručně uvedeny techniky, které byly při tvorbě použity. Základním prvkem je objekt Editable Poly, který poskytuje řadu nástrojů pro modelování polygonové sítě a umožňuje naprostou kontrolu nad všemi jejími základními prvky. Dále se může aplikovat hierarchie modifikátorů, které lze kdykoliv přidávat a odebírat nebo je dočasně vypínat. Jak může vypadat celý zásobník modifikátorů vhodný pro modelování terénu je vidět na obrázku 5.1 vlevo. Ručně modelovaná polygonová síť je většinou příliš hrubá nebo je zbytečné ji modelovat příliš detailně. Vhodně lze využit modifikátor MeshSmooth, který polygonovou síť zjemní a vyhladí. Dalším nezbytným modifikátorem je Vertex Paint, který dovoluje snadno přiřazovat vrcholům hodnoty pomocí štětce a s tím souvisejících nástrojů, jak je známe s klasických 2D grafických editorů. Také umožňuje i práci s vrstvami a definovat jejich způsob prolínání (obr. 2.1 vpravo). Pro uložení hodnot 3ds Max definuje tyto kanály. Alpha -2 float3 RGB, Illumination -1 float3 RGB, Color 0 float3 RGB, Map Chanel 1-99 float2 RB. Pro zobrazení terénu lze použít tři kanály. Illumination pro definici povrchu. K pohodlnější práci je vhodné použít trojici modifikátorů Vertex Paint, kdy každý odpovídá jedné vrstvě. Vrstvy se pak prolínají způsobem Add. Kanálem Color je násobena výsledná barva získaná mícháním textur. Může se například předem vypočítat radiosita pro každý vrchol a takto ji uložit. Poslední kanál Map Channel 1, slouží pro uložení 32

39 5 MODELOVÁNÍ TERÉNU texturovacích souřadnic. Ty lze generovat modifikátorem UVW Mapping, který nabízí základní geometrické způsoby mapování. Vhodně lze využít rovinné mapování a mapování na krychli. Případně ručně doladit mapování pomocí modifikátoru Unwrap UVW. Tento modifikátor také poskytuje funkci relax, která je schopna částečně eliminovat zkreslení vniklé automatickým mapováním. Obrázek 5.1: Hierarchie modifikátorů (vlveo) a modifikátor Vertex Paint Další podstatnou věcí je, že 3ds Max od verze 6 podporuje materiál DirectX 9 Shader a umožňuje používaní efektové soubory (.fx) včetně doplňující syntaxe, která se uvádí za globálními proměnnými ve špičatých závorkách. Implementuje také grafické rozhraní, které umožňuje uživateli plnou kontrolu nad všemi volitelnými prvky efektu (obr. 5.2). 33

40 5 MODELOVÁNÍ TERÉNU Obrázek 5.2: Grafické rozhraní pro efektový soubor 3ds Max dovoluje jednomu objektu přiřazovat pouze jeden materiál. Pro komplexní scénu modelovanou pomocí jednoho objektu je nutné využít materiálu Multi/Sub Object, který může obsahovat až 1000 jedinečných materiálů. Každému polygonu objektu je možné přiřadit ID, které slouží jako index do tabulky materiálů. 5.2 Tvorba textur Ať použije jakoukoliv texturovací technika, vždy bude záležet především na použitých texturách. Texturovací technika může řadu věcí zamaskovat, případně dosáhnout věrohodných přechodů mezi texturami, ale vždy platí, čím kvalitnější textury budeme mít k dispozici, tím lepší bude výsledný dojem. Při běžném průchodu osoby krajinou je po většinu času veškerý povrch ve vzdálenosti větší než 1,5 metru. V současnosti většina zobrazovacích zařízení (monitorů) disponuje horizontálním rozlišením maximálně 1200 pixelů. Potom se použije běžně definovaná kamera snímající virtuální scénu, kdy při kolmém pohledu na plochu se výška viditelné plochy rovná vzdálenosti kamery od této plochy (FOV = 53,13). Dále je zbytečné, aby docházelo k zobrazení, kdy se do jednoho bodu na obrazovce (pixel) promítne více jak jeden bod z textury (texel). Při takto stanovených podmínkách je nesmyslné požadovat ve výsledném zobrazení rozlišení větší než 8 pixelů/cm. Na druhé straně je však potřebné vytvářet textury s minimálním rozlišením 3 pixely/cm, abychom zachytili podstatné detaily povrchu, jako jsou například stébla trávy. 34

41 5 MODELOVÁNÍ TERÉNU Druhým podstatným prvkem při vytváření textur je velikost plochy, kterou při mapování textura pokryje. Vzdálenost po které se budou stejné prvky v obraze opakovat. Minimem texturovací techniky Smooth Step jsou 2 metry. Při menší vzdálenosti je takřka nemožné opakování zamaskovat. V tomto případě čím větší plochu pokryjeme, tím lépe. Avšak je to v přímém rozporu z paměťovou náročností a požadovanou kvalitou na rozlišení. Daleko větší omezení však souvisí se samotným vznikem textur. Bohužel se dle mého názoru v současné době ještě nemůžeme spolehnou na generování textur pomocí programu, který by celý proces tvorby velmi ulehčil. Lze sice generovat řadu pěkných typů textur, ale většinou jen v určitém měřítku, většinou nevhodném pro realistické zobrazení terénu. Jedinou možností je pořizování textur pomocí fotoaparátu s následnou úpravou v grafickém editoru. Při použití širokoúhlého objektivu s ohniskovou vzdáleností 28 mm (FOV = 51,48) je pouze z ruky velmi obtížné vyfotit čtvercovou plochu o straně větší než 1,5 m. I pokud by byla k dispozici nějaká pomocná konstrukce, je stejně složité najít větší homogenní plochu pro vytvořeni textury reprezentující nějaký povrch. Je tedy složité vytvořit texturu už o minimálních požadovaných rozměrech. Částečně si můžeme pomoci mapováním textury na větší plochu, ale při zvětšení o více jak 33 % je už složité mluvit o realistickém zobrazení. Z těchto výpočtů je zřejmé že nejsme vůbec omezeni možnostmi snímací techniky. Při rozumných požadavcích možná už více zobrazovacím zařízením než grafickou kartou. Největší omezení je jednoznačně v kvalitě textur Adobe Photoshop K úpravě textur byl použit program Adobe Photoshop. Pravděpodobně nejsložitější částí kterou je však zbytečné příliš popisovat je tvorba kvalitní fotografie a případné složení textury z více fotografií. Popíšeme si základní triky, jak vytvořit kvalitní textury vhodné pro texturovací terénu. Prvně je zapotřebí vytvořit takové textury, které lze na sebe navazovat. K tomuto účelu slouží filtr Offset, který posune vyznačenou oblast o požadované množství v horizontálním nebo vertikálním směru. Při posunutí celého obrazu (obr. 5.3 vlevo) o polovinu jeho velikosti v obou směrech vznikne výsledek, jež je znázorněn na obrázku 5.3 vpravo. Zobrazený kříž odpovídá obvodovým stranám původního obrazu a zároveň jediným problematickým místům při navazování stejných textur a je třeba ho zamaskovat. K tomu je nejvhodnější využít funkce klonovacího razítka. Zvolit nejvhodnější štětec (tvar razítka,...) a ostré hrany vyretušovat. 35

42 5 MODELOVÁNÍ TERÉNU Obrázek 5.3: Filtr Offset Tímto způsobem však neodstraníme problém vzniklý několikanásobným zopakování celé textury. Lidské oko je velmi citlivé na rozpoznávání pravidelných vzorů. Ty vznikají především nehomogenitou jasové složky ve velkých oblastech původního obrazu. To odpovídá nízkým frekvencím, které je potřeba z obrazu odstranit. Vyšší frekvence při pohledu z dálky zanikají samy použitím MIP map a také nejsou při opakování tak nápadné. K odstranění nízkých frekvencí z obrazu slouží filtr High Pass. Pomocí dvojice jednoduchých úprav je možné získáváme dobře použitelnou texturu (obr. 5.3 pravý sloupec). Výsledek není naprosto dokonalý, ani být nemůže. Čím více frekvencí s obrazu odstraníme, tím méně bude nápadné opakování, ale utrpí kvalita a informační hodnota textury. Jako vždy je potřeba najít rozumný kompromis, případně doladit některé nedostatky ručně pomocí klonovacího razítka. Zbylé nedostatky však lze zamaskovat možnostmi texturovací techniky. 36

43 5 MODELOVÁNÍ TERÉNU (a) Originál (b) Offset a klonovací razítko (c) High Pass Obrázek 5.4: Postupná úprava textur Nedílnou součástí detailní textury je alfa kanál, který obsahuje informace používané při míchání textur. Je třeba vybrat části obrazu, které chceme aby se při snižující hodnotě povrchu ztráceli z výsledného obrazu nejdříve a přidělit jim černou barvu (alfa = 0). Postupně je nutné vybírat další části obrazu a zvyšovat hodnotu alfy. To je samozřejmě velmi obtížné, ale už pomocí triviální operace lze dosáhnout zajímavých výsledků. Někdy stačí za alfa kanál zvolit jasovou složku textury (obr. 5.5). Je to velmi individuální a vyplatí se tvorbě textur věnovat velmi pečlivě. Je možné si to dovolit, protože díky texturovací technice lze i s malým počtem textur pokrýt rozsáhlý terén. Pokud zvolíme pro celý alfa kanál hodnotu alfa=0.5, dochází k prolínání textur stejným způsobem jako u techniky lineárního míchání. Rychlost přechodu je dána hodnotou g_mixcontrast popsanou v kapitole

44 5 MODELOVÁNÍ TERÉNU (a) Linear (b) Smooth Step Obrázek 5.5: Srovnání technik 38

45 Kapitola 6 6 Experimentální aplikace Experimentální aplikace Popisované texturovací techniky byly implementovány a odlaďovány především v prostředí 3ds Max s využitím jeho editoru materiálů typu DirectX 9 Shader. V pozdější fázi vývoje se ukázala potřeba testování a odhalení případných výkonově slabých míst texturovací techniky. To už nebylo možné efektivně provádět v prostředí 3ds Max, protože bylo nutné mít pod kontrolou celý renderovací proces od struktury uložení primitiv v paměti počítače a grafického akcelerátoru až po rasterizaci do frame bufferu. Dále vznikala potřeba prezentace texturovacích technik na počítači se standardním softwarovým vybavením bez nutnosti instalace 3ds Max. Z uvedených důvodů byly vytvořeny nástroje pro export dat z prostředí 3ds Max a pro jejich prezentaci. 6.1 Plugin Terrain Exporter Terrain Exporter je exportni plugin pro 3ds Max 9. Pro získaní dat bylo také zkoušeno přímé načítání souboru v poměrně dobře zdokumentovaném formátu 3DS. Tento způsob byl ale brzy zavrhnut, protože některé informace v tomto formátu nejsou obsaženy. Jedná se především o nestandardní prvky jako jsou uživatelem definované parametry materiálu DirectX 9 Shader a kanály Illumination a Color. Přímé načítání souboru ve formátu MAX bylo také zavrhnuto především pro jeho složitost a obsah velkého množství informací, které pro jednoduché zobrazení nejsou třeba. Z těchto důvodů byla zvolena cesta vlastního exportního pluginu. 3ds Max poskytuje velmi bohaté API, které dovoluje kontrolovat téměř všechny prvky aplikace, ale díky své rozsáhlosti a možnostem není úplně přívětivé pro občasného a neznalého uživatele. K tomu účelu bylo využito rozhraní 3ds Max Game Interface, které je postaveno nad existujícím 3ds Max API. Není potřebné znát složitou vnitřní strukturu 3ds Max a vcelku intuitivně lze přistupovat k základním datům. Tímto způsobem byly získány všechny potřebné data polygonové sítě (objekt IGameMesh). IGame rozhraní umožňuje přístup k uživateli definovaným parametrům jen pro standardní materiál. Pro materiál DirectX 9 Shader je potřeba využít původního 3ds Max API. Z toho důvodu je v současné verzi pluginu možné exportovat pouze uživatelem definované proměnné float a texture. To je však pro většinu efektů dostačující. Exportovaná data jsou pluginem 39

46 6. EXPERIMENTÁLNÍ APLIKACE uložena v textové formě. Plugin byl napsán objektově v jazyce C++ o odladěn v prostředí MS Visual Studio Prohlížeč Terrain Explorer Terrain Explorer je jednoduchá aplikace pro platformu Win32, která umožňuje nahrát a zobrazit scény exportováné pluginem Terrain Exporter z prostředí 3ds Max. Aplikace ke svému spuštění potřebuje End-user runtime distribuci DirectX 9, která je zahrnuta v systému Windows XP od service packu 2 nebo je možné ji doinstalovat. Dále je třeba dynamická knihovna d3dx9_31.dll, která implementuje volání funkcí tzv. DirectX 9 extension library. Tato knihovna postavená nad jádrem DirectX je v aplikaci Terrain Explorer používána např. pro nahrávání souborů textur nebo souborů shaderů ve formátu fx. Aplikace byla napsána objektově v jazyce C++ o odladěna v prostředí MS Visual Studio

47 Kapitola 7 7 Testování Testování Pro všechny testy byla použita čtveřice textur s rozlišením 1024 x 1024 pixelů uložená pomocí DXT5 komprese. Textury zabírají 5,333 MB. Vždy byla použita stejná struktura dat uložená ve vrcholu trojúhelníků zabírá 0,172 MB. Z následující tabulky jednoznačně vyplývá, že zobrazení realistického terénu z pohledu texturovacích technik jednoznačně závislé na výkonu grafické karty. Zobrazován byl terén s počtem 32k trojúhelníků. Data zabírají v paměti 11MB. Test byl prováděn na grafické kartě NVIDIA GeForce FX 5900XT 128 MB. (GPU/Memory) FPS index 440/770 MHz 48,2 110% 400/700 MHz 44,0 100% 360/630 MHz 39,5 90% 320/560 MHz 35,2 80% 280/490 MHz 30,7 70% Následující grafy porovnávají v různých situacích pouze náročnost kódu pixel shaderu. Potřebné nároky na paměť tak, aby bylo možné porovnat techniky při podobné výsledné kvalitě zobrazení, jsou rozebrány samostatně. 41

48 7. TESTOVÁNÍ 160 NVIDIA GeForce FX 5900XT 128 MB 140 fps metoda: Smooth Step Linear Alpha Linear k 16k 32k 64k 128k 256k 512k 1024k počet trojúhelníků ATI Radeon 9600Pro 256 MB 140 fps metoda: Smooth Step Linear Alpha Linear k 16k 32k 64k 128k 256k 512k 1024k počet trojúhelníků 160 ATI Mobility Radeon X MB fps metoda: Smooth Step Linear Alpha Linear k 16k 32k 64k 128k 256k 512k 1024k počet trojúhelníků 42

49 7. TESTOVÁNÍ 600 NVIDIA GeForce FX 7600GT 256 MB 500 fps metoda: Smooth Step Linear Alpha Linear k 16k 32k 64k 128k 256k 512k 1024k počet trojúhelníků 43

50 7. TESTOVÁNÍ Srovnávat paměťovou náročnost je velmi obtížné. Jediná technika, kterou je vůbec možné dosáhnout podobné vizuální kvality je technika povrchových map a detailních textur s alfa kanálem. Přestože techniky Smooth Step je primárně určena pro nepravidelné polygonové sítě a definici povrchu ve vrcholech, je stejně tak možné ji zadat pomocí povrchové mapy. Definujme si orientační požadavky na kvalitu povrchových map pro jednotlivé techniky. Při použití lineárního míchání dochází mezi dvěma body definujícími různé povrchy ke ztrátě kontrastu a rozmazání tomu odpovídajících detailních textur. Z tohoto důvodu je potřeba použit několikanásobně většího rozlišení povrchových textur. Druhým nedostatkem je nereálnost takového přechodu, což vede na použití většího počtu detailních textur. Technika Smooth Step je schopna věrohodně simulovat mnohem více detailních textur pomocí jediné. Při korektním srovnání by to pro lineární techniku míchání vcelku znamenalo i o několik řádů vyšší nároky na paměť. Pokud se však smíříme s menší kvalitou při blízkém pohledu na terén, mohl by paměťová náročnost vypadat podle následujících grafů Pro detailní textury je vhodné použít DXT5 kompresy s poměrem 6:1 pro kanály RGB a 2:1 pro Alfa kanál. Jedna detailní textura v rozlišení 1024 x 1024 pixelů včetně MIP map zabírá 1,33 MB. Množství detailních textur je určeno orientačně. Jak je vidět, pro tyto techniky se stejně nejedná o limitující faktor v paměťové náročnosti. Již s velmi omezeným množstvím textur jsme schopni popsat i rozsáhlý a různorodý terén. Poté již počet 44

51 7. TESTOVÁNÍ potřebných detailních textur stoupá velmi pomalu. Pro povrchové mapy se princip DXT komprese nehodí. Lze však použít textury s menší bitovou hloubkou. Hlavně pro techniku lineárního míchání. Na druhou stranu pro tuto techniku je díky většímu množství detailních textur potřeba i více povrchových textur (kanálů). Záleží na konkrétní implementaci a možnostech hardwaru. Propracovanější způsob využití bitové hloubky si však žádá složitější kód pixel shaderu. Pro techniku Smooth Step je použita povrchová textura ve formátu RGBA s 8 bity na kanál v rozlišení 256 x 256 pixelů, která včetně MIP map zabírá 0,33MB a pokryje čtverec terénu o straně 50m. Pro lineární míchání je zvolena textura se 4 násobným rozlišením (5,33MB). Pro každý blok může být samozřejmě použitá jiná pětice detailních textur popsatelná kanály RGBA. 45

52 7. TESTOVÁNÍ Obrázek 8.1 : Kvalita zobrazení, techniky: Kasický způsob, Lineární míchání, Smooth Step 46

Návod k použití softwaru Solar Viewer 3D

Návod k použití softwaru Solar Viewer 3D Návod k použití softwaru Solar Viewer 3D Software byl vyvinut v rámci grantového projektu Technologie a systém určující fyzikální a prostorové charakteristiky pro ochranu a tvorbu životního prostředí a

Více

Android OpenGL. Práce s texturami

Android OpenGL. Práce s texturami Android OpenGL Práce s texturami Textura Obrázek, který jsme schopní nanášet na 3D objekty S použitím shaderů mnohem víc než to Může obsahovat jiné vlastnosti povrchu, než jen barvu (reliéf, lesklost,

Více

Barvy a barevné modely. Počítačová grafika

Barvy a barevné modely. Počítačová grafika Barvy a barevné modely Počítačová grafika Barvy Barva základní atribut pro definici obrazu u každého bodu, křivky či výplně se definuje barva v rastrové i vektorové grafice všechny barvy, se kterými počítač

Více

13 Barvy a úpravy rastrového

13 Barvy a úpravy rastrového 13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

12 Metody snižování barevného prostoru

12 Metody snižování barevného prostoru 12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů

Více

Fakulta informačních technologíı. IZG cvičení 6. - Zobrazování 3D scény a základy OpenGL 1 / 38

Fakulta informačních technologíı. IZG cvičení 6. - Zobrazování 3D scény a základy OpenGL 1 / 38 IZG cvičení 6. - Zobrazování 3D scény a základy OpenGL Tomáš Milet Ústav počítačové grafiky a multimédíı Fakulta informačních technologíı Vysoké učení technické Brno IZG cvičení 6. - Zobrazování 3D scény

Více

Grafika na počítači. Bc. Veronika Tomsová

Grafika na počítači. Bc. Veronika Tomsová Grafika na počítači Bc. Veronika Tomsová Proces zpracování obrazu Proces zpracování obrazu 1. Snímání obrazu 2. Digitalizace obrazu převod spojitého signálu na matici čísel reprezentující obraz 3. Předzpracování

Více

VY_32_INOVACE_INF.10. Grafika v IT

VY_32_INOVACE_INF.10. Grafika v IT VY_32_INOVACE_INF.10 Grafika v IT Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Jiří Kalous Základní a mateřská škola Bělá nad Radbuzou, 2011 GRAFIKA Grafika ve smyslu umělecké grafiky

Více

Vývoj počítačové grafiky. Tomáš Pastuch Pavel Skrbek 15.3. 2010

Vývoj počítačové grafiky. Tomáš Pastuch Pavel Skrbek 15.3. 2010 Vývoj počítačové grafiky Tomáš Pastuch Pavel Skrbek 15.3. 2010 Počítačová grafika obor informatiky, který používá počítače k tvorbě umělých grafických objektů nebo pro úpravu již nasnímaných grafických

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

2D grafika. Jak pracuje grafik s 2D daty Fotografie Statické záběry Záběry s pohybem kamery PC animace. Počítačová grafika, 2D grafika 2

2D grafika. Jak pracuje grafik s 2D daty Fotografie Statické záběry Záběry s pohybem kamery PC animace. Počítačová grafika, 2D grafika 2 2D grafika Jak pracuje grafik s 2D daty Fotografie Statické záběry Záběry s pohybem kamery PC animace Počítačová grafika, 2D grafika 2 2D grafika PC pracuje s daným počtem pixelů s 3 (4) kanály barev (RGB

Více

11 Zobrazování objektů 3D grafiky

11 Zobrazování objektů 3D grafiky 11 Zobrazování objektů 3D grafiky Studijní cíl Tento blok je věnován základním algoritmům zobrazení 3D grafiky. Postupně budou probrány základní metody projekce kolmé promítání, rovnoběžné promítání a

Více

IVT. Rastrová grafika. 8. ročník

IVT. Rastrová grafika. 8. ročník IVT Rastrová grafika 8. ročník listopad, prosinec 2013 Autor: Mgr. Dana Kaprálová Zpracováno v rámci projektu Krok za krokem na ZŠ Želatovská ve 21. století registrační číslo projektu: CZ.1.07/1.4.00/21.3443

Více

- obvyklejší, výpočetně dražší - každé písmeno je definováno jako zakřivený nebo polygonální obrys

- obvyklejší, výpočetně dražší - každé písmeno je definováno jako zakřivený nebo polygonální obrys Práce s písmem Definice písma Vektorové písmo - obvyklejší, výpočetně dražší - každé písmeno je definováno jako zakřivený nebo polygonální obrys Rastrové písmo - jednodušší, snadno se kreslí, obvykle méně

Více

zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se

zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se Kapitola 3 Úpravy obrazu V následující kapitole se seznámíme se základními typy úpravy obrazu. První z nich je transformace barev pro výstupní zařízení, dále práce s barvami a expozicí pomocí histogramu

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Webové stránky. 16. Obrázky na webových stránkách, optimalizace GIF. Datum vytvoření: 12. 1. 2013. str ánk y. Vytvořil: Petr Lerch. www.isspolygr.

Webové stránky. 16. Obrázky na webových stránkách, optimalizace GIF. Datum vytvoření: 12. 1. 2013. str ánk y. Vytvořil: Petr Lerch. www.isspolygr. Webové stránky 16. Vytvořil: Petr Lerch www.isspolygr.cz Datum vytvoření: 12. 1. 2013 Webové Strana: 1/6 Škola Ročník Název projektu Číslo projektu Číslo a název šablony Autor Tématická oblast Název DUM

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Zobrazování terénu. Abstrakt. 1. Úvod. 2. Vykreslování terénu

Zobrazování terénu. Abstrakt. 1. Úvod. 2. Vykreslování terénu Zobrazování terénu Jan Vaněk, Bruno Ježek Universita Obrany, Fakulta vojenského zdravotnictví, Katedra všeobecně vzdělávacích oborů e-mail: vanek@pmfhk.cz; jezek@pmfhk.cz Abstrakt Vizualizace terénu je

Více

Rozšíření bakalářské práce

Rozšíření bakalářské práce Rozšíření bakalářské práce Vojtěch Vlkovský 2011 1 Obsah Seznam obrázků... 3 1 Barevné modely... 4 1.1 RGB barevný model... 4 1.2 Barevný model CMY(K)... 4 1.3 Další barevné modely... 4 1.3.1 Model CIE

Více

VY_32_INOVACE_INF4_12. Počítačová grafika. Úvod

VY_32_INOVACE_INF4_12. Počítačová grafika. Úvod VY_32_INOVACE_INF4_12 Počítačová grafika Úvod Základní rozdělení grafických formátů Rastrová grafika (bitmapová) Vektorová grafika Základním prvkem je bod (pixel). Vhodná pro zpracování digitální fotografie.

Více

Bitmapová grafika: Vrstvy - interakce (režimy prolnutí)

Bitmapová grafika: Vrstvy - interakce (režimy prolnutí) VY_32_INOVACE_PG3108 ; Mgr. Pavel Hauer ; 5/2012; 1.ročník; bitmapová grafika, Počítačová grafika; názorná pomůcka pro výuku, opakování, doplnění látky Bitmapová grafika: Vrstvy - interakce (režimy prolnutí)

Více

GIS Geografické informační systémy

GIS Geografické informační systémy GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu

Více

Vektorové grafické formáty

Vektorové grafické formáty Vektorové grafické formáty Semestrální práce na předmět KAPR Fakulta stavební ČVUT 28.5.2009 Vypracovali: Petr Vejvoda, Ivan Pleskač Obsah Co je to vektorová grafika Typy vektorových formátů Souborový

Více

Autodesk AutoCAD Civil 3D

Autodesk AutoCAD Civil 3D Novinky 2018 Autodesk AutoCAD Civil 3D www.graitec.cz www.cadnet.cz, helpdesk.graitec.cz, www.graitec.com Obsah: 1. Vyřešení překrytí koridorů (motýlkování)... 3 2. Relativní návrhové linie... 4 3. Dynamické

Více

kamerou. Dle optických parametrů objektivu mohou v získaném obraze nastat geometrická

kamerou. Dle optických parametrů objektivu mohou v získaném obraze nastat geometrická Odstranění geometrických zkreslení obrazu Vstupní obraz pro naše úlohy získáváme pomocí optické soustavy tvořené objektivem a kamerou. Dle optických parametrů objektivu mohou v získaném obraze nastat geometrická

Více

Programátorská dokumentace

Programátorská dokumentace Programátorská dokumentace Požadavky Cílem tohoto programu bylo představit barevné systémy, zejména převody mezi nejpoužívanějšími z nich. Zároveň bylo úkolem naprogramovat jejich demonstraci. Pro realizaci

Více

5 Přehled operátorů, příkazy, přetypování

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

Základy 3D modelování a animace v CGI systémech Cinema 4D C4D

Základy 3D modelování a animace v CGI systémech Cinema 4D C4D EVROPSKÝ SOCIÁLNÍ FOND Základy 3D modelování a animace v CGI systémech Cinema 4D C4D PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Mgr. David Frýbert 2013 CGI systémy Computer - generated imagery - aplikace

Více

8. přednáška z předmětu GIS1 Rastrový datový model a mapová algebra

8. přednáška z předmětu GIS1 Rastrový datový model a mapová algebra 8. přednáška z předmětu GIS1 Rastrový datový model a mapová algebra Vyučující: Ing. Jan Pacina, Ph.D. e-mail: jan.pacina@ujep.cz Pro přednášku byly použity texty a obrázky z www.gis.zcu.cz Předmět KMA/UGI,

Více

StatSoft Jak vyzrát na datum

StatSoft Jak vyzrát na datum StatSoft Jak vyzrát na datum Tento článek se věnuje podrobně možnostem práce s proměnnými, které jsou ve formě datumu. A že jich není málo. Pokud potřebujete pracovat s datumem, pak se Vám bude tento článek

Více

scale n_width width center scale left center range right center range value weight_sum left right weight value weight value weight_sum weight pixel

scale n_width width center scale left center range right center range value weight_sum left right weight value weight value weight_sum weight pixel Změna velikosti obrázku Převzorkování pomocí filtrů Ačkoliv jsou výše uvedené metody mnohdy dostačující pro běžné aplikace, občas je zapotřebí dosáhnout lepších výsledků. Pokud chceme obrázky zvětšovat

Více

27. listopadu 2013, Brno Připravil: David Procházka

27. listopadu 2013, Brno Připravil: David Procházka 27. listopadu 2013, Brno Připravil: David Procházka Texturování Počítačová grafika 2 Obsah přednášky Strana 2 / 37 Obsah přednášky 1 Obsah přednášky 2 Texturování 3 Multum In Parvo 4 Modulace textury ve

Více

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d. Úloha 1 Která barva nepatří do základních barev prostoru RGB? a. Černá b. Červená c. Modrá d. Zelená Úloha 2 V rovině je dán NEKONVEXNÍ n-úhelník a bod A. Pokud paprsek (polopřímka) vedený z tohoto bodu

Více

2 Datové typy v jazyce C

2 Datové typy v jazyce C 1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,

Více

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Počítačová grafika. Studijní text. Karel Novotný

Počítačová grafika. Studijní text. Karel Novotný Počítačová grafika Studijní text Karel Novotný P 1 Počítačová grafika očítačová grafika je z technického hlediska obor informatiky 1, který používá počítače k tvorbě umělých grafických objektů a dále také

Více

SOU Valašské Klobouky. VY_32_INOVACE_3_01 IKT Pc grafika základní pojmy Mgr. Radomír Soural. Zkvalitnění výuky prostřednictvím ICT

SOU Valašské Klobouky. VY_32_INOVACE_3_01 IKT Pc grafika základní pojmy Mgr. Radomír Soural. Zkvalitnění výuky prostřednictvím ICT SOU Valašské Klobouky VY_32_INOVACE_3_01 IKT Pc grafika základní pojmy Mgr. Radomír Soural Zkvalitnění výuky prostřednictvím ICT Název a číslo projektu CZ.1.07/1.5.00/34.0459 Název školy SOU Valašské Klobouky,

Více

Kde se používá počítačová grafika

Kde se používá počítačová grafika POČÍTAČOVÁ GRAFIKA Kde se používá počítačová grafika Tiskoviny Reklama Média, televize, film Multimédia Internetové stránky 3D grafika Virtuální realita CAD / CAM projektování Hry Základní pojmy Rastrová

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Úlohy nad rastrovými daty Daniela

Více

FORTANNS. havlicekv@fzp.czu.cz 22. února 2010

FORTANNS. havlicekv@fzp.czu.cz 22. února 2010 FORTANNS manuál Vojtěch Havlíček havlicekv@fzp.czu.cz 22. února 2010 1 Úvod Program FORTANNS je software určený k modelování časových řad. Kód programu má 1800 řádek a je napsán v programovacím jazyku

Více

Připravil: David Procházka. Vertex Buffer Objects

Připravil: David Procházka. Vertex Buffer Objects 30. září 2013, Brno Připravil: David Procházka Vertex Buffer Objects Počítačová grafika 2 Obsah přednášky Strana 2 / 22 Obsah přednášky 1 Obsah přednášky 2 Vertex Buffer Objects 3 Příklady 4 Shrnutí Obsah

Více

Monochromatické zobrazování

Monochromatické zobrazování Monochromatické zobrazování 1995-2015 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ Mono 2015 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 1 / 27 Vnímání šedých odstínů

Více

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti

Více

Omezení barevného prostoru

Omezení barevného prostoru Úpravy obrazu Omezení barevného prostoru Omezení počtu barev v obraze při zachování obrazového vjemu z obrazu Vytváření barevné palety v některých souborových formátech Různé filtry v grafických programech

Více

Tabulkový procesor. Základní rysy

Tabulkový procesor. Základní rysy Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních

Více

Programování shaderů GLSL

Programování shaderů GLSL Programování shaderů GLSL Příklad vertex shader Tutor1-Flat Změna geometrie ve VS Nastavení z podle hodnoty získané z aplikace uniform App: loc=gl.glgetuniformlocation(sp,"ftime0_x"); gl.gluniform1f(loc,time);

Více

Počítačová grafika SZŠ A VOŠZ MERHAUTOVA 15, BRNO

Počítačová grafika SZŠ A VOŠZ MERHAUTOVA 15, BRNO Počítačová grafika SZŠ A VOŠZ MERHAUTOVA 15, BRNO 1 Základní dělení 3D grafika 2D grafika vektorová rastrová grafika 2/29 Vektorová grafika Jednotlivé objekty jsou tvořeny křivkami Využití: tvorba diagramů,

Více

Programovatelné shadery a jazyk Cg. Petr Kmoch

Programovatelné shadery a jazyk Cg. Petr Kmoch Programovatelné shadery a jazyk Cg Petr Kmoch Historie Softwarové výpoèty Pevná pipeline Volitelné moduly Programovatelné shadery 11.12.2002 Petr Kmoch, MFF UK 2 Grafická pipeline Triangulace scény Vrcholy

Více

Úvod do počítačové grafiky

Úvod do počítačové grafiky Úvod do počítačové grafiky elmag. záření s určitou vlnovou délkou dopadající na sítnici našeho oka vnímáme jako barvu v rámci viditelné části spektra je člověk schopen rozlišit přibližně 10 milionů barev

Více

ak. rok 2013/2014 Michal Španěl, spanel@fit.vutbr.cz 24.2.2014

ak. rok 2013/2014 Michal Španěl, spanel@fit.vutbr.cz 24.2.2014 Zadání projektu Texturování Základy počítačové grafiky (IZG) ak. rok 2013/2014 Michal Španěl, spanel@fit.vutbr.cz 24.2.2014 1 První seznámení Cílem projektu je pochopení praktických souvislostí témat přednášek

Více

2.17 Webová grafika. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Jiří Hort. Vyrobeno pro SOŠ a SOU Kuřim, s.r.o.

2.17 Webová grafika. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Jiří Hort. Vyrobeno pro SOŠ a SOU Kuřim, s.r.o. 2. 2.17 Webová grafika Grafický návrh webové stránky se skládá z několika kroků: koncepce stránky, návrh navigace, příprava obrázků a jejich optimalizace. GIMP samozřejmě nabízí také nástroje pro práci

Více

Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/34.0527

Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/34.0527 Projekt: Příjemce: Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/34.0527 Střední zdravotnická škola a Vyšší odborná škola zdravotnická, Husova 3, 371 60 České Budějovice

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

Práce na počítači. Bc. Veronika Tomsová

Práce na počítači. Bc. Veronika Tomsová Práce na počítači Bc. Veronika Tomsová Barvy Barvy v počítačové grafice I. nejčastější reprezentace barev: 1-bitová informace rozlišující černou a bílou barvu 0... bílá, 1... černá 8-bitové číslo určující

Více

V poslední době se v oblasti dokumentace archeologických movitých i nemovitých památek začíná objevovat zcela nová, digitální metoda tzv.

V poslední době se v oblasti dokumentace archeologických movitých i nemovitých památek začíná objevovat zcela nová, digitální metoda tzv. 3D FOTOGRAMMETRIE V poslední době se v oblasti dokumentace archeologických movitých i nemovitých památek začíná objevovat zcela nová, digitální metoda tzv. pozemní 3D fotogrammetrie. Jedná se o tvorbu

Více

Řídící karta PCI v. 2.2 LED Panely , revize 1.0

Řídící karta PCI v. 2.2 LED Panely , revize 1.0 Popis řídící karty světelných panelů verze 2.2 Řídící karta PCI v. 2.2 LED Panely 17.9.21, revize 1. Vstupy Video signál analogový PAL / NTSC S-VIDEO konektor, CVS (kompozit) Obrazová data z PC z programu

Více

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:

Více

1 Základní funkce pro zpracování obrazových dat

1 Základní funkce pro zpracování obrazových dat 1 Základní funkce pro zpracování obrazových dat 1.1 Teoretický rozbor 1.1.1 Úvod do zpracování obrazu v MATLABu MATLAB je primárně určen pro zpracování a analýzu numerických dat. Pro analýzu obrazových

Více

GIS Geografické informační systémy

GIS Geografické informační systémy GIS Geografické informační systémy Obsah přednášky Prostorové vektorové modely Špagetový model Topologický model Převody geometrií Vektorový model Reprezentuje reálný svět po jednotlivých složkách popisu

Více

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

Animace a geoprostor. První etapa: Animace 2. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně Animace a geoprostor První etapa: Animace 2. 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í - Flamingo Prostředí Nekonečná rovina

Více

Zobrazte si svazy a uspořádané množiny! Jan Outrata

Zobrazte si svazy a uspořádané množiny! Jan Outrata LatVis Zobrazte si svazy a uspořádané množiny! Jan Outrata Motivace potřeba visualizovat matematické (algebraické) struktury rychle, přehledně a automaticky počítačovými prostředky ruční kreslení je zdlouhavé

Více

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/07.0018 2. Množiny, funkce MNOŽIN, ZÁKLDNÍ POJMY Pojem množiny patří v matematice ke stěžejním. Nelze jej zavést ve formě definice pomocí

Více

9 Prostorová grafika a modelování těles

9 Prostorová grafika a modelování těles 9 Prostorová grafika a modelování těles Studijní cíl Tento blok je věnován základům 3D grafiky. Jedná se především o vysvětlení principů vytváření modelů 3D objektů, jejich reprezentace v paměti počítače.

Více

Co je grafický akcelerátor

Co je grafický akcelerátor Co je grafický akcelerátor jednotka v osobním počítači či herní konzoli přebírá funkce hlavního procesoru pro grafické operace graphics renderer odlehčuje hlavnímu procesoru paralelní zpracování vybaven

Více

Android OpenGL. Pokročilé shadery

Android OpenGL. Pokročilé shadery Android OpenGL Pokročilé shadery Struktura programu Reálná aplikace zpravidla obsahuje více než jeden shader Kód pro inicializaci shaderu je dobré mít ve třídě (méně opisování stejného kódu) Shadery není

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Pro tvorbu samostatně spustitelných aplikací je k dispozici Matlab library.

Pro tvorbu samostatně spustitelných aplikací je k dispozici Matlab library. 1.1 Matlab Matlab je interaktivní systém pro vědecké a technické výpočty založený na maticovém kalkulu. Umožňuje řešit velkou oblast numerických problémů, aniž byste museli programovat vlastní program.

Více

Možnosti tisku v MarushkaDesignu

Možnosti tisku v MarushkaDesignu 0 Možnosti tisku v MarushkaDesignu OBSAH 1 CÍL PŘÍKLADU...2 2 PRÁCE S PŘÍKLADEM...2 3 UKÁZKA DIALOGOVÉHO OKNA...3 4 STRUČNÝ POPIS PŘÍKLADU V MARUSHKADESIGNU...5-1 - 1 Cíl příkladu V tomto příkladu si ukážeme

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

Sítě SFN Systém pro analýzu a vizualizaci pokrytí a rušení vysílacích sítí

Sítě SFN Systém pro analýzu a vizualizaci pokrytí a rušení vysílacích sítí Sítě SFN Systém pro analýzu a vizualizaci pokrytí a rušení vysílacích sítí Sítě SFN ver. 7 je výpočetní systém pro analýzu pokrytí a rušení vysílacích sítí pro služby FM, TV, DVB- T a T-DAB a analýzu a

Více

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011 Automatická detekce anomálií při geofyzikálním průzkumu Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011 Cíle doktorandské práce Seminář 10. 11. 2010 Najít, implementovat, ověřit a do praxe

Více

Název: VY_32_INOVACE_PG3315 Umisťování textur pomocí modifikátoru UVW Map. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

Název: VY_32_INOVACE_PG3315 Umisťování textur pomocí modifikátoru UVW Map. Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max Název: VY_32_INOVACE_PG3315 Umisťování textur pomocí modifikátoru UVW Map Autor: Mgr. Tomáš Javorský Datum vytvoření: 09 / 2012 Ročník: 3 Vzdělávací oblast / téma: 3D grafika, počítačová grafika, 3DS Max

Více

Porovnání obrazových souborů vzniklých digitalizací periodik a monografií

Porovnání obrazových souborů vzniklých digitalizací periodik a monografií Příloha č. 4 Porovnání obrazových souborů vzniklých digitalizací periodik a monografií Digitální dokumenty vznikají v digitalizaci NK dvojím způsobem : 1. Naskenování mikrofilmu skenerem Wicks and Wilson

Více

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV 003 49.01

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV 003 49.01 PROGRAMOVATELNÉ AUTOMATY Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV 003 49.01 KNIHOVNA RecDBXLib DATABÁZE V DATABOXU 2. vydání řijen 2008 OBSAH 1. ÚVOD...3 2. KNIHOVNA RecDBXLib DATABÁZE V DATABOXU...4

Více

DATOVÉ FORMÁTY GRAFIKY, JEJICH SPECIFIKA A MOŽNOSTI VYUŽITÍ

DATOVÉ FORMÁTY GRAFIKY, JEJICH SPECIFIKA A MOŽNOSTI VYUŽITÍ DATOVÉ FORMÁTY GRAFIKY, JEJICH SPECIFIKA A MOŽNOSTI VYUŽITÍ UMT Tomáš Zajíc, David Svoboda Typy počítačové grafiky Rastrová Vektorová Rastrová grafika Pixely Rozlišení Barevná hloubka Monitor 72 PPI Tiskárna

Více

Microsoft Office. Excel vyhledávací funkce

Microsoft Office. Excel vyhledávací funkce Microsoft Office Excel vyhledávací funkce Karel Dvořák 2011 Vyhledávání v tabulkách Vzhledem ke skutečnosti, že Excel je na mnoha pracovištích používán i jako nástroj pro správu jednoduchých databází,

Více

VYUŽITÍ POČÍTAČOVÉ GRAFIKY

VYUŽITÍ POČÍTAČOVÉ GRAFIKY POČÍTAČOVÁ GRAFIKA VYUŽITÍ POČÍTAČOVÉ GRAFIKY ÚPRAVA FOTOGRAFIÍ NAFOCENÉ FOTOGRAFIE Z DIGITÁLNÍHO FOTOAPARÁTU MŮŽEME NEJEN PROHLÍŽET, ALE TAKÉ UPRAVOVAT JAS KONTRAST BAREVNOST OŘÍZNUTÍ ODSTRANĚNÍ ČERVENÝCH

Více

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je

Více

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se MNOŽIN, ZÁKLDNÍ POJMY Pojem množiny patří v matematice ke stěžejním. Nelze jej zavést ve formě definice pomocí primitivních pojmů; považuje se totiž rovněž za pojem primitivní. Představa o pojmu množina

Více

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části

Více

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina 5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.

Více

1 Linearní prostory nad komplexními čísly

1 Linearní prostory nad komplexními čísly 1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)

Více

Zobrazování bannerů podporují pouze nově vytvořené šablony motivů vzhledu.

Zobrazování bannerů podporují pouze nově vytvořené šablony motivů vzhledu. Bannerový systém ProEshop od verze 1.13 umožňuje zobrazování bannerů na popředí e-shopu. Bannerový systém je přístupný v administraci e-shopu v nabídce Vzhled, texty Bannerový systém v případě, že aktivní

Více

Reprezentace bodu, zobrazení

Reprezentace bodu, zobrazení Reprezentace bodu, zobrazení Ing. Jan Buriánek VOŠ a SŠSE P9 Jan.Burianek@gmail.com Obsah Témata Základní dělení grafických elementů Rastrový vs. vektorový obraz Rozlišení Interpolace Aliasing, moiré Zdroje

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

Typy geometrie v. Rhinu. Body

Typy geometrie v. Rhinu. Body Typy geometrie v 16 Rhinu Rhino rozeznává pět základních typů geometrie: body (points), křivky (curves), plochy (surfaces) a spojené plochy (polysurfaces). Navíc jsou plochy nebo spojené plochy, které

Více

Obsah. Úvod... 9. Barevná kompozice... 16 Světlo... 18 Chromatická teplota světla... 19 Vyvážení bílé barvy... 20

Obsah. Úvod... 9. Barevná kompozice... 16 Světlo... 18 Chromatická teplota světla... 19 Vyvážení bílé barvy... 20 Obsah Úvod.............................................................................................. 9 Historie grafického designu a tisku..................................... 10 Od zadání k návrhu..............................................................

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

Reporting. Ukazatele je možno definovat nad libovolnou tabulkou Helios Orange, která je zapsána v nadstavbě firmy SAPERTA v souboru tabulek:

Reporting. Ukazatele je možno definovat nad libovolnou tabulkou Helios Orange, která je zapsána v nadstavbě firmy SAPERTA v souboru tabulek: Finanční analýza Pojem finanční analýza Finanční analýza umožňuje načítat data podle dimenzí a tyto součty dlouhodobě vyhodnocovat. Pojem finanční analýza není nejpřesnější, protože ukazatele mohou být

Více

Datové struktury 2: Rozptylovací tabulky

Datové struktury 2: Rozptylovací tabulky Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy

Více

Barvy v digitální fotografii. Jaroslav Svoboda

Barvy v digitální fotografii. Jaroslav Svoboda Barvy v digitální fotografii Jaroslav Svoboda Co je fotografie? Stroj času Trošku víc fyzikálně a bez sci-fi Záznam odrazu světla v určitém časovém intervalu Můžeme zaznamenat nejen intenzitu, ale i vlnovou

Více

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti Kapitola 5 Vektorové prostory V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti operací sčítání a násobení

Více

Ing. Jan Buriánek. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jan Buriánek, 2010

Ing. Jan Buriánek. Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jan Buriánek, 2010 Ing. Jan Buriánek (ČVUT FIT) Reprezentace bodu a zobrazení BI-MGA, 2010, Přednáška 2 1/33 Ing. Jan Buriánek Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické

Více

Zdroj: http://www.root.cz/clanky/pravda-a-myty-o-gifu/

Zdroj: http://www.root.cz/clanky/pravda-a-myty-o-gifu/ Zdroj: http://www.root.cz/clanky/pravda-a-myty-o-gifu/ Bitmapový formát (rastrový obrázek) Většina z používaných grafických formátů (JPEG, PNG, TGA, BMP) obsahuje popis rastrového obrázku jako celku ukládají

Více

Souřadnicové prostory

Souřadnicové prostory Prostor objektu Tr. objektu Tr. modelu Prostor scény Souřadnicové prostory V V x, y z x, y z z -z x, y Tr. objektu V =V T 1 T n M Tr. modelu Tr. scény x, y Tr. pohledu Tr. scény Tr. pohledu Prostor pozorovatele

Více

Controlweb. Úvod. Specifikace systému

Controlweb. Úvod. Specifikace systému Controlweb Úvod ControlWeb je aplikace pro řízení a indikaci v průmyslu v reálném čase. Mezi jeho základní funkce patří ovládání různých veličin spojitých, binárních nebo textových a zobrazování stavu

Více

Rastrová reprezentace

Rastrová reprezentace Rastrová reprezentace Zaměřuje se na lokalitu jako na celek Používá se pro reprezentaci jevů, které plošně pokrývají celou oblast, případně se i spojitě mění. Používá se i pro rasterizované vektorové vrstvy,

Více