1 VEKTOROVÉ FORMÁTY2 Vektorová grafika Způsob ukládání obrazových informací obraz reprezentován pomocí geometrických objektů body, přímky, křivky, pol...
Standard pro popis vektorových počítačových písem – fontů
Apple, koncem 80. let konkurent fontů Adobe Type 1
Podpora TrueType
implementována ve Windows i Linux (FreeType).
používaných v jazyce PostScript
ve Windows přípona .TTF
Nástupcem OpenType
výhody TrueType a PostScript Type 1 mnohem lepší lokalizace písem
OpenType
Standard pro popis vektorových počítačových písem – fontů
Microsoft, později i Adobe; nástupce standardu TrueType
Výhody
znaky mohou být popsány pomocí zvyklostí TrueType nebo PostScript založen na Unicode
jeden soubor může popisovat až 65 536 znaků lepší podpora pro typografické speciality
méně problémů s lokalizací písem
jako slitky – ligatury
Podpora OpenType
přenositelný mezi Windows, Apple a Unix
ve Windows přípona .OTF nebo .TTF ve Win 7 výhradně OpenType
Portable Document Format (PDF)
Souborový formát pro ukládání dokumentů nezávisle na softwaru i hardwaru
Adobe, snadno přenositelný může obsahovat text i obrázky zajišťuje, že se libovolný dokument na všech zařízeních zobrazí stejně volně dostupné prohlížeče pro mnoho platforem
otevřený standard
oficiální Adobe Reader
velice rozšířený a hojně využívaný
2008 publikován jako standard ISO
Portable Document Format (PDF)
Založen na jazyce PostScript
některé prvky implementovány mírně odlišně, jiné nejsou použity přidána schopnost vkládat použité fonty
obsahuje systém pro uložení různých částí dokumentu do jediného souboru
Použití komprese
aby byly k dispozici na libovolném jiném zařízení
text komprimuje algoritmem LZW84 výrazně menší než PostScript
Použití
graficky bohaté návrhy, vyžadující dodržení původního vzhledu
reklamních materiály, prospekty
dokumenty s omezenou možností editace
faktury, dokumenty
DJVU
Obrazový formát (bitmapový) s moderními způsoby komprese
velmi účinný jednobitový algoritmus (JB2) pro text a čárovou grafiku moderní komprese typu wavelet (IW44)
obdoba pdf, vhodné pro scany textů
vynikající kompresní poměr
Separace popředí a pozadí
pro větší barevnou hloubku ztrátová a velmi úsporná komprese při zachování dobré čitelnosti obrazu
maska – 1bit, vysoké rozlišení, JBIG popředí – 24bit, nízké rozlišení, DWT pozadí – 24bit, střední rozlišení, DWT
Indexování podle masky (OCR)
elektronickou podobu lze schraňovat s dokumentem ve zvláštní vrstvě
dokument prohledávatelný a indexovatelný
Scalable Vector Graphics (SVG)
Formát popisující 2D vektorovou grafiku pomocí XML
značkovací jazyk a formát souboru měl by se v budoucnu stát základním otevřeným formátem pro vektorovou grafiku na Internetu
pro rastrovou grafiku dostatek formátů
Scalable Vector Graphics (SVG)
Tři základní typy grafických objektů
vektorové tvary (vector graphic shapes)
rastrové obrazy (raster images) textové objekty
Uspořádání objektů
obdélník, kružnice, elipsa, úsečka, lomená čára, mnohoúhelník a křivka)
mohou být různě seskupeny, formátovány pomocí atributů nebo stylů CSS polohovány pomocí obecných prostorových transformací
Podpora
ořezávání objektů, alpha masking, interaktivita, animace, filtrování obrazu
konvoluce, displacement mapping, atd…
ne všechny SVG prohlížeče umí
http://www.svgopen.org/2004/papers/svg04viewer/
Scalable Vector Graphics (SVG) Jazyk SVG je aplikací XML
tvorba (převážně internetových) interaktivních animací, prezentací a her malá velikost výsledných souborů
zejména do webových stránek
uchovávají se ve vektorovém formátu podpora MP3 podpora streamingu vytlačily reklamní bannery GIF
vlastník Adobe (dříve Macromedia), vyvíjen od 1996
Vlastní implementovaný programovací jazyk ActionScript
rozvinutí všech možností interaktivní animace vývoj robustních aplikací vyspělý objektově orientovaný programovací jazyk
Adobe Flash
Export do dvou základních formátů .swf
Small Web Format, později Shockwave Flash
možnost přehrávání ve webovém prohlížeči k jeho běhu nutný přehrávač – Adobe Flash Player
malá velikost souboru
volně ke stažení na stránkách Adobe
.exe
pro spouštění ve Windows
není nutný další přehrávač
větší velikost tzv. projektor
má v sobě implementovaný FlashPlayer
Adobe Flash
Použití
bannery, hry, animace
možnost hraní přímo v okně prohlížeče
bez nutnosti stahování množství her a jejich variant forma reklamy výrobku, firmy nebo filmu
Nevýhody
vysoké nároky na výpočetní výkon vlastní plugin (Adobe Flash Player – poplatky) samostatný program
velmi populární na internetu, malá velikost souboru
nelze ovládat JavaScriptem
nepřístupnost, nestabilita, bezpečnostní rizika
Možnosti náhrady
MS Silverlight HTML 5 (přehrávání videa z prohlížeče, nová API)
Windows Presentation Foundation (WPF)
Nový způsob programovaní aplikací pro Windows Vista
grafický podsystém .NET Framework 3.0, varianta k WinFoms
Podpora
vektorová grafika
animace, multimédia
stíny, záře, rozostření, průhlednost, zrcadlení
interaktivní 3D aplikace
práce s audiem a videem (avi, mpeg, wmv)
efekty
bezztrátová změna velikosti, barevné gradienty, …
poskytuje podmnožinu funkcí z Direct3D zaměřenou na multimédia, dokumenty a uživatelské rozhraní
Data Binding (provázání dat)
Podpora XAML
eXtensible Application Markup Language
WinForms a WPF
WPF aplikace založeny na DirectX
renderovány na grafické kartě
značné ulehčení procesoru
Microsoft Silverlight
Plug-in pro prohlížeče pro vytváření interaktivních webových aplikací
Internet Explorer, Firefox, Safari, 2007 postaven na technologii Windows Presentation Foundation (WPF) a .NET Framework 3.0
Uživatelské rozhraní
vytvořeno pomocí XAML
kromě vzhledu může popisovat např. animace a vazbu na data
Přehrávání videa
není vyžadována instalace .NET Framework
podporováno video v HD kvalitě a kodek VC-1
Programovatelnost
API přístupné přes JavaScript, od verze 2 podpora C#, VB.NET podpora standardních ovládacích prvků
Extensible Application Markup Language (XAML)
Značkovací jazyk pro psaní uživatelského rozhraní
možnost nadefinovat vlastnosti jednotlivých elementů
stručně, přehledně, jednoduše
Oddělení aplikace od vzhledu
aplikace C# nebo VB.NET
XPS XML Paper Specification, MS popis tiskové stránky v XML založeno na XAML http://www.vyvojar.cz/Articles/447-1-wpf-hello-xaml-world.aspx
Silverlight – vlastnosti
HTML 5
Video
Canvas (plátno)
vygenerování bitmapového obrázku pomocí JavaScriptu
dynamicky, na straně klienta
kreslení s použitím grafických primitiv možné uložit jako jpg nebo png
vhodné pro
javascriptové 2D API
editaci obrázků (filtry, transformace) analýzu (histogramy, grafy) vykreslování pozadí ve hrách
nevhodné pro animace
AutoCAD – DWG
Nativní formát výkresů AutoCAD
Autodesk, možnost ukládat 2D i 3D data spolu se svou výměnnou (textovou) variantou DXF standard
neveřejný formát ostatní programy obvykle podporují, kompatibilita není zaručena
Design Web Format (DWF)
Souborový formát pro efektivní distribuci 2D a 3D návrhových dat
formát Autodesku pro prohlížení, připomínkování, odměřování a tisk CAD souborů elektronické výkresy obsahující veškeré výkresové styly, měřítka a výkresové listy
Komprimace
podstatně menší velikost než originální CAD výkresy a modely
lze je snadno tisknout na jakémkoliv výstupním zařízení
s různými externími referencemi a závislostmi
AutoCAD DXF (Drawing Exchange Format)
starší CAD formát umožňující výměnu dat ASCII i binární forma
Virtual Reality Modeling Language (VRML)
Grafický formát založený na deklarativním programovacím jazyce
navržen především pro popis trojrozměrných scén
obsahujících aktivní i pasivní objekty
norma ISO, použito hlavně v aplikacích virtuální reality a na internetu
Popis prostorových těles
pomocí seznamu souřadnic vrcholů a plochami specifikovanými indexy svých vrcholů do seznamu vrcholů vlastní klíčová slova pro základní tvary a text
rozklad na trojúhelníky je ponechán na prohlížeči VRML
geometrie a chování 3D objektů standard ISO, vychází z VRML97, nástupce (někdy VRML 3.0) možnost přejít z VRML syntaxe na XML
jednoduché zpracování celého dokumentu pomocí velkého množství knihoven a programových API pro práci s XML
trojrozměrné scény jsou popsány stromovou strukturou
Profily prohlížeč nemusí implementovat celou normu X3D, ale pouze určitou podmnožinu pro její identifikaci na začátku každého dokumentu X3D zapsání profilu, který vyžaduje např. pro mobilní zařízení vypnutí textur, …
http://song-opi.de/images
X3D
Rendering – rozšíření
stíny
raflexe
zrcadlení
Bump Mapping
Streaming
Position Interpolator Stream
Orientation Iterpolator Stream
NURBS
plochy
křivky
ořezávání
Effects
zář
oheň
kouř
čeření vody
http://www.delaflor.com/x3d.php
Universal 3D (U3D)
Otevřený souborový formát pro ukládání a přenos 3D dat
navržen konsorciem 3DIF (vč. Intel, Boeing, HP, Adobe) 2005 standardizován společností Ecma; univerzální standard implementován v pdf
Univerzálnost
reprezentace jakýchkoliv 3D dat umožňuje přenositelnost mezi různými platformami vnitřní datová reprezentace dostatečně jednoduchá
Kontinuální stupeň detailu a progresivní datový tok
neobsahuje složité geometrické struktury (ani spliny, pole vektorů …)
hrubé vykreslení neúplného souboru jako u progresivního jpeg
Komprese
snižuje objem dat 3D scény oproti CAD formátům
kompresní poměr až 1:30.
http://www10.aeccafe.com/nbc/articles
Formáty pro e-knihy
EPUB
AZW
otevřený, na základě XML Rusko, Asie
LIT
starší, používaný (hlavně PDA)
FB2 (FictionBook)
proprietární formát pro Amazon Kindle vysoká komprimace, DRM
MBP (Mobipocket)
jeden ze standardních otevřených formátů, založen na XHTML 1.1 podpora DRM
MS, kompatibilita s MS Word, málo rozšířený
PDB (Palm)
starší, rozšířený pouze text základní formátování: Mobipocket PRC
Formáty pro e-knihy Zalam. Otevř. Formát Přípona DRM Obrázky Tabulky Zvuky Interakt. řádků standard Poznámky Záložky DjVu .djvu ? Ano Ano Ne Ne Ne Ano Ano Ano EPUB (IDPF) .epub Ano Ano Ano Ano Ano Ano Ano Ano Ano FictionBook .fb2 Ne Ano Ano Ne Ne Ano Ano Ano ? HTML .html Ne Ano Ano Ne Ne Ano Ano Ne Ne Kindle .azw Ano Ano Ano Ano Ano Ano Ne Ano Ano MS Reader .lit Ano Ano ? Ne Ne Ano Ne ? Ano Mobipocket .prc, .mobi Ano Ano Ano Ne Ano Ano Ne Ano Ano eReader .pdb Ano Ano ? Ne Ne Ano Ne Ano Ano Plain text .txt Ne Ne Ne Ne Ne Ano Ano Ne Ne PDF .pdf Ano Ano Ano Ano Ano Ne Ano Ano Ano PostScript .ps Ne Ano ? Ne Ne Ne Ano ? ?
TROJROZMĚRNÉ MODELY
Křivky a plochy
Důležité v 2D i 3D
fonty, trajektorie při animaci, definice objektů… počátky v automobilovém průmyslu
Matematické vyjádření
Explicitní vyjádření y = f(x) Implicitní vyjádření F(x,y) = 0 Parametrický tvar x = x(t) y = y(t) z = z(t) t , nejčastěji t <0, 1> Bodová rovnice Q(t) = [x(t), y(t), z(t)] Vektorová rovnice (polohový vektor) q(t) = (x(t), y(t), z(t))
Křivky a plochy
Tečný vektor
Směrový vektor křivky
Tečna v bodě Q(t0)
určen derivacemi podle t po složkách q'(t) = (x'(t), y'(t), z'(t)) má směr tečného vektoru q'(t0) a prochází bodem Q(t0) P(u) = Q(t0) + u q'(t0)
Navazování křivek
uzel
bod, kde se stýkají dva segmenty křivky
vyžadujeme spojitost v uzlu
http://joningram.org/blog/2009/03/
Spojitost křivky
Parametrická spojitost křivky Cn
křivka Q(t) je třídy Cn, má-li ve všech bodech spojité derivace podle t do řádu n: q 1(i) (1) = q 2(i) (0),
i = 0,1,…,n
Geometrická spojitost křivky Gn
nemusí se rovnat tečné vektory, stačí, že jsou kolineární
rovnají se tečny; pohybující se objekt by v uzlu skokem změnil rychlost
q 1(i) (1) = h q 2(i) (0), i = 0,1,…,n
v praxi nejjednodušší zajistit G1
Modelování křivek
Základem polynom, snadno diferencovatelný
Křivky po částech polynomiální
Qn (t) = a0 + a1 t+ ⋯ + an tn segmenty jsou polynomy
Řídicí body
Pi (řídicí polygon) z jejich polohy se počítá křivka někdy i tečny
nulové druhé derivace v krajních uzlových bodech
přirozené spliny Vicher: Numerická matematika
Hermitovské kubiky (Fergusonovy kubiky)
Řídicí prvky
určeny řídicími body P0 a P1 a dvěma tečnými vektory p0 a p1 v nich jsou-li vektory nulové, stane se křivka úsečkou
Snadné navazování křivek
definováno pomocí derivací: C1 nesnadná editace tečného vektoru v 3D
Hermitovské kubiky (Fergusonovy kubiky)
http://spec.winprog.org/curves/
Bézierovy křivky
Bézierovy křivky n-tého stupně
určeny n+1 body řídicího polygonu a vztahem
Bernsteinovy polynomy n-tého stupně
Křivka prochází prvním a posledním bodem řídicího polynomu.
Tečné vektory
při změně jediného řídicího bodu se mění celá křivka v praxi dělení na křivky nižšího stupně (kubiky) a navazování
Bézierovy křivky
Spojitost C0:
Poslední bod Q1 (bod Pn) je první bod Q2 (bod Q0 = P0’)
Spojitost C1:
n(Q1 – Q0) = n (Pn – Pn–1) Q1 – Q0 = Pn – Pn–1 Pn = ½ (Q1 + Pn–1) Splněno, pokud Pn = Q0 je středem úsečky určené body Pn–1 a Q1
G1 stačí na přímce
Algoritmus de Casteljau
postupné dělení úseček řídicího polygonu v zadaném poměru
zvolené t, nejčastěji v polovině
dokud se nedojde k jedinému bodu (3×)
nalezený bod rozděluje výslednou křivku na dvě části současně vygenerované body tvoří řídicí polygony těchto dvou částí zastavení rekurzivního procesu vzdálenost sousedních bodů řídicího polygonu menší než úhlopříčka pixelu P20
P21
P10 P32
P22 P11
P33
P00
P31
P10 P11
P21 P22
P20
P30
P31 P32
P33 P00
P30 http://www.hyperkrychle.cz/curves/
Coonsovy kubiky
Uniformní neracionální B-spline
určeny čtyřmi body a vztahem
Segment křivky obecně neprochází krajními body řídicího polynomu, začíná a končí v bodech
Spline křivka je křivka složená z polynomu stupně n
Spline stupně n
po částech polynomiální křivka třídy Cn–1 .
Přirozený spline
přičemž v opěrných bodech je zajištěna spojitost až do (n – 1) derivací v praxi se nejčastěji používají kubické spline křivky
interpoluje své řídicí body
Aproximační spline
nejčastěji B-spline kubiky
Uniformní (Coonsův) kubický B-spline
Vzniká navázáním Coonsových kubik
Spojitost v uzlech
další kubika využívá 3 body předchozího segmentu a jeden nový je tedy určena n ≥ 4 body a skládá se z n – 3 segmentů vyplývá z rovnic pro první a druhé derivace
Uzlový vektor
definován hodnotami parametru t v uzlech pokud ti+1 – ti = konst, je uzlový vektor uniformní
Uniformní (Coonsův) kubický B-spline
Uzavřený Coonsův B-spline
(periodický) vznikne opakováním 3 (obecně n) prvních bodů řídicího polygonu na jeho konci
http://www.hyperkrychle.cz/curves/
Dvojnásobný a trojnásobný bod
Vícenásobné body
ostrá změna průběhu B-splinu
http://www.hyperkrychle.cz/curves/
Neuniformní racionální B-spline – NURBS
Neuniformní (nekonstantní t)
Křivka určena
další zobecnění křivek racionalita souvisí s homogenními souřadnicemi n+1 body Pi (i = 0, 1, … n) řídicího polygonu řádem B-spline k (stupeň polynomu je k–1) uzlovým vektorem U délky n+k+1
Uzlový vektor
posloupnost neklesajících reálných čísel
uzlových hodnot
možno volit tak, aby procházela prvním a posledním bodem