Download Prezentacja programu PowerPoint

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
POLITECHNIKA GDAŃSKA
WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI
KATEDRA SYSTEMÓW GEOINFORMATYCZNYCH
WYKORZYSTANIE JĘZYKÓW OPISU
WIRTUALNEJ RZECZYWISTOŚCI DO
TRÓJWYMIAROWEJ WIZUALIZACJI
DANYCH PRZESTRZENNYCH
Dr inż. Marek Moszyński
Gdańsk, 2006
Plan wykładu
Wprowadzenie – proces wyświetlania
Rola karty graficznej
Interfejs programistyczny OpenGL i Java3D
Język modelowania wirtualnej rzeczywistości VRML
Elementy programowania
Animacja w wirtualnej rzeczywistości
GeoVRML jako rozszerzenie standardu do
wizualizacji danych przestrzennych
 Standard X3D
 Przykładowe zastosowania







Wprowadzenie - transformacje
uogólnione współrzędne homogeniczne:
Przesunięcie
Skalowanie
 x   S x
  
 y   0
 z    0
  
1  0
  
0
Sy
0
0
0
0
Sz
0
y
0  x 
 
0  y 
. 

0 z
 
1   1 
 x   1
  
 y   0
 z    0
  
 1  0
  
0
1
0
0
0 Tx   x 
 
0 Ty   y 
. 

1 Tz z
 
0 1   1 
y
y
Ty
y
P
x
P
Tx
x
x
x
z
z
P’
Tz
z
z
Wprowadzenie - transformacje
Rotacja
 Względem osi x
 Względem osi y
 Względem osi z
0
 x   1
  
 y   0 cos 
 z    0  sin 
  
 1  0
0
  
0
sin 
cos 
0
0  x 
 
0  y 
. 

0 z
 
1   1 
 x   cos 
  
 y   0
 z     sin 
  
1  0
  
0 sin 
1
0
0 cos 
0
0
0  x 
 
0  y 
.
0  z 
 
1   1 
 x   cos 
  
 y    sin 
 z    0
  
1  0
  
sin 
cos 
0
0
0  x 
 
0  y 
.
0  z 
 
1   1 
0
0
1
0
y
θ
x
z
y
θ
x
z
y
x
z
θ
Wprowadzenie - transformacje
y
Rotacja względem uogólnionej osi n o kąt 
u
 x   u x
  
 y   u y
 z    u
   z
1  0
  
vx
vy
vz
0
wx
wy
wz
0
0  x 
 
0  y 
. 

0 z
 
1   1 
v
n
P’
x

R
z
Re
w
~
n
P
 0

n~   nz
 n y

 nz
0
nx
ny 

 nx 
0 
Wprowadzenie - projekcja
Projekcja perspektywiczna
 x  1

 
 y  0
 0   0
 zd  

 0
 d  
0
1
0
0
0
0
1
d
0
0  x 
 
0  y 
0 . z 
 
1   1 

Mper
dx
dy
x persp 
y persp 
zd
zd
Rola karty graficznej
Strumień
węzłów
Vertex
Program
Transformed
vertex
stream
Triangle
Assembly
Strumień
trójkątów
Clip/Cull/
Vieport
strumień
trójkątów
w przestrzeni
ekranu
Pamięć
tekstur
Rasteryzacja
Strumień
fragmentów
Fragment
Program
Przetworzony
strumień
fragmentów
Strumień
pikseli
Composite
Framebuffer
Obraz
Rola karty graficznej
Pentium Extreme Edition 840
 3.2 GHz Dual Core
 230M Transistors
 90nm process
 206 mm2
 2 x 1MB Cache
 25.6 Gflops
 130 W
GeForce 7800 GTX
 430 MHz
 302M Transistors
 110nm process
 326 mm2
 313 GFlops (shader)
 1.3 TFlops (total)
 65 W
Interfejs programistyczny
OpenGL i Java3D
OpenGL:
• programowy interfejs sprzętu graficznego
• biblioteka do tworzenia trójwymiarowej grafiki
• bardzo szybka i przenośna
• algorytmy opracowane przez Silicon Graphics (SGI)
(lider w dziedzinie animacji i grafiki komputerowej)
Java3D:
• standardowe rozszerzenie języka Java w wersji 1.2.
• wymaga biblioteki OpenGL,
Interfejs programistyczny
OpenGL i Java3D
Architektura Java3D
Applet or Application
Java3D
Applet or Application
Native Graphics Calls
OpenGL
Direct3D
Future API
Interfejs programistyczny
OpenGL i Java3D
OpenGL
Java3D
Zalety
• Intuicyjne programowanie
• Małe zasoby pamięci
potrzebne do uruchomienia
aplikacji
• Szybkie wykonywanie operacji
graficznych
• Wbudowane funkcje grafiki 3D
• Łatwość kodowania
• Mało „bugów” technologii
Wady
• Brak prawdziwego API
utrudnia programowanie
• Pseudoobiektowość
• Długi czas trwania inicjalizacji
obiektów graficznych i
interfejsu
• „pamięciożerny”
Język VRML
VRML - Virtual Reality Modeling Language
• narzędzie pozwalające opisywać obiekty i animacje w trójwymiarowej scenie
• istnieje możliwość tworzenia interaktywnych wirtualnych światów
Użytkownik ma możliwość:
• poruszania się pomiędzy zdefiniowanymi obiektami
• definiowania dowolnej ilości czujników interakcyjnych zmieniających wygląd świata
Uwagi:
• wirtualne światy uruchamiane są na tej samej zasadzie, co strony HTML
• przeglądarka internetowa wyposażona w odpowiedni dodatek (ang. plug-in).
Język VRML
Cechy języka:
dostępność
możliwość odwiedzenia wirtualnego świata za pomocą sieci Internet
możliwość poruszania się po wirtualnym świecie
wszystkie obiekty na scenie trójwymiarowej można obejrzeć z każdej strony
ale nie na zasadzie wyświetlania ich kolejnych rzutów,
czy też animacji (chociaż to też jest możliwe),
interakcyjność
każdy uczestnik świata wirtualnego może mieć wpływ na jego wygląd,
jeśli twórca umieścił w opisie sceny różnego rodzaju czujniki.
Język VRML – architektura
Dane
użytkownika
Plik VRML
VRML
Browser
Parser
Graf sceny
Hierarchia
Trasy
System
wykonawczy
Audiowizualna prezentacja
Użytkownik
Język VRML – składnia
#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 }}
Viewpoint
Shape
geometry
Appearance
Material
Język VRML – przykłady
+
=
Język VRML – animacja
Schemat blokowy elementów oraz ich powiązań
przy tworzeniu animacji w języku VRML
DEF T Transform {
children [
Shape {…}
DEF TS TouchSensor
]
}
DEF TM TimeSensor {…}
DEF I PositionInterpolator {
key […]
keyValue […]
}
ROUTE TS.isActive TO TM.set_loop
ROUTE TM.fraction_changed TO I.set_fraction
ROUTE I.value_changed TO T.set_translation
Język VRML – animacja
Pętla symulacji
Stworzenie świata
Zainicjowanie sensorów
i świateł
Renderowanie
wyglądu
świata
Odczyt
sensorów
Wywołanie
funkcji akcji
świata
Wykonanie zadań
obiektów
graficznych
Aktualizacja obiektów
graficznych zależnie
od odczytów sensora
Język VRML – animacja
Orbity systemu GPS
Orbity systemu Galileo
GeoVRML
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.
Język GeoVRML - właściwości
1. Możliwość bezpośredniego osadzania metadanych
w kodzie VRML’a w formatach:
GD – „<latitude> <longitude> <elevation>”
„<longitude> <latitude> <elevation>”
UTM – „<northing> <easting> <elevation>”
„<easting> <northing> <elevation>”
GC – „<x> <y> <z>”
43km 219m
Gdańsk
Malbork
54°21’N 18°40’E
54°02’N 19°03’E
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
Język GeoVRML - właściwości
2. Zwiększenie precyzji prezentowanych danych
 Poprzez zdefiniowanie lokalnych kartezjańskich
układów współrzędnych
(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
Język GeoVRML - właściwości
 Poprzez zapis liczb jako ciągu znaków
 Konwersji za pomocą Javy ciągu znaków na liczbę
GeoCoordinate {
geoSystem "GD"
point [ "57.7 -3.1 0" ]
}
GeoCoordinate {
geoSystem [ "UTM", "Z11„]
point [ "4361550.1 310385.2 1000" ]
}
Język GeoVRML - właściwości
3. Modyfikacja węzła LOD (ang. Level of Detail),
decydującego o poziomach szczegółowości
umieszczanych obiektów na scenie (GeoLOD)
Język GeoVRML - właściwości
4. Zawiera dodatkowy węzeł do opisywania obiektów
geograficznych (Metadata)
5. Zawiera dodatkowy węzęł interpolacji, umożliwiający
poruszanie się po powierzchni kuli
(GeoPositionInterpolator)
6. Możliwość lokalizacji punktów odniesienia
umieszczonych na scenie
7. Zaimplementowane schematy nawigacji, specyficzne
dla aplikacji geograficznych
Język GeoVRML - arcitektura
GeoCoordinate
GeoViewpoint
GeoLOD
...
Węzły GeoVRML’a
GeoVRML Support Layer
Implementacja węzłów
GeoVRML’a za
pomocą JAVY
GeoTransform Package
System do transformacji
współrzędnych
geograficznych (lat/lon,
UTM, …)
Język GeoVRML – węzły
(GeoCoordinate)
Język GeoVRML – węzły
(GeoElevationGrid)
Język GeoVRML – węzły
(GeoLocation)
Język GeoVRML – węzły
(GeoOrigin)
Język GeoVRML – przykłady
Język X3D
X3D jest następną, po VRML, generacją 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 ściśle współpracują ze sobą w celu utworzenia nowej
specyfikacji X3D, która łączy w sobie potrzeby ludzi korzystających z
przeglądarek jak i wymagania całego społeczeństwa informatycznego.
Wymagania stawiane X3D:
 Zgodność z istniejącym standardem VRML, przeglądarkami i narzędziami,
 Rozszerzone mechanizmy pozwalające na wprowadzanie nowych właściwości,
szybka ocena przydatności i formalna adaptacja tych rozszerzeń w specyfikacji,
 Małe, proste "jądro" pozwala na szeroką dowolność adaptacji elementów 3D,
 Większy, w pełni kompatybilny profil VRML obsługujący istniejące bogactwo
obiektów,
 Obsługa przez inne dekodery, włączając XML, dla ścisłej integracji z technologią
i narzędziami Web.
Język X3D - architektura
Event passing with external
application
X3D files and/or streams
Application programmer
interface (API)
Parsers
Classic
VRML
encoding
Binary
encoding
XML
encoding
Scene access
interface
(internal)
Scene access
interface
(external)
New-node prototype construction
Prototype and
External Prototype
X3D
Node Types
Scripting
Engies
(EMACScript)
(java, others)
Scene grach manager
X3D Browser
Scene Grach Data Structure
Event Graph
Przykłady zastosowań języków
opisu wirtualnej rzeczywistości
Wizualizacja w języku VRML danych z sonarów
wielowiązkowych
Przykłady zastosowań języków
opisu wirtualnej rzeczywistości
Wizualizacja w języku VRML przemieszczania się ryb
pelagicznych w wiązce echosondy
Wirtualny echogram – widok z boku
Echogram
Implementacja w VRML’u
http://www.eti.pg.gda.pl/~marmo/vrmlfish
Przykłady zastosowań języków
opisu wirtualnej rzeczywistości
Wizualizacja w języku VRML przemieszczania się ryb
pelagicznych w wiązce echosondy
Wirtualny echogram – widok z góry
„Bulls – eye”
Implementacja w VRML’u
http://www.eti.pg.gda.pl/~marmo/vrmlfish
Related documents