Εντολές και παράμετροι της VRML

 

Παρακάτω παραθέτουμε μία λίστα με τα TAGs, τα οποία χρησιμοποιεί η γλώσσα VRML. Oλα αυτά ισχύουν για την έκδοση 1.0 VRML, και παραθέτονται με αλφαβητική σειρά :

 

Ascii Text

χρησιμεύει για την εισαγωγή χαρακτήρων στο σκηνικό. Η πρώτη γραμμή εισάγεται από το σημείο 0,0,0, εκτός και αν είναι κάτω από μια εντολή translation.

 

ΙΔΙΟΤΗΤΕΣ-ΔΥΝΑΤΟΤΗΤΕΣ :

Το text μπορεί να είναι ευθυγραμμισμένο δεξιά στο κέντρο ή στα αριστερά. Το Spacing ελέγχει το ύψος των γραμμάτων. Το width είναι το πλάτος και width ίσο με 0 σημαίνει κανονικό πλάτος για τους χαρακτήρες. Η εντολή String εμπεριέχει το μήνυμα που πρέπει να ξεκινάει και να τελειώνει με τον χαρακτήρα  «"»

 

Παράδειγμα

 

AsciiText

{

     string "The text string goes here"

     spacing 1.0

     justification LEFT RIGHT CENTER

     width 1.0

     }

 

Cone

Η εντολή Cone σχεδιάζει έναν κώνο.

 

ΠΑΡΑΜΕΤΡΟΙ :

Η Sides δημιουργεί τα πλευρικά του κώνου.

Η Bottom δημιουργεί την βάση του κώνου.

Ενώ η All δημιουργεί τα πλευρικά και την βάση.

Η Bottomradius χρησιμεύει για την εισαγωγή της τιμής της διαμέτρου της βάσης.

H Height ελέγχει το ύψος του κώνου.

Παράδειγμα

 

Cone

{

parts     ALL SIDES BOTTOM

bottomRadius 1

height 2

}

 

Cube

Η εντολή Cube δημιουργεί έναν κύβο.

 

ΠΑΡΑΜΕΤΡΟΙ :

Width κανονίζει το πλάτος.

Height ορίζει το ύψος, ενώ Depth το βάθος.

 

Παράδειγμα

 

Cube

{

width 1

height 1

depth 1

}

 

Cylinder

Η Cylinder δημιουργεί έναν κύλινδρο.

 

ΠΑΡΑΜΕΤΡΟΙ :

Η Parts ελέγχει τα μέρη του κυλίνδρου, μπορεί να είναι sides, top, bottom, ή all.

Το Height ελέγχει το ύψος του κυλίνδρου.

H Radius ελέγχει την διάμετρο του κυλίνδρου.

 

Παράδειγμα

 

Cylinder

{

parts SIDES TOP BOTTOM ALL

radius 1

height 1

}

 

DEF

Αυτή δεν είναι ακριβώς μια εντολή αλλά ένα tag.

 

Παράδειγμα

 

DEF ΟΝΟΜΑ_ΕΝΤΟΛΗΣ ΕΝΤΟΛΗ

DEF sun Sphere

 

DirectionalLight

Αυτή η εντολή δημιουργεί μια δέσμη, η οποία θα φωτίσει παράλληλα, σε ένα δεδομένο διάνυσμα. Το φως αυτό προεκτείνεται έως το άπειρο.

 

ΠΑΡΑΜΕΤΡΟΙ :

Το On ‘ανάβει’ ή σβήνει την δέσμη φωτός.

Η Intensity ελέγχει την φωτεινότητα του φωτός.

Το Color ορίζει το χρώμα, χρησιμοποιώντας τις RGB τιμές.

Το Direction θέτει μια τιμή στο διάνυσμα.

 

Παράδειγμα

 

DirectionalLight

{

on   TRUE FALSE

intensity 0 to 1

color 0 to 1 0 to 1 0 to 1

direction 1 1 1

}

 

FontStyle

ορίζει τον τύπο των fonts. Το browser θα καθορίσει ποια fonts είναι διαθέσιμα.

 

ΠΑΡΑΜΕΤΡΟΙ :

Η Family ‘λέει’ στον browser τι font family υπάρχουν διαθέσιμα.

Το Style ορίζει το style των fonts.

Ενώ το Size καθορίζει το μέγεθος τους.

 

Παράδειγμα

 

FontStyle

{

size 1

family SERIF SANS TYPEWRITER

     style NONE BOLD ITALIC

     }

 

Group

αυτή είναι μια εντολή για να ομαδοποιεί τις φωλιάζουσες εντολές.

 

Παράδειγμα

 

Group    

{

child nodes

}

 

 

 

 

IndexFaceSet

καθορίζει την όψη κάθε έδρας ενός πολύεδρου.

 

ΠΑΡΑΜΕΤΡΟΙ :

Coordindex είναι ένας πίνακας με τα σημεία που χρησιμοποιούμε για τον σχεδιασμό κάθε έδρας. Ως πρώτο σημείο ορίζεται το 0, ως δεύτερο το 1 και ούτω καθεξής έως το τελευταίο στοιχείο που περιέχει ο πίνακας. Το στοιχείο A -1 ορίζει το τέλος των σημείων για μια έδρα.

Materialindex, normalindex, και texturecoordindex χρησιμοποιούνται ως coordindex (βλέπε παραπάνω), αλλά το καθένα επηρεάζει το material, normals, ή textures αντίστοιχα.

 

Παράδειγμα

 

IndexFaceSet

{

coordIndex [2, 1, 3 –1, 2, 4, 2 -1]

materialIndex [ as above ]

normalIndex [ as above ]

textureCoordIndex [ as above ]

}

 

IndexLineSet

δημιουργεί ένα πολύεδρο χρησιμοποιώντας γραμμές.

 

Info

 είναι μια εντολή comment κυρίως.

 

ΠΑΡΑΜΕΤΡΟΙ :

H String ‘ κρατάει ’ μέσα σε «"» την πληροφορία.

 

Παράδειγμα

 

Info

{

string "Εδώ έχουμε το comment"

}

 

 

LOD

Αυτή η εντολή καθορίζει το πόση λεπτομέρεια θα έχει το σκηνικό. Διαφορετικά επίπεδα λεπτομέρειας έχουν ως συνέπεια, για ένα αντικείμενο να χρησιμοποιούνται περισσότερες εικόνες. Οταν είμαστε κοντά σε ένα αντικείμενο τότε ‘φορτώνεται’ μια εικόνα, για αυτό το αντικείμενο, σε "hi resolution". Καθώς η απόσταση μας από το αντικείμενο μεγαλώνει, ‘φορτώνεται’ μια εικόνα με χαμηλότερη λεπτομέρεια "lower resolution". Αυτή η μέθοδος έχει ως αποτέλεσμα και την μεγαλύτερη ταχύτητα ‘εξερεύνησης’.

 

 

 

ΠΑΡΑΜΕΤΡΟΙ :

Η Range είναι ένας πίνακας με τις τιμές της απόστασης, διαχωρισμένες μεταξύ τους από κόμματα, που καθορίζουν πότε η μια ή η άλλη εικόνα θα φορτωθεί. Μέσα στην LOD πρέπει να υπάρχουν ορίσματα για πολλές εικόνες που μπορούν να φορτωθούν.

Center είναι οι συντεταγμένες όπου η εικόνα θα πρέπει να φορτωθεί. Οταν είμαστε κοντά στο αντικείμενο θα φορτωθεί η εικόνα node 1. Καθώς απομακρυνόμαστε γίνεται χρήση της εικόνας node 2. Για μεγαλύτερες αποστάσεις χρησιμοποιείται η εικόνα node 3.

 

Παράδειγμα

 

LOD

{

range[10, 20]

center 0 0 0

     node1

{

     }

node2

{

}

node3

     {

}

}

 

Material

Η εντολή αυτή καθορίζει τις ιδιότητες όψεως του αντικειμένου καθώς και των επόμενων, που βρίσκονται στην ίδια ομάδα.

 

ΠΑΡΑΜΕΤΡΟΙ :

Ambientcolor, Diffusecolor, Specularcolor, και Emissivecolor ελέγχουν τα αντίστοιχα χρώματα των αντικειμένων. Τα τρία βασικά χρώματα παίρνουν τιμές μεταξύ του 0 και1.

Η Shininess ελέγχει την φωτεινότητα, ενώ η Transparency ελέγχει την διαφάνεια του αντικειμένου. Και οι δύο αυτές εντολές ορίζονται, όπως και το χρώμα, μεταξύ του 0 και 1.

 

Παράδειγμα

 

Material

{

ambientColor 0 to 1 0 to 1 0 to 1

diffuseColor 0 to 1 0 to 1 0 to 1

specularColor 0 to 1 0 to 1 0 to 1

emissiveColor 0 to 1 0 to 1 0 to 1

shininess 0 to 1

transparency 0 to 1

}

 

MaterialBinding

Η εντολή αυτή καθορίζει πόσες materials θα απεικονισθούν στο σκηνικό.

 

ΠΑΡΑΜΕΤΡΟΙ :

Value καθορίζει τα διάφορα που χρησιμοποιούνται κάθε στιγμή. Δυνατές τιμές, που μπορεί να λάβει, είναι DEFAULT, OVERALL, PER_PART, PER_PART_INDEXED, PER_FACE, PER_FACE_INDEXED, PER_VERTEX, και PER_VERTEX_INDEXED.

 

Παράδειγμα

 

MaterialBinding

{

value ONE OF THE ABOVE LISTED VALUES

}

 

MatrixTranform

Ορίζει μια 3D transformation με έναν πίνακα 4 x 4.

 

ΠΑΡΑΜΕΤΡΟΙ :

Matrix εισάγει τον πίνακα.

 

Παράδειγμα

 

MatrixTransform

{

matrix    1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

}

 

Normals

Αυτή η εντολή ορίζει τα normal διανύσματα που θα χρησιμοποιηθούν από τις εντολές : IndexFaceSet, IndexLineSet, PointSet.

 

ΠΑΡΑΜΕΤΡΟΙ :

Η Vector δίνει τις συντεταγμένες για το καινούργιο normal διάνυσμα.

 

Παράδειγμα

 

Normal

{

vector 0 0 0

}