ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ OBOR GEODÉZIE A KARTOGRAFIE KATEDRA MAPOVÁNÍ A KARTOGRAFIE
Formáty pro vektorovou grafiku semestrální práce
Petr Vejvoda Ivan Pleskač Markéta Hyndráková
V Praze dne 14. 4. 2011
Kartografická polygrafie a reprografie
Úvod Semestrální práce pojednává o vektorových grafických formátech. Účelem práce je seznámit čtenáře s tím, co to ty formáty jsou, jakého typu můžou být a některé formáty blíže specifikovat.
1 1.1
Formáty pro vektorovou grafiku Vektorové grafické formáty
Vektorové grafické formáty tvoří poměrně různorodou skupinu souborových formátů určených pro popis grafické informace. Vektorová grafika má jednotlivé grafické prvky popsány příkazy jazyka, nikoli bitmapou a proto umožňuje jednoduché zoomování obrázků beze změny kvality. Rozdíl mezi rastrovými grafickými formáty a vektorovými je v tom, že rastrové formáty jsou nenávratně rozloženy do množiny různobarevných pixelů umístěných v pravidelné rastrové mřížce (bitmapě, pixmapě). U vektorové grafických formátů je aplikován naprosto opačný postup – všechny objekty v obrázku jsou popsány analyticky jako množina geometrických tvarů. Podle konkrétního typu formátu je možní použít různé základní geometrické tvary (v dokumentaci jsou nazývány entitami). V nejjednodušších formátech jsou podporovány pouze úsečky(formát nazývaný SLD), ve složitějších formátech je možno použít i složitější prvky, jako jsou oblouky, křivky nebo text a ty nejkomplexnější formáty dokonce zavádí hierarchické členění entit včetně možnosti jejich programové změny či vytváření (PostScript, SVG – Scalable Vector Graphics).
1.2
Souborový formát
U některých vektorových formátů se můžeme na rozdíl od rastrových formátů, setkat s vlastností, programové konstrukce. Nejznámějším zástupcem této kategorie formátů je již výše zmiňovaný PostScript, tento formát je založen na programovacím jazyku inspirovaném programem Forthem. Programovací jazyk Forth vynalezl Charles H. Moore (Chuck Moore) v 60. letech. V dnešní době se programovací jazyk Forth užívá ve vestavěných systémech a real-time prostředích. Pro urychlení běhu aplikací vytvořených ve Forthu byly zkonstruovány specializované mikroprocesory. Forth však nebyl vytvořen, aby napravil chyby či nedostatky některého jiného programovacího jazyka, ale aby dovoloval psát kompaktní a snadno odladitelné programy. Vlastnosti Forthu jsou v této aplikační doméně zjevné: jazyk je jednoduchý na prvotní zpracování (parsing) i interpretaci, samotný interpreter je tak jednoduchý, že je ho možné uložit do několika kilobytů paměti a i rychlost zpracování je dostatečně vysoká, což umožňuje implementaci PostScriptu přímo v tiskárnách. Dnes, kdy je procesor s desítkami milionů tranzistorů obvyklou součástkou, nám to nemusí připadat nijak divné, ovšem PostScript bylo možné provozovat i na šestnáctibitových mikrořadičích.
1
1.3
Vektorové formáty určené pro 2D grafiku a CAD
V oblasti plošné grafiky nalezneme velké množství formátů od těch nejjednodušších jako jsou například SLD, SHP či HPGL tak i složitější formáty jako například CDR (Corel Draw). Najdeme tu ovšem i vektorové formáty „programovatelné“ jako např. Postscript. Pravděpodobně nejrozšířenějším vektorovým grafickým formátem je DXF neboli Drawing Interchange File Format. Tento formát byl vytvořen společností AutoDesk, prvotně pro program AutoCad, ovšem postupem času se stal kompatibilní se všemi Cad aplikacemi. Data o vektorových objektech mohou být ukládána jak v grafickém, tak v textovém formátu, textový formát má tvar DXB. Rozšířenější je však textová podoba, která je mnohem jednodušší pro zápis , ukládá se totiž pouze dvojice dat parametr:hodnota z toho vyplývá , že není potřeba znát syntaxi dat. Dříve bylo možné v tomto formátu ukládat pouze plošné entity, dnes již je nedílnou součástí také možnost ukládání prostorový objektů. Poměrně složité je ukládání textur objektu a dalších optických vlastností objektů. Jako je např. index lomu či průhlednost. Proto většina formátů ukládá pouze tvar a barvu tělesa. Podobné omezení platí i pro plošnou (2D) grafiku, kde nastávají problémy s vyplňováním vnitřních ploch objektů a v některých případech také k rozdílné interpretaci barev (některé aplikace mají bílou barvu pozadí, další zase černou). Podporovanými grafickými entitami jsou především bod, úsečka, kružnice, kruhový oblouk, elipsa, eliptický oblouk, ploška s třemi či čtyřmi vrcholy, text, polyčára (buď lomená nebo spline křivka) a 3D plocha. Trojrozměrné modely popisované pomocí CSG (Constructive Solid Geometry) jsou do těchto souborů ukládány ve zvláštním tvaru, při přenosu mezi různými aplikacemi se však častěji používají pouze rovinné plošky anebo vyhlazené 3D plochy.
1.4
Vektorové formáty pro popis (tiskových) stránek
Vektorových formátů sloužících k popisu stránek, bylo vynalezeno velké množství, neboť každý výrobce tiskáren byl přesvědčen že musí mít svůj formát. Tento názor je již zastaralý a naštěstí se zachoval už jen zlomek těchto formátů. Tyto formáty využívají všichni výrobci. Jsou to formáty: ∙ PostScript ∙ PDF (Portable Document Format) ∙ HPGL (Hewlett-Packard Graphics Language) HPGL je využíván především plottery a také formát PCL který využívají některé levnější laserové tiskárny. S formátem PCL se většinou moc nesetkáme, zbylé tři formáty jsou poměrně časté, nejoblíbenějším je formát PDF. HPGL se používá například i při přenosu jednodušší vektorové grafiky mezi různými grafickými aplikacemi a systémy typu CAD, nejde tedy o formát určený pouze pro tiskový výstup.
2
Obr. 1: ukázka postscriptu
1.5
Metaformáty
Metaformáty to jsou formáty, ve kterých je možné sdružit vektorový popis grafické informace s popisem rastrovým (bitmapovým). Typicky se jedná o informace uložené ve formě rastrů (bitmap či pixmap), vektorové grafiky a formátovaných řádkových i odstavcových textů. Mezi metaformáty patří mimojité již dříve zmiňovaný PostScript a PDF, ale patří sem i další formáty WMF (Windows Metafile), EMF (Enhanced Windows Metafile), CGM (Computer Graphics Metafile) či IFF. Jsou i další vektorové formáty schopné kombinovat vektorovou a rastrovou grafiky, jedná se především o interní formáty grafických aplikací. Jde například o formát CDR který je interním formátem programu CorelDraw zde se jedná o primárně vektorový formát s možným doplňkem ve formě bitmap. Opačným způsobem vznikli formáty pro rastrové programy jako jsou například AdobePhotoshop, či Gumo. V těchto programech se mohou k primárně rastrovým informacím ukládat vektorové informace výběru či cesty.
1.6
Popis trojrozměrných objektů
Trojrozměrné objekty je možno uložit do mnoha formátů, zde se zmíním o několika z nich: ∙ STL neboli Stereolithography. Tento formát slouží k ukládání těles, která jsou reprezentována polygony. Byla primárně určena pro přenos dat na zařízení pro stereolitografii. Stereolitografie je velice přesná metoda, která vytváří model postupným vytvrzováním fotopolymeru pomocí laseru. Jde o nejstarší metodu, její výhodou je vysoká přesnost, nevýhodou poté dlouhá doba tvorby modelu. Formát STL je pro svou jednoduchost dnes již využíván v mnoha Cad aplikací, které ani nemusí s stereolitografií souviset, existují dvě verze formátu: binární a textový. ∙ 3DS – 3D Studio File Format. Tento formát byl vytvořen firmou AutoDesk k popisu trojrozměrných scén vytvořených v Dosovském programu 3D studio, později tento program přešel v 3D Studio MAX. S tímto formátem pracuje i spousta jiných programů výhodou tohoto formátu je možnost ukládání informací o texturách, animacích, osvětlení a další. ∙ OFF – Object File Format. Tento formát slouží především k ukládání trojrozměrných databází, jelikož je možné uložit k objektu i informaci o aplikaci ve které byl vytvořen či jméno autora atd. Soubory uložené v tomto formátu mohou nabývat dvou podob a sice podoby binární, sloužící k úspoře místa, či podoby textové určené pro přenos dat mezi jednotlivými platformami. 3
∙ NFF – Neutral File Format Tento souborový formát byl prvně navržen pro potřeby testování rychlosti a kvality vykreslování různých renderovacích programů (renderování, je proces, při kterém vzniká ze zadaných dat cílový obrázek, v případě grafického editoru je výstupem 3D obraz, v případě webových stránek jde o vysázení webové stránky). Lze tento formát použít o pro přenos informací o 3D objektech mezi libovolnými aplikacemi. Formát nám umožňuje ukládat jak polygony jednoduché, jako je například stavební prvek stěn, tak i polygony s normálovým vektorem, dále informace o nastavení kamery, pozice atd. Data jsou zapisována textovou podobou, je zde i možnost přímého zadání jednoduchých kvadrik, jako je například koule, nebo kužel či válec. ∙ RAW – RAW File Format. Pravděpodobně nejjednodušší formát pro zápis prostorových objektů, zápis probíhá textově po řádcích, kde na každém řádku jsou uloženy souřadnice jednoho trojúhelníku. V základní verzi nejde ukládat žádné jiné informace, ale v rozšířené verzi lze ukládat informace pomocí skládání trojúhelníků do jednoduchých objektů. Jména objektů jsou poté umístěna na jednotlivých řádcích nebo na konci řádků se souřadnicemi trojúhelníků.
1.7
Virtuální realita
Pro popis objektů ve virtuální realitě slouží několik formátů či jazyků, ovšem pravděpodobně nejznámější a nejrozšířenější je program VRML, neboli Virtual Reality Modeling Language. Používá se pro popis prostorových objektů a aplikací ve virtuální realitě na Internetu. Prostorová tělesa se definují v tomto formátu v podobě seznamu souřadnic vrcholů a plochami specifikovanými indexy svých vrcholů do seznamu vrcholů. Pro základní tělesa jako je koule, válec či kužel, existují klíčová slova, takže je nemusíme definovat pomocí rozkládání na jednotlivé trojúhelníky. Je podporováno texturování a tělesa je dokonce možno potáhnout texturou v podobě videa.
Obr. 2: Ukázka vrml grafiky
Obr. 3: Ukázka vrml grafiky
4
1.8
Popis některých formátů
PS (PostScript) je soubor s vektorovou grafikou založený na jazyce Postskript. PS soubory jsou především soubory pro tiskárny, které mají implementovaný interpret jazyka Postskript. Formát je nativním formátem programu Adobe Illustrator firmy Adobe, je možné ho použít i pro program CorelDraw!, který ovšem má i svůj vlastní formát CDR. Ve své podstatě se jedná o textový soubor, uvnitř je popsán obrazový dokument. Může obsahovat i rastrové prvky, ovšem poté je ten formát obludně veliký. To se například stává u programu Tex, který v některých verzích vyžaduje obrázky ve formátu PS nehledě na to, zda jsou bitmapou či vektorovou grafikou. EPS (Encapsulated PostScript) je v podstatě určitá verze programu PostScript ale obsahuje definici pouze jediné tiskárny. AI (Adobe Illustrator) postscriptový soubor firmy Adobe, platí pro něho vše, co pro formát PS, liší se jen hlavičkou souboru. CDR (Corel Draw) je formát výhradně pro program Corel Draw, který byl s ním vyvinut a který se také postupně s tím to programem vyvíjí, od verze Corel Draw 9 je již tento formát výrazně komprimován. Je to binární vektorový formát a může obsahovat i bitmapu. Je vhodný pro zálohování a předávání obrázků v tomto programu. DWG (AutoCAD Graphics) interním formátem pro CAD (Computer Aided Design) aplikací. Vyvinula ho společnost AutoDesk pro své aplikace, jde o nezvěřejněný vektorový formát, který se s každou novou inovací programu také inovuje. Existují různé konvertory, formát je schopen načíst jak program Corel Draw tak program Adobe Illustrator. Pro výměnu dat s jinými aplikacemi by ale měl sloužit formát DXF. DXF (Data eXchange File) je formát programů CAD, který se stal standardem pro rýsování počítačových projektů v nejrůznějších oborech. Formát je určen pro výměnu dat s jinými aplikacemi. HPGL (Hewlett Packard Graphic Language) je jazyk původně navržený pro výrobky firmy HP (Hewlett Packard) k obsluhování plotrů. Používá se především pro práci s daty určených k výstupu na plotru. . Příkazy jazyka řídí posun skutečného nebo fiktivního pera, jeho volbu (barvu), zdvižení, spuštění, přesun atd. Obyčejný uživatel se s ním setká na Internetu jen velmi zřídka. DVI (Device Independent) - formát, který by neměl záviset na použité platformě. Zpravidla je generován z formátu PS nebo EPS jako konečný formát pro výstup na periferní zařízení. Není určen pro další zpracování.
Závěr Závěrem lze říci, že vektorové grafické formáty jsou velmi šikovné, zvláště při vytváření projektů v CAD aplikací, jedná se o projekty kdy je potřeba kreslit a hlavně postupně editovat a pracovat s modelem který vytváříme, to znamená různé přiblížení či oddálení, smazání atd.
5
Literatura [1] WWW stránky Root.cz, [online], [cit. 2011-04-14], URL: Http://www.root.cz/ clanky/vektorove-graficke-formaty-a-metaformaty/ [2] WWW stránky Aldebaran [online], [cit. 2011-04-14], URL: Http://www.aldebaran. cz/studium/formaty.html#VECTOR
6