Virtuelle Realität und Simulation - Übung 1

Werbung
Virtuelle Realität und Simulation Übung 1
Einführung
David Mainzer ([email protected])
Prof. Dr. Gabriel Zachmann ([email protected])
Institut für Informatik
7. Oktober 2011
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
1
Gliederung
Allgemeine Informationen
Übungsablauf
Software – Viewer/Editor
VRML-Viewer
Editor
Programmiersprachen — EAI Manipulation
Javascript
Java
Debugging
Scenegraph
Ihre Aufgabe
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
2
Gliederung
Allgemeine Informationen
Übungsablauf
Software – Viewer/Editor
VRML-Viewer
Editor
Programmiersprachen — EAI Manipulation
Javascript
Java
Debugging
Scenegraph
Ihre Aufgabe
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
3
Übungsablauf
Zeiten
Jede Woche – 5 Übungsblätter
Übungen – Wenn gewünscht
Vorstellen des neuen Übungsblattes
Abgabe des letzten Übungsblattes (inkl. kurzer Erläuterung)
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
4
Gliederung
Allgemeine Informationen
Übungsablauf
Software – Viewer/Editor
VRML-Viewer
Editor
Programmiersprachen — EAI Manipulation
Javascript
Java
Debugging
Scenegraph
Ihre Aufgabe
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
5
VRML-Viewer
Auf der VL-Website nden Sie Links zu diversen Viewern
– InstantReality (Windows / OSX / Linux)
– FreeWRL (Linux / OSX (SourceCode verfügbar))
– Cortona dies ist ein kommerzielles Plugin für Browser
Rate zu InstantReality (bisher kein ebuild für Gentoo (amd64))
– Entwickelt durch Fraunhofer IGD
– Besitzt eine Art Debug-Konsole (siehe Anhang)
– Unterstützt Java und .Net für EAI (External Authoring Interface)
Manipulation
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
6
Editor
Hier sollte jeder seinen eigenen Favoriten wählen (rein Text
basiert oder mit grascher Oberäche)
X3D-Edit scheint ein recht ausgereifter Editor zu sein
Auch Notepad / Kwrite ...
Selber nutze ich vim / gvim (existiert Syntax-Highlighting)
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
7
Gliederung
Allgemeine Informationen
Übungsablauf
Software – Viewer/Editor
VRML-Viewer
Editor
Programmiersprachen — EAI Manipulation
Javascript
Java
Debugging
Scenegraph
Ihre Aufgabe
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
8
Javascript — ECMAScript (ECMA 262)
Häug für DOM Scripting in Browsern eingesetzt
Wird zur Laufzeit interpretiert
Von allen aktuellen Browsern unterstützt – eventuell aus
Sicherheitsgründen deaktiviert
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
9
Java
Java – weitverbreitet objektorientierte Programmiersprache
(sollte jedem bekannt sein)
Entwickelt von Sun Microsystems – gehört nun Oracle
Muss vorab in ByteCode übersetzt werden
Von InstantReality unterstützt
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
10
Hello World – Vorlage
# VRML V2 . 0 u t f 8
Background
5
Transform
{
skyColor 0 0 1 }
{
translation
children
DEF
0 0 0
[
SCHRIFT
Transform
children
[
Transform
10
scale
{
{
0.2
0.2
children
0 0
[
Inline
15
0.2
−0.2
translation
{
url
" penguine . w r l "
}
]
}
Shape
{
geometry
Text
{
string
[ " Hello
World " ]
}
}
20
]
}
]
}
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
11
Hello World – Abschnitt 2 in Java
DEF
20
ROTOTATOR
eventIn
eventOut
url
Script
{
SFFloat
set_fraction
SFRotation
value_changed
" hello_java . class "
}
DEF
25
TIMER
loop
}
30
TimeSensor
cycleInterval
ROUTE
ROUTE
TRUE
{
10
TIMER . f r a c t i o n _ c h a n g e d
ROTOTATOR . value_changed
TO ROTOTATOR . s e t _ f r a c t i o n
TO SCHRIFT . s e t _ r o t a t i o n
Wichtig:
– url hier hello_java.class
– eventIn und eventOut
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
12
Hello World – JavaFile hello_java.java
import
import
import
5
vrml . f i e l d . ∗ ;
vrml . node . ∗ ;
vrml . ∗ ;
public c l a s s h e l l o _ j a v a extends vrml . node . S c r i p t
f l o a t [ ] r o t a t i o n =new f l o a t [ 4 ] ;
public void p r o c e s s E v e n t ( E v e n t e ) {
i f ( e . getName ( ) . e q u a l s ( " s e t _ f r a c t i o n " ) )
{
{
/ / System . out . p r i n t l n (" s i l l y debug message " ) ;
10
rotation [0]=0.0 f ;
rotation [1]=1.0 f ;
rotation [2]=0.0 f ;
r o t a t i o n [ 3 ] = ( ( ConstSFFloat ) e . getValue ( ) ) . getValue ( )
∗ 2.0 f ∗ ( f l o a t ) Math . P I ;
15
SFRotation
value_changed = ( S F R o t a t i o n ) g e t E v e n t O u t ( " value_changed " ) ;
value_changed . s e t V a l u e ( r o t a t i o n ) ;
}
}
20
}
Kompileren einer *.java Datei (benötigt jdk):
– javac -classpath PATH/TO/instantreality.jar hello_java.java
(default: INSTALL/InstantPlayer/bin)
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
13
Hello World – Abschnitt 2 in JavaScript
DEF
20
ROTOTATOR
eventIn
eventOut
Script
url
{
SFFloat
set_fraction
SFRotation
value_changed
" hello_javascript . js "
}
DEF
25
TIMER
loop
}
30
TimeSensor
cycleInterval
ROUTE
ROUTE
TRUE
{
10
TIMER . f r a c t i o n _ c h a n g e d
ROTOTATOR . value_changed
TO ROTOTATOR . s e t _ f r a c t i o n
TO SCHRIFT . s e t _ r o t a t i o n
Wichtig:
– url hier hello_javascript.js
– eventIn und eventOut
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
14
Hello World – JavascriptFile hello_javascript.js
function
s e t _ f r a c t i o n ( value )
{
value_changed [ 0 ] = 0 ;
value_changed [ 1 ] = 1 ;
value_changed [ 2 ] = 0 ;
value_changed [ 3 ] = v a l u e ∗ 2.0 ∗ Math . P I ;
5
}
Keine Kompilierung notwendig!
Kann auch direkt in das *.wrl File geschrieben werden
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
15
Gliederung
Allgemeine Informationen
Übungsablauf
Software – Viewer/Editor
VRML-Viewer
Editor
Programmiersprachen — EAI Manipulation
Javascript
Java
Debugging
Scenegraph
Ihre Aufgabe
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
16
Debugging – Javascript (benötigt Konsole)
DEF Debug Script {
eventIn MFVec3f s e t _ c o o r d
eventIn S F F l o a t s e t _ f l o a t
url
[
" javascript :
function
5
print (
set_coord (
' Debug :
value ,
coord =
timestamp
' + value +
)
{
'\n '
);
}
function
print (
set_float (
' Debug :
value ,
float
=
timestamp
' + value +
)
{
'\n '
);
}"
10
]
}
Deniere neuen Knoten Debug
Verwende ROUTE um Ereignisse bekannt zu geben
ROUTE ∗∗∗∗∗ . f r a c t i o n _ c h a n g e d TO Debug . s e t _ f l o a t
ROUTE ∗∗∗∗∗ . value_changed TO Debug . s e t _ c o o r d
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
17
Debugging – Logger (
DEF
Log Logger
level
3
logFile
""
{
nur InstantReality)
# 0 ...
# default = console
}
Deniere neuen Knoten Log
Verwende ROUTE um Ereignisse an ihn zu senden
Timestamp wird automatisch hinzugefügt (je nach Log-Level)
ROUTE
∗∗∗∗∗ . f r a c t i o n _ c h a n g e d
Autor: David Mainzer
Institut für Informatik
TO
Log . w r i t e
Virtuelle Realität und Simulation - Übung 1
18
InstantReality – Scenegraph
InstantReality kann Knoten der Szene anzeigen
Müssen dafür Deniert werden (Verwenden Sie sinnvolle
Bezeichner)
ROUTE
∗∗∗∗∗ . f r a c t i o n _ c h a n g e d
TO
Log . w r i t e
Eigenschaften der Knoten können auch verändert werden
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
19
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
20
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
21
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
22
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
23
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
24
Gliederung
Allgemeine Informationen
Übungsablauf
Software – Viewer/Editor
VRML-Viewer
Editor
Programmiersprachen — EAI Manipulation
Javascript
Java
Debugging
Scenegraph
Ihre Aufgabe
Autor: David Mainzer
Institut für Informatik
Virtuelle Realität und Simulation - Übung 1
25
Herunterladen