Title: WYKORZYSTANIE JEZYK
1WYKORZYSTANIE JEZYKÓW OPISU WIRTUALNEJ
RZECZYWISTOSCI DO TRÓJWYMIAROWEJ WIZUALIZACJI
DANYCH PRZESTRZENNYCH
POLITECHNIKA GDANSKA WYDZIAL ELEKTRONIKI
TELEKOMUNIKACJI I INFORMATYKI KATEDRA SYSTEMÓW
GEOINFORMATYCZNYCH
Dr inz. Marek Moszynski Gdansk, 2006
2 PLAN WYKLADU
- Podstawy matematyczne trójwymiarowej wizualizacji
- Rola kart graficznych w trójwymiarowej
wizualizacji - Interfejs programistyczny OpenGL i Java3D
- Jezyk opisu wirtualnej rzeczywistosci VRML jako
jezyk programowania - Animacja w wirtualnej rzeczywistosci
- Rodzaje danych przestrzennych
- GeoVRML jako roszerzenie standardu do
wizualizacji danych przestrzennych - Standard X3D
- Przykladowe zastosowania
3PODSTAWY MATEMATYCZNE TRÓJWYMIAROWEJ WIZUALIZACJI
4PODSTAWY MATEMATYCZNE TRÓJWYMIAROWEJ WIZUALIZACJI
5PODSTAWY MATEMATYCZNE TRÓJWYMIAROWEJ WIZUALIZACJI
- Rotacja
- Wzgledem osi x
- Wzgledem osi y
- Wzgledem osi z
6DISPLAY ARCHITECTURE IN WIN95
Windows Application
Video for Windows (VFW)
Realistic Display Mixer (RDX)
Graphics Device Interface (GDI)
Active Movie (Win95)
Direct3D Retained Mode
Direct3D Immediate Mode
DIBENG Emulator
Direct Video
DirectDraw Hardware Emulation Layer (HEL)
Direct3D Hardware Emulation Layer (HEL)
Windows Device Driver Interface (DDI)
DirectDraw Direct3D Hardware Abstraction Layer
(HAL) / Device Driver Interface
Graphics Device
7ZASADA DZIALANIA KARTY GRAFICZNEJ
Screen space triangle stream
Transformed vertex stream
Vertex stream
Triangle stream
Vertex Program
Clip/Cull/ Vieport
Triangle Assembly
Pamiec tekstur
Rasteryzacja
Processed fragment stream
Fragment stream
Pixel stream
Fragment Program
Composite
Framebuffer
Image
8ARCHITEKTURA PROCESORA GRAFICZNEGO
Vertex Processing
Fragment Processing
9CPUs vs. GPUs
- Pentium Extreme Edition 840
- 3.2 GHz Dual Core
- 230M Transistors
- 90nm process
- 206 mm2
- 2 x 1MB Cache
- 25.6 GFlops
- GeForce 7800 GTX
- 430 MHz
- 302M Transistors
- 110nm process
- 326 mm2
- 313 GFlops (shader)
- 1.3 TFlops (total)
10CPUs vs. GPUs
- Efficiency of FLOPs delivered
PEE 840 7800GTX GPU/CPU
Graphics GFlops Graphics GFlops 25.6 1300 50.8
Shader GFlops Shader GFlops 25.6 313 12.2
Die Area (mm2) Die Area (mm2) 206 326 1.6
Die Area normalized Die Area normalized 206 218 1.1
Transistors (M) Transistors (M) 230 302 1.3
Power (W) Power (W) 130 65 0.5
Graphics GFlops/mm 0.1 6.0 47.9
Graphics GFlops/tr 0.1 4.3 38.7
Graphics GFlpos/W 0.2 20.0 101.6
11TESTY WYDAJNOSCI KART GRAFICZNYCH
12INTERFEJS PROGRAMISTYCZNY OpenGL I Java3D
- OpenGL mozna zdefiniowac jako programowy
interfejs sprzetu graficznego". Jest to
biblioteka przeznaczona do tworzenia
trójwymiarowej grafiki, bardzo szybka i latwo
przenaszalna pomiedzy róznymi systemami. W OpenGL
zastosowano algorytmy opracowane przez Silicon
Graphics (SGI), niekwestionowanego lidera w
dziedzinie animacji i grafiki komputerowej. - Java3D jest standardowym rozszerzeniem jezyka
Java w wersji 1.2. Nie jest to jednak
niezalezna biblioteka w calosci napisana w
Javie. Do swego dzialania wymaga biblioteki
OpenGL w wersji co najmniej 1.1, a wiec Java3D
wykorzystuje niskopoziomowe wywolania funkcji
OpenGL'a, co daje gwarancje odpowiednio szybkiego
renderowania scen w czasie rzeczywistym.
13INTERFEJS PROGRAMISTYCZNY OpenGL I Java3D
Per Vertex Operations Primitive Assembly
Polynomial Evaluator
DisplayList
Per Fragment Operations
Frame Buffer
CPU
Rasterization
Texture Memory
Pixel Operations
14INTERFEJS PROGRAMISTYCZNY OpenGL I Java3D
15INTERFEJS PROGRAMISTYCZNY OpenGL I Java3D
OpenGL Java3D
Zalety Intuicyjne programowanie Male zasoby pamieci potrzebne do uruchomienia aplikacji Szybkie wykonywanie operacji graficznych Szybkie wykonywanie operacji graficznych Wbudowane funkcje grafiki 3D Latwosc w kodowaniu Malo bugów technologii
Wady Brak prawdziwego API utrudnia programowanie Wolne wykonywanie operacji graficznych Pseudoobiektowosc JOGLa Dlugi czas trwania inicjalizacji obiektów graficznych i interfejsu pamieciozerny
16VRML
- Jezyk VRML (ang. Virtual Reality Modeling
Language) jest narzedziem pozwalajacym opisywac
obiekty i animacje na trójwymiarowej scenie.
Dzieki niemu istnieje mozliwosc tworzenia
interaktywnych wirtualnych swiatów, gdzie
uzytkownik ma mozliwosc poruszania sie pomiedzy
zdefiniowanymi obiektami (wyswietlanie obiektów
trójwymiarowych w czasie rzeczywistym),
definiowania dowolnej ilosci czujników
interakcyjnych zmieniajacych wyglad swiata VRML.
Wirtualne swiaty uruchamiane sa na tej samej
zasadzie co strony HTML - poprzez siec Internet -
trzeba jednak zaopatrzyc przegladarke internetowa
w odpowiedni dodatek (ang. plug-in). - Jezyk VRML charakteryzuje sie trzema cechami,
które odrózniaja go od innych aplikacji do
tworzenia grafiki trójwymiarowej, stanowiac
jednoczesnie o jego atrakcyjnosci. - dostepnosc mozliwosc odwiedzenia wirtualnego
swiata za pomoca sieci Internet, - mozliwosc poruszania sie po wirtualnym swiecie
wszystkie obiekty na scenie trójwymiarowej
mozna obejrzec z kazdej strony, ale nie na
zasadzie wyswietlania ich kolejnych rzutów,
czy tez animacji (chociaz to tez jest mozliwe),
ale poprzez chodzenie" wokól nich. Nie mozna
uzyskac tego efektu w tradycyjnych aplikacjach do
grafiki trójwymiarowej takich jak AutoCad czy
3DStudio, - interakcyjnosc kazdy uczestnik swiata
wirtualnego moze miec wplyw na jego wyglad,
jesli twórca umiescil w opisie sceny róznego
rodzaju czujniki.
17VRML
- Koncepcja przegladarki plików VRML
18ARCHITEKTURA JEZYKA VRML
Viewpoint
VRML V2.0 utf8 Viewpoint position 100 -20
300 description "Start" Shape
appearance Appearance material Material
emissiveColor 1 0 0 transparency
0.2 geometry Cone bottomRadius
4.2 height 8
Shape
geometry
Appearance
Material
19PRZYKLADOWE ZASTOSOWANIA JEZYKA VRML
20ANIMACJA W WIRTUALNEJ RZECZYWISTOSCI
- W jezyku VRML istnieje mozliwosc tworzenia
animacji. Do stworzenia animacji niezbedne sa
nastepujace elementy - zdefiniowany (za pomoca komendy DEF) wezel
którego pola beda na biezaco modyfikowane w
trakcie wykonywania animacji, - zdefiniowany wezel odpowiedzialny za poczatek,
koniec oraz czas trwania animacji
(TimeSensor), - zdefiniowany wezel interpolujacy wartosci pól
modyfikowanych w czasie trwania animacji, - zdefiniowanie sciezek pomiedzy polami wezlów
(powiazanie zdarzen), - opcjonalnie zdefiniowany wezel czujnikowy
(TouchSensor)
Schemat blokowy elementów oraz ich powiazan przy
tworzeniu animacji w jezyku VRML
21ANIMACJA W WIRTUALNEJ RZECZYWISTOSCI
Petla symulacji
Stworzenie swiata Zainicjowanie sensorów i swiatel
Odczyt sensorów
Renderowanie wygladu swiata
Wywolanie funkcji akcji swiata
Wykonanie zadan obiektów graficznych
Aktualizacja obiektów graficznych zaleznie od
odczytów sensora
22PRZYKLAD ANIMACJI WYKONANEJ W JEZYKU VRML
23RODZAJE DANYCH PRZESTRZENNYCH
24GeoVRML
- GeoVRML is an official Working Group of the
Web3D Consortium. It was formed on 27 Feb 1998
with the goal of developing tools and
recommended practice for the representation of
geographical data using the Virtual Reality
Modeling Language (VRML). The desire is to enable
geo-referenced data, such as maps and 3-D terrain
models, to be viewed over the web by a user with
a standard VRML plugin for their web browser. - The GeoVRML Working Group has a mailing list
where discussions and developments are posted.
Currently, this list consists of over 200 members
drawn from a wide gamut of backgrounds and
nationalities, including members from industry,
government, and academia geographers,
geologists, computer graphics developers, and of
course interested hobbyists. - The group has recently produced the GeoVRML 1.1
specification, providing a number of extensions
to VRML for supporting geographic applications.
There is also an accompanying Open Source Java
sample implementation of these nodes. Finally,
these nodes are part of Amendment 1 to the VRML97
ISO standard.
25WLASCIWOSCI JEZYKA GeoVRML
- Mozliwosc bezposredniego osadzania metadanych w
kodzie VRMLa w formatach - GD ltlatitudegt ltlongitudegt ltelevationgt
- ltlongitudegt ltlatitudegt ltelevationgt
- UTM ltnorthinggt lteastinggt ltelevationgt
lteastinggt ltnorthinggt ltelevationgt - GC ltxgt ltygt ltzgt
Gdansk Malbork
5421N 1840E 5402N 1903E
GD lat 54.35 lon 18.67 lat 54.03 lon 19.05
UTM(WGS84) 6024974N 348350E Zone number 34 5988990N 372288E Zone number 34
26WLASCIWOSCI JEZYKA GeoVRML
- Zwiekszenie precyzji prezentowanych danych
- Poprzez zdefiniowanie lokalnych kartezjanskich
ukladów wspólrzednych (ang. Local Cartesian
Frame)
UTM GC
LCF 310385.0E, 4361550.0N, 0m, zone 13 -1459877.12, -4715646.93, 4025213.19
Punkt 310400.0E, 4361600.0N, 0m, zone 13 -1459854.51, -4715620.48, 4025252.11
Punkt - LCF 22.61, 26.44, 38.92
27WLASCIWOSCI JEZYKA GeoVRML
- Zwiekszenie precyzji prezentowanych danych
- Poprzez zapis liczb jako ciagu znaków
- Konwersji za pomoca Javy ciagu znaków na liczbe
GeoCoordinate geoSystem "GD" point "57.7
-3.1 0" GeoCoordinate geoSystem "UTM",
"Z11 point "4361550.1 310385.2 1000"
28WLASCIWOSCI JEZYKA GeoVRML
- Modyfikacja wezla LOD (ang. Level of Detail)
decydujacego o poziomach szczególowosci
umieszczanych obiektów na scenie (GeoLOD)
29WLASCIWOSCI JEZYKA GeoVRML
- Zawiera dodatkowy wezel do opisywania obiektów
geograficznych (Metadata) - Zawiera dodatkowy wezel interpolacji
umozliwiajacy poruszanie sie po powierzchni kuli
(GeoPositionInterpolator) - Mozliwosc lokalizacji punktów odniesienia
umieszczonych na scenie - Zaimplementowane schematy nawigacji specyficzne
dla aplikacji geograficznych
30ARCHITEKTURA JEZYKA GeoVRML
GeoCoordinate
GeoViewpoint
GeoLOD
. . .
Wezly GeoVRMLa
GeoVRML Support Layer
Implementacja wezlów GeoVRMLa za pomoca JAVY
System do transformacji wspólrzednych
geograficznych (lat/lon, UTM, )
GeoTransform Package
31PRZYKLADY WYKORZYSTANIA JEZYKA GeoVRML
32JEZYK X3D
- X3D jest nastepna, po VRML, generacja
otwartego standardu dla grafiki 3D w sieci WWW.
Jest rezultatem kilkuletniej pracy rozwojowej
X3D Task Group i utworzonej niedawno Browswer
Working Group, zrzeszonych w Web 3D
Consorcium. Obie te grupy scisle wspólpracuja
ze soba w celu utworzenia nowej specyfikacji X3D,
która laczy w sobie potrzeby ludzi korzystajacych
z przegladarek jak i wymagania calego
spoleczenstwa informatycznego. - Wymagania stawiane X3D
- Zgodnosc z istniejacym standardem VRML,
przegladarkami i narzedziami, - Rozszerzone mechanizmy pozwalajace na
wprowadzanie nowych wlasciwosci, szybka ocena
przydatnosci i formalna adaptacja tych rozszerzen
w specyfikacji, - Male, proste "jadro" pozwala na szeroka dowolnosc
adaptacji elementów 3D, - Wiekszy, w pelni kompatybilny profil VRML
obslugujacy istniejace bogactwo obiektów, - Obsluga przez inne dekodery, wlaczajac XML, dla
scislej integracji z technologia i narzedziami
Web.
33ARCHITEKTURA JEZYKA X3D
34PRZYKLADOWE ZASTOSOWANIA
- Wizualizacja w jezyku VRML danych z sonarów
wielowiazkowych
35PRZYKLADOWE ZASTOSOWANIA
- Wizualizacja w jezyku VRML przemieszczania sie
ryb pelagicznych w wiazce echosondy
Wirtualny echogram widok z boku
Echogram
Implementacja w VRMLu
http//www.eti.pg.gda.pl/marmo/vrmlfish
36PRZYKLADOWE ZASTOSOWANIA
- Wizualizacja w jezyku VRML przemieszczania sie
ryb pelagicznych w wiazce echosondy
Wirtualny echogram widok z góry
Bulls eye
Implementacja w VRMLu
http//www.eti.pg.gda.pl/marmo/vrmlfish