Záv re ná Odborná Zpráva Semestrální práce p edm tu Vizualizace
Dynamické generování modelu pro letecký model Prahy
Vypracoval: Radek Mikuláš 8.1.2004
Zadání: Vytvo te modul pro projekt (diplomovu práci) DILEMOP, který bude zobrazovat model s volitelnou úrovní detailu. Jako vzorová data pou*ijte data pro pra*skou oblast Josefov dopln,ná ortofotosnímky a výškovými údaji. Navrhn,te vhodný konverzní algoritmus, který p edzpracuje vstupní data a ulo*í je ve vhodném formátu. Vyu*ijte C++ a OpenGL.
-1-
Stanovení cíl.: 1. 2. 3. 4.
Zjistit zda existují geografická digitální data, vyu*itelná k vizualizaci m,sta Prahy. Prozkoumat formáty ve kterých jsou data k dispozici. Vytvo it vzorový program, který bude slou*it jako základ pro DP. Implementovat jednoduchý modul LOD.
/ešení problému: Dostupnost dat Jednou z málo institucí, která disponuje rozsáhlým souborem dat m,sta Prahy, je Institut M,stské Informatiky Praha ( www.imip.cz ). V nabídce firmy jsou tyto soubory dat. Jednotná digitální mapa Prahy – JDMP Vektorová digitální mapa s obsahem na úrovni m, ítka 1:500 v 3. t íd, p esnosti. Zpracována je i veškerá dostupná geodetická dokumentace v >íselné nebo digitální form, (geometrické plány, dokumentace skute>ného provedení staveb apod.). V n,kterých p ipojených obcích bylo vyu*ito mapování ZMVM. Data jsou >len,na do vrstev katastrální mapy, technické mapy a technického vybavení (in*enýrské sít,). V sou>asné dob, je zpracován polohopis na cca 86% území m,sta. In*enýrské sít, návazn, zpracovávají jednotliví správci. Data jsou udr*ována v databázi MAPA3 a distribuována ve formátech VTX, DXF, DGN.
Obrázek 1: P íklad JDMP
Vrstevnice Vrstevnice jsou generovány z DMT, to znamená p esnost polohová a výšková plus-minus 1 metr (referen>ní m, ítko 1:5 000). Nelze pou*ívat jako vrstevnice pro technickou mapu (1:500) vzhledem ke zpFsobu po ízení zdrojových dat fotogrammetrickou cestou (rozte> základních výškových bodF 30 m, zanedbány výškové zm,ny < 1 m).
-2-
Obrázek 2: P íklad vrstevnic
3D digitální model terénu V roce 1996 byl fotogrammetricky vytvo en hladký digitální model terénu s vrstevnicemi po 1m. DMT byl vytvo en na úrovni map 1:5000 s p esností ur>ení výšek bodF cca 30cm, p i>em* nebyl brán ohled na terénní stupn, menší ne* 1m. Proto je t eba po>ítat s p esností DMT 1m. Pro vytvo ení DMT byly fotogrammetricky ur>eny výškové body v intervalu 30m a dopln,ny p edpisem výrazných terénních hran. Návazn, byla zdrojová data p evedena do prost edí Atlas a zde vyhotoven DMT. Distribuovat lze DMT ve formátu Atlas, je mo*né poskytovat kresebné soubory vrstevnic (v kladu map 1:5000) ve formátu VTX >i DXF a seznam sou adnic a výšek výškových bodF ve formátu STX. Pro u*ití v jiných softwarech lze dodat ASCII soubor se seznamem sou adnic výškových bodF a soubor s p edpisem povinných spojnic.
Obrázek 3: P íklad DMT
Ortofotomapa Pro pot eby správy m,sta bylo v roce 1996 provedeno letecké snímkování území hl. m. Prahy. Od té doby se provádí aktualizace 50% území m,sta ro>n,. Snímky s p ekrytem 60%/40% byly nascanovány (1200 DPI), ortogonáln, p ekresleny s vyu*itím digitálního modelu terénu, zmozaikovány a barevn, vyrovnány. Vysledné ortofotomapy v kladu listF mapy 1:2000 mají pixel 30 cm (snímkování 1996 - 40 cm), to znamená, *e je lze vykreslovat v maximálním m, ítku 1:1500-1:2000. P i pou*ití v,tšího m, ítka ji* dochází k neostrosti kresby. Snímky jsou distribuovány ve formátech TIF a BMP, pop ípad, JPG. Pro pou*ití -3-
CAD nebo GIS aplikacích je pro ka*dou ortofotomapu k dispozici soubor HDR, obsahující informace o sou adnicovém p ipojení.
Obrázek 4: P íklad Ortofotomapy
Digitální model zástavby a zelen Model vzniká nad barevnou ortfotomapou tak, *e ka*dá budova bude obsahovat úplný po>et st,n, z toho plyne duplicitní zpracování spole>ných svislých st,n a bude identifikována jednozna>ným identifikátorem p evzatým z vrstvy budov SDMP (díky tomu bude mo*no jednotlivé budovy z modelu vyjímat). ZeleN bude zpracována schematicky blokov, s tím, *e budou zam, eny areály parkové zelen, a liniová zeleN bude m, ena od ší ky a výšky 4 m. Vnitrobloková zeleN není p edm,tem zpracování. Jednotlivé stromy budou m, eny jen v p ípad, významných soliterF. V sou>asnosti je prostorový digitální model zástavby dokon>en na území cca 52 km2.
Obrázek 5: P íklad modelu zástavby a zelen,
Získání t,chto dat je ovšem podmín,no sepsáním smlouvy, proto byly pro tuto semestrální práci pou*ity pouze data voln, dostupná na stránkách imipu. Tyto data pokrývají oblast nazývanou Josefov. Po prozkoumání t,chto typF dat, bylo zjišt,no, *e pro jednoduchou vizualizaci posta>í Digitální model terénu, Ortofotomapa, a Digitální model zástavby.
-4-
Dostupné formáty, struktura souboru. Digitální modely jsou k dispozici ve formátech DGN nebo DXF. Z dFvodu dostupnosti dokumentace a jednoduššímu (textovému) tvaru byl zvolen formát DXF. Soubor obsahující DMT obsahuje pouze definici jednotlivých polygonF p edstavujících terén. Soubor s modelem budov je strukturován do dvou >ástí, první p edstavují bloky domF a druhou p edstavuje zeleN. Jednotlivé fyzické bloky domF jsou i v souboru logicky organizovány do blokF, tak*e mF*e být celkový model snadno strukturován. ZeleN oproti tomu strukturována není, co* p edstavuje problém. Jednotlivé logické >ásti modelu jsou nezávisle na blocích rozd,leny do vrstev. Význam jednotlivých vrstev je tento: 1: domy – st,ny 2: ploché st echy 3: st echy 5: arký e 6: komíny 7: st echy v,*i>ek 50: pFdorys 60: kmeny stromF 61: koruny stromF Oba tyto modely obsahují sou adnice bodu jako absolutní sou adnice odkazující se k jednomu bodu, po>átku. Ortofotomapa byla získána ve formátu TIFF a p evedena do formátu JPEG v dosta>ující kvalit,. Formát JPEG je výhodný z dFvodu malé velikosti (do budoucna se po>ítá s rozsáhlým souborem map). K map, je p ipojen soubor ur>ující její mapování do modelu, ale experimentáln, bylo zjišt,No, *e tyto sou adnice obsahují malé nep esnosti a byly empiricky p epo>ítány. Samotná Ortofotomapa není p íliš kvalitní, proto*e u n,kterých budov jsou vid,t i jejich st,ny, je to pravd,podobn, dáno technikou focení a to ne v*dy ze stejného úhlu. Tato chyba se nazývá „Nadir“. P i aplikaci mapy jako textury bude jist, zpFsobovat nep esnosti v mapování.
Program Jako základ pro parsování souborF byla vyu*ita knihovna dxflib která je dostupná pod GPL a je voln, ke sta*ení zde: http://www.ribbonsoft.com/qcad_downloads.html. Tato knihovna však neobsahovala podporu pro všechny pot ebné elementy DXF souboru, tak*e bylo nutno provést adu úprav. Data získaná ze souborF jsou ukládána do vícerozm,rných spojových seznamF. Jednotlivé logické celky jsou v souboru ulo*eny do blokF. Tyto bloky je mo*né do sebe vno ovat. Na za>átku souboru je uveden celkový seznam blokF (Block_Records) tak*e, jsou po>et a názvy blokF dop edu známy. Z t,chto blokF se sestaví spojový seznam, který poslou*í pro pozd,jší napln,ní blokF daty. V další >ásti souboru jsou definice jednotlivých blokF, pokud n,který z blokF obsahuje entitu INSERT, je do n,j vlo*en odkaz na blok se stejným jménem. Ka*dý tento blok mF*e být relativn, posunut vF>i bloku nad azenému. Takto je v pam,ti vytvá ena strukturovaná podoba modelu. (viz obr.6) -5-
1. blok
2. blok
n-1. bl.
n. blok
Polygon
Polygon
Insert
Polygon
Polygon
Polygon
Insert
Polygon
Polygon
Obrázek 6: Schéma vnit ní struktury dat
Po vytvo ení všech blokF, následuje definice entit, které nejsou sou>ástí *ádného bloku. Pokud je touto entitou entita INSERT, pak p edstavuje odkaz do struktury, a v modelu p edstavuje fyzický blok budov. Další nep i azené entity p edstavuji polygony znázorNující m,stskou zeleN.
1. blok
1. insert
2. insert
2. blok
3. blok
n-1. insert
4. blok
n. insert
n-1. bl.
n. blok
Obrázek 7: Schéma vnit ní struktury dat, fyzické bloky budov
Po p elo*ení DXF souboru do vnit ní formy, je na data aplikována rekurzivní funkce, která vytvo í další spojový seznam OpenGL Display ListF, Ka*dý prvek (D-List) p edstavuje jeden fyzický blok budov, a ka*dý má u sebe ulo*enu hodnotu polohy v prostoru a dva body ur>ující kvádr, který tento blok obklopuje. Poloha je zjišt,na jako aritmetický prFm,r všech polygonF a ohrani>ující kvádr jako minimum a maximum hodnot vrcholF. Ob, tyto hodnoty budou p i zobrazování pou*ity pro výpo>et Level Of Detail (LOD). ZároveN ka*dý prvek obsahuje hodnotu, která p edstavuje po>et polygonF, ze kterých se skládá. Tyto hodnoty jsou p i vykreslování s>ítány a zobrazovány jako informace o aktuální slo*itosti scény.
Texturování P i vytvá ení D-ListF je provád,no mapování textury pomocí vypo>ítaných sou adnic. Jak bylo uvedeno výše, referen>ní sou adnice odpovídající [u,v] = [0,0] sou adnicím textury, byly po zjišt,ní, *e sou adnice p ilo*ené k textu e, jsou nep esné zjišt,ny empiricky. ZároveN byly zjišt,ny nesrovnalost v pom,ru stran X:Y textury a modelu. Tato deformace byla op,t empiricky vypo>ítána jako 80:100. -6-
Poloha vrcholu v textu e byla vypo>ítána podle vzorce u = (x-u0)*uratio v = (y-v0)*vratio u, v – výsledná sou adnice v textu e z intervalu (0,1) x, y – sou adnice vrcholu v prostoru, (z sou adnice je ignorována) u0, v0 – empiricky zjišt,ná poloha po>átku textury v prostoru uratio, vratio – konstanty ur>ující m, ítko, kolik pixelF textury odpovídá jednotce sv,tových sou adnic. V ideální p ípad, by m,lo platit uratio= vratio, ale z dFvodF deformace zde platí uratio= 0.000798 vratio = 0.00100 Pro na>ítání textur, které jsou z dFvodu úspory místa ulo*ené ve formátu JPEG, byla pou*ita knihovna voln, ši itelná knihovna jpeglib, vytvo ená Independent JPEG Group, podrobnosti zde http://www.ijg.org.
Level Of Detail Pro odleh>ení výpo>tu bylo vytvo eno jednoduché LOD, podle polohy jednotlivých blokF je po>ítána jejich vzdálenost od kamery a jejich poloha ve viditelném prostoru. Podle toho se bu[ zobrazí nebo skryje celý blok. P i výpo>tu zda blok le*í ve viditelném prostoru se po>ítá poloha jeho ohrani>ujícího kvádru vzhledem k šesti rovinám p edstavujícím komolý jehlan (Frustum), pokud úsp,šn, projde všemi šesti testy, mF*e být zobrazen. Postup výpo tu: Šest referen>ních rovin se vypo>ítá z projek>ní P a modelovací matice M, vynásobením t,chto matic získáme 4 vektory v1 a* v4. v1 v2 v3 v4 = P M
Kombinací sloupcF výsledné matice získáme jednotlivé parametry všech šesti o ezových rovin (viz obr.3).
Obrázek 8: Schéma viditelné oblasti
-7-
Left:
r = v4
Right:
r = v4 + v1
Top:
r = v4
Bottom:
r = v4 + v2
Near:
r = v4
Far:
r = v4 + v3
v1 v2 v3
Vektor r p edstavuje 4 parametry r =(A,B,C,D) rovnice roviny 0 = Ax + By + Cz + D Pokud po normalizaci rovnice a dosazení bodu [x,y,z] platí Ax + By + Cz + D <= 0 pak tento bod nele*í uvnit po*adované oblasti.
Ovládání programu Program se ovládá myší a klávesnicí. Myš: P i stisku Levého tla>ítka a sou>asného pohybu dochází k rotaci kamery. Klávesnice: Šipky dop edu a dozadu – posuv ve sm,ru kterým se „dívá“ kamera. Šipky doleva a doprava – „úkrok stranou“ v rovin,. [Home] a [End] – pohyb nahoru a dolF. [F] – zapnout a vypnout vyplNování. [C] – zapnout a vypnout zobrazení vrstevnic. [Esc] – ukon>ení programu. [R] – reset polohy a pohledu kamery. [+] a [-] – nastavení vzdálenosti vykreslování budov
Zhodnocení: V rámci semestrální práce bylo dosa*eno úsp,chu dokon>ením funk>ního programu, který zkoumá mo*nosti zobrazení >ásti m,stské zástavby a umíst,né do reálného terénu a dotvo eni dojmu realisti>nosti pou*itím leteckých snímkF jako textury. Poda ilo se také implementovat jednoduchý modul LOD, který umo*Nuje dynamicky m,nit vzdálenost, do které se mají budovy vykreslovat. A tak je mo*no názorn, demonstrovat funk>nost modulu. B,hem projektu byla zjišt,n nedostatek v modelu budov. Tento model obsahuje nadbyte>né polygony, p edstavující vnit ní st,ny budov, které zbyte>n, zv,tšují objem zobrazovaných polygonF a tím i zát,* po>íta>e. Názorn, je to vid,t na obr.9
-8-
Obrázek 9: Ukázka nadbyte>ných vnit ních st,n budov
Pro p edstavu je zde uveden obr.10, který p edstavuje screenshot spušt,ného programu.
Obrázek 10: P íklad spušt,ného programu
Zdroje: J. ^ára, B. Beneš, P. Felkel. Moderní po íta ová grafika. ComputerPress 1998 DXF parser: http://www.ribbonsoft.com/qcad_downloads.html JPEGlib: http://www.ijg.org Základy po>íta>ové grafiky: http://www.cgg.cvut.cz/~zpg NeHe OpenGL tutorials: http://nehe.gamedev.net -9-