En VRML hi ha tota una sèrie d'objectes predefinits que formen el conjunt de primitives de geometria. Aquestes primitives són:
Cada una d'aquestes primitives és un node.
Per tal de poder visualitzar aquestes primitives, s'ha d'utilitzar el node Shape. Aquest node té dos fields: geometry i appearance. El segon el veurem en l'apartat següent (Materials I).
El field geometry és on s'especifica la geometria d'algun objecte 3D. Es a través d'aquest
field que s'especifiquen les primitives. A continuació es mostra com definir cada una de les primitives
existents:
Box:
Shape {
geometry Box { size 4 3 5 }
}
|
Aquí definim una caixa de 4 unitats d'aplada, 3 unitats d'alçada i 5 unitats de fons (size 4 3 5). Si volguessim definir un cub perfecte de 10 unitats per banda, posariem les tres xifres iguals a 10 (size 10 10 10).
(NOTA: En visualitzar l'exemple, veiem una massa de color gris uniforme degut a que no hem definit material per a l'objecte. Això ho veurem en l'apartat següent).
L'objecte queda definit de manera que el seu centre coincideix amb l'origen de coordenades locals, i que en aquest cas,
com que no s'hi han aplicat transformacions, estarà centrat també en l'origen de coordenades globals o
de món.
Sphere:
Shape {
geometry Sphere { radius 5 }
}
|
Aquí definim una esfera de 5 unitats de radi (radius 5). També queda centrada en l'origen de coordenades.
Cone:
Shape {
geometry Cone {
bottomRadius 3
height 2
}
}
|
Aquí definim un con amb una base de 3 unitats de radi (bottomRadius 3) i una alçada
de 2 unitats (height 2). També queda centrat en l'origen de coordenades.
Cylinder:
Shape {
geometry Cylinder {
radius 4
height 5
}
}
|
Aquí definim un cilindre amb una base de 4 unitats de radi (radius 4) i una alçada de 5 unitats (height 5). També queda centrat en l'origen de coordenades.
Per tal de definir una aparença a les nostres primitives (i en general als objectes), cal definir un color o una textura. En aquest apartat, tan sols veurem com definir un color i en un mòdul posterior veurem com es defineix de manera completa un material amb textures.
Així doncs, tal i com hem vist a dalt, el node Shape disposa d'un field enomenat appearance on definirem les característiques del material de l'objecte. I per fer-ho, utilitzarem el node Appearance de VRML.
Aquest node té diversos fields, però ara ens concetrarem en el seu field material. Per a definir aquest field, cal utilitzar el node Material. Aquí també només ens concentrarem en un field d'aquest node: field diffuseColor que fa referència al color que reflecteix l'objecte, és a dir, el color de l'objecte.
Tal i com hem vist en el mòdul "Eixos i Unitats", els colors a VRML es defineixen en
RGB (Red-Green-Blue o Vermell-Verd-Blau). Els valors de R, G i B han de ser dins del rang [0,1]. Vejam un exemple:
|
Exemple1: Volem definir la caixa d'abans, de color vermell (RGB = [1,0,0]).
Shape {
geometry Box { size 4 3 5 }
appearance Appearance {
material Material {
diffuseColor 1 0 0
}
}
}
|
Com es pot apreciar, ara la caixa que abans no es distingia correctament pel fet de no tenir aparença assignada, ara es veu clarament i del color vermell que hem definit.
Un altre exemple seria el següent:
|
Exemple2: Volem definir el cilindre d'abans, de color cian (blau clar) (RGB = [0,1,1]).
Shape {
geometry Cylinder {
radius 4
height 5
}
appearance Appearance {
material Material {
diffuseColor 0 1 1
}
}
}
|