Γραφικά με Υπολογιστές Εισαγωγή στη VRML
Εισαγωγή στη VRML Η VRML (Virtual Reality Modeling Language) αποτελεί ένα διεθνές πρότυπο για περιγραφή τρισδιάστατων αντικειμένων και διαδραστικών κόσμων στον Παγκόσμιο Ιστό. Αν και το M στο VRML αρχικά σήμαινε Markup (Σήμανση), άλλαξε σύντομα σε Modeling (Σχηματισμός), επειδή η γλώσσα δεν περιέχει ετικέτες για να εισάγει κοινές δομές αλλά περιέχει διάφορους κόμβους για να περιγράψει πώς ένα αντικείμενο αποδίδεται. Τα αρχεία της είναι αρχεία απλού κειμένου. 2/ 39
Εφαρμογές της VRML Η τεχνολογία της VRML βρίσκει εφαρμογή σε πολλούς τομείς στο διαδίκτυο όπως διαδικτυακή ψυχαγωγία (π.χ. παιχνίδια), διαδραστικές προσομοιώσεις στην εκπαίδευση, εικονικά μουσεία, εικονικά καταστήματα, οπτικοποιήσεις αντικειμένων επιστημονικού ενδιαφέροντος, προσομοιώσεις στη μηχανική και την αρχιτεκτονική και πολλά άλλα. 3/ 39
Αρχιτεκτονική 4/ 39
Αρχιτεκτονική - Σχεδίαση 5/ 39
Βιομηχανία 6/ 39
Πολιτισμός 7/ 39
Αρχαιολογία 8/ 39
Εικονικά Μουσεία στο Διαδίκτυο 9/ 39
Ιατρική 10 / 39
Εκπαίδευση 11 / 39
Εργαλεία Ανάπτυξης Κώδικα VRML Η κατασκευή VRML αρχείων μπορεί να γίνει με έναν απότουςεξήςτρόπους: Με έναν απλό συντάκτη κειμένου Mε έναν ειδικό συντάκτη για VRML εφαρμογές Με ένα πρόγραμμα σχεδίασης τρισδιάστατων γραφικών που να περιέχει έναν μετατροπέα σε VRML. 12 / 39
Προβολή VRML Αρχείων ΗπροβολήτωνVRML αρχείων γίνεται με τη βοήθεια ενός VRML φυλλομετρητή (VRML browser), ο οποίος μπορεί να είναι: Μια βοηθητική εφαρμογή VRML (VRML helperapplication) Ένα πρόσθετο για τη VRML (VRML plug-in) σε έναν φυλλομετρητή (HTML browser). Όταν προβάλλεται με το δεύτερο τρόπο, τότε ο VRML κόσμος αποτελεί στην ουσία τμήμα μιας ιστοσελίδας που εμφανίζεται στο φυλλομετρητή του χρήστη. 13 / 39
Sony Corporation Community Place 14 / 39
CASUS Presenter Fraunhofer Institute for Computer Graphics, Darmstadt, Germany 15 / 39
Silicon Graphics, Inc Cosmo Player 16 / 39
Systems in Motion VRMLview 17 / 39
Intervista Software WorldView 18 / 39
ParallelGraphics Cortona VRML Client 19 / 39
Αρχεία VRML Τα αρχεία VRML έχουν κατάληξη.wrl Τα αρχεία.wrl είναι αρχεία κειμένου (text files). Ένα VRML αρχείο αποτελείται από τέσσερεις βασικούς τύπους συστατικών: VRML header Prototypes Shapes, Interpolators, Sensors και Scripts Routes 20 / 39
#VRML V2.0 utf8 VRML Header #VRML: Αρχείο που περιέχει κώδικα της VRML V2.0 : Κείμενο που είναι συμβατό με τη σύνταξη της έκδοσης 2.0 utf8 : Κείμενο που χρησιμοποιεί UTF8 character set 21 / 39
Σχόλια Τα σχόλια ξεκινούν με το σύμβολο # και εκτείνονται μέχρι το τέλος της γραμμής Για παράδειγμα: # A shape 22 / 39
Nodes Κόμβοι Ένα αρχείο VRML περιέχει κόμβους οι οποίοι περιγράφουν τα σχήματα και τις ιδιότητες τους στην 3Δ σκηνήμας. Οι κόμβοι αποτελούν τα δομικά συστατικά της VRML. Οι κόμβοι περιγράφουν σχήματα, χρώματα, φωτισμούς, μπορούν να καθορίζουν τη θέση και τον προσανατολισμό και το μέγεθος των αντικειμένων κλπ. Ένας κόμβος αποτελείται από: Ο τύπος του κόμβου Ένα ζευγάρι από αγκύλες Έναν αριθμό από πεδία τα οποία βρίσκονται μέσα στις αγκύλες και καθορίζουν τις ιδιότητες του κόμβου. 23 / 39
Κόμβοι (συνέχεια) Ένα παράδειγμα κόμβου είναι ο κόμβος Cylinder που ορίζει έναν κύλινδρο Cylinder{ height 2.0 radius 2.0 Στο παραπάνω παράδειγμα ο κόμβος περιέχει δύο πεδία. Το πεδίο height και το πεδίο radius που ορίζουν το ύψους του κυλίνδρου και την ακτίνα της βάσης του αντίστοιχα. 24 / 39
Πεδία - Τύποι Μεταβλητών Data type SFBool SFColor, MFColor SFFloat, MFFloat SFImage SFInt32, MFInt32 SFNode, MFNode SFString, MFString SFTime SFVec2f, MFVec2f SFVec3f, MFVec3f SFRotation MFRotation Meaning Boolean, true ή false τιμή RGB χρώμα Δεκαδικός αριθμός Εικόνα Ακέραιος Κόμβος String Χρόνος σε δευτερόλεπτα Διάνυσμα δύο διαστάσεων Διάνυσμα τριών διαστάσεων Μία ομάδα από τέσσερις μεταβλητές τιμές. Τρεις για τον καθορισμό του άξονα περιστροφής και μία για την τιμή της γωνίας σε ακτίνια 25 / 39
Ορισμός Ονόματος Κόμβου Ο ορισμός του ονόματος ενός κόμβου γίνεται με τη βοήθεια της εντολής DEF. Η σύνταξη της εντολής DEF είναι η ακόλουθη: DEF όνομα-κόμβου τύπος-κόμβου{ π.χ. DEF mycylinder Cylinder{ 26 / 39 Από τη στιγμή που έχει οριστεί το όνομα ενός κόμβου μπορούμε να χρησιμοποιήσουμε τον κόμβο αυτό ξανά και ξανά μέσα στο ίδιο αρχείο χρησιμοποιώντας την λέξη USE πριν από το όνομα του κόμβου. USE όνομα-κόμβου
Shapes - Σχήματα Τα VRML σχήματα δημιουργούνται με τη βοήθεια του κόμβου Shape ο οποίος έχει δύο πεδία: Shape { appearance Null #exposedfield SFNode geometry Null #exposedfield SFNode Το πεδίο appearance καθορίζει την εμφάνιση του αντικείμενου όπως: το χρώμα ή την υφή Το πεδίο geometry καθορίζει τη μορφή/γεωμετρία του σχήματος (π.χ. Box, Cone, Sphere) 27 / 39
Το πεδίο geometry Τυπική τιμή του πεδίου geometry είναι κάποιο βασικό γεωμετρικό σχήμα: Όπως ένας κύβος Box{ size 2.0 2.0 2.0 ήμίασφαίρα Sphere{ radius 1.0 28 / 39
Shapes - Κώνος Shape { appearance Appearance { material Material { geometry Cone { height 2.0 bottomradius 1.0 bottom TRUE side TRUE 29 / 39
Shapes Κύλινδρος Shape { appearance Appearance { material Material { geometry Cylinder { height 2.0 radius 1.0 bottom TRUE top TRUE side TRUE 30 / 39
Shapes Κείμενο Ιδιότητα Αποδεκτές Τιμές Περιγραφή family SERIF, SANS, TYPEWRITER style PLAIN, BOLD, ITALIC, BOLDITALIC size spacing αρ.κιν. υποδιαστολής (προεπιλ.: 1.0) αρ. κιν. υποδιαστολής (προεπιλ.: 1.0) Περιγράφει τον τύπο, την «οικογένεια», της γραμματοσειράς Περιγράφει τον τύπο γραφής, δηλαδή απλή, έντονη, πλάγια και έντονη-πλάγια. Περιγράφει το μέγεθος των χαρακτήρων του κειμένου. Περιγράφει την απόσταση του διαστήματος ανάμεσα σε δύο χαρακτήρες (οριζόντια και κάθετα) horizontal TRUE, FALSE (Ας φανταστούμε ότι οι συμβολοσειρές του κειμένου σχηματίζουν ένα πλαίσιο). Αν είναι TRUE, τότε η μεγαλύτερη πλευρά του πλαισίου επεκτείνεται οριζόντια και η άλλη κάθετα, και αντιστρόφως justify FIRST, BEGIN, MIDDLE, END Στοιχίζει το κείμενο τόσο οριζόντια όσο και κατακόρυφα. Μπορεί να παίρνει δύο τιμές και η πρώτη αναφέρεται στη στοίχιση ως προς το μεγάλο άξονα (βλ. horizontal) και η δεύτερη ως προς το μικρό. Η FIRST είναι μια μικρή παραλλαγή της BEGIN κι έχει νόημα μόνο στην κατακόρυφη στοίχιση. lefttoright TRUE, FALSE Προσδιορίζει την οριζόντια κατεύθυνση του κειμένου (προεπιλεγμένα, από τα αριστερά προς τα δεξιά). toptobottom TRUE, FALSE Προσδιορίζει την κατακόρυφη κατεύθυνση του κειμένου (προεπιλεγμένα, από πάνω προς τα κάτω). 31 / 39
Shapes Κείμενο Shape { appearance Appearance { material Material { geometry Text { string ["SERIF" "SANS" "TYPEWRITER"] fontstyle FontStyle { family "SANS" style "BOLD" size 0.5 horizontal FALSE justify ["MIDDLE" "MIDDLE"] 32 / 39
Πολλαπλά Σχήματα Κάθε σχήμα που δημιουργείται, τοποθετείται προεπιλεγμένα στο κέντρο του κόσμου. Shape { appearance Appearance { material Material { geometry Box {size 2.0 2.0 2.0 Shape { appearance Appearance { material Material { geometry Sphere {radius 1.35 33 / 39
Το πεδίο Appearance Η τιμή του πεδίου Appearance είναι ένας κόμβος Appearance ο οποίος μας δίνει τη δυνατότητα να καθορίσουμε τα χαρακτηριστικά εμφάνισης ενός σχήματος. Appearance { material #exposedfield SFNode texture #exposedfield SFNode texturetransform #exposedfield SFNode 34 / 39
Το πεδίο Material Σαν τιμή στο πεδίο Material μπορεί να χρησιμοποιηθεί ο κόμβος material ο οποίος καθορίζει το χρώμα, τη διαφάνεια κλπ. ενός σχήματος. Material { diffusecolor 0.8 0.8 0.8 emmisivecolor 0.0 0.0 0.0 transparency 0.0 ambientintensity 0.2 specularcolor 0.0 0.0 0.0 shininess 0.2 35 / 39
Το πεδίο Material diffusecolor - το κυρίως χρώμα του υλικού, το χρώμα διάχυσης, το χρώμα στα σημεία του σχήματος που τα βλέπει κάποιο φως emissivecolor - το χρώμα με το οποίο λάμπει κάποιο σχήμα από ένα δικό του φως. Το φως αυτό δεν αντανακλάται σε κανένα άλλο αντικείμενο specularcolor - το χρώμα λάμψης του υλικού shininess - το ποσοστό ανακλαστικότητας του υλικού ambientintensity - η ποσότητα του περιβάλλοντος φωτός που αντανακλά το υλικό transparency - το ποσοστό διαφάνειας του υλικού 36 / 39
Χρώματα Χρώμα Ποσοστό Κόκκινου Ποσοστό Πράσινου Ποσοστό Μπλε Αποτέλεσμα Κόκκινο 1.0 0.0 0.0 Πράσινο 0.0 1.0 0.0 Μπλε 0.0 0.0 1.0 Άσπρο 1.0 1.0 1.0 Γκρι ανοιχτό 0.75 0.75 0.75 Γκρι 0.5 0.5 0.5 Γκρι σκούρο 0.25 0.25 0.25 Μαύρο 0.0 0.0 0.0 Κίτρινο 1.0 1.0 0.0 Μωβ 1.0 0.0 1.0 Κυανό 0.0 1.0 1.0 Καφέ 0.5 0.2 0.0 37 / 39
Υλικά Υλικό diffuse Color specular Color shininess ambient Intensity Αποτέλεσμα Αλουμίνιο 0.30 0.30 0.50 0.70 0.70 0.80 0.10 0.30 Χαλκός 0.30 0.11 0.00 0.75 0.33 0.00 0.08 0.26 Χρυσός 0.22 0.15 0.00 0.71 0.70 0.56 0.16 0.40 Μεταλλικό Μωβ Μεταλλικό Κόκκινο Πλαστικό Μπλε 0.10 0.03 0.22 0.64 0.00 0.98 0.20 0.17 0.27 0.00 0.00 0.61 0.13 0.18 0.20 0.15 0.20 0.20 0.71 0.83 0.83 0.83 0.12 0.10 38 / 39
Χρήση Υλικών Shape { appearance Appearance { material Material { diffusecolor 1.0 0.0 0.0 emissivecolor 0.0 0.0 1.0 transparency 0.3 specularcolor 0.71 0.70 0.56 shininess 0.16 ambientintensity 0.4 geometry Sphere{radius 2.0 39 / 39
Το πεδίο Texture Το πεδίο texture καθορίζει την υφή ενός σχήματος. Σαν τιμή του πεδίου texture μπορεί να χρησιμοποιηθεί ο κόμβος ImageTexture. ImageTexture { url [ ] #exposedfield MFString repeats #field SFBool repeatt #field SFBool 40 / 39