Fino a questo punto, gli oggetti realizzati sono stati
collocati in un ambiente “vuoto” con lo sfondo di
default di colore nero. In questo capitolo, quindi si
analizzerà la possibilità di modificare le
caratteristiche del background in modo da aggiungere un ulteriore
sensazione di realismo.
Questa possibilità può essere raggiunta in due
modi in VRML 2.0.
Il primo modo consiste nel cambiare colore al background,
specificando posizione e colori degli elementi cielo e terra. In
pratica, VRML rende disponibile una sfera che avvolge
completamente il mondo; il colore sui lati interni della sfera
puo' essere specificato in modo tale da variare in modo lineare
tra piu' valori.
Il secondo metodo prevede l’utilizzo, in luogo della
sfera, di un box sulle cui pareti interne applicare oltre ai
colori, textures di immagini.
Prima di verificare gli esempi, conviene analizzare il nodo
Background. All’interno di esso è infatti possibile
dichiarare diversi campi. Ecco un elenco dei principali (ve ne
sono altri due che in questo capitolo non verranno presi in
considerazione):
- backUrl
- bottomUrl
- frontUrl
- leftUrl
- rightUrl
- topUrl
- skyAngle
- skyColor
- groundAngle
- groundColor
I fields: backUrl, bottomUrl, frontUrl, leftUrl, rightUrl e
topUrl richiedono come parametro l’url di una immagine da
mappare su ognuno dei sei lati che costituiscono il box entro il
quale può essere avvolta la scena del mondo. L’uso
di questi attributi risulta decisamente semplice.
Gli ultimi quattro campi: skyAngle, skyColor, groundAngle e
groundColor si riferiscono invece alle proprietà di cielo
e terra descrivibili sulla parete interna della suddetta
sfera.
Ecco l’esempio di un possibile impiego di texture per il
background:
#VRML V2.0 utf8
# utilizzo di textures per il background: nodo BackGround
Background {
backUrl [ "cielo.jpg" ]
bottomUrl [ "terra.jpg" ]
frontUrl [ "cielo.jpg" ]
leftUrl [ "cielo.jpg" ]
rightUrl [ "cielo.jpg" ]
topUrl [ "terra.jpg" ]
}
Ecco ora l’esempio relativo alla seconda
possibilità:
#VRML V2.0 utf8
# colori di sfondo: nodo Background
Background {
skyAngle [1.2 1.57 3.14]
skyColor [0 0 1, 0.25 0.25 1, 0.5 0.5 1]
groundAngle [1.3 1.57 ]
groundColor [0.05 0.25 0.05, 0.1 0.5 0.1, 0.25 0.75 0.25 ]
}
Per quanto riguarda il colore del cielo, si sono forniti i
valori relativi agli attributi degli angoli e dei colori. Gli
angoli specificano la posizione in cui si collocherà il
corrispondente colore. Per tutti gli angoli intermedi, non
espressamente dichiarati, il browser si occuperà di
effettuare l’adeguata interpolazione tra i colori indicati
agli estremi. Si tenga presente che l'angolo 0 per convenzione
rappresenta lo zenit della sfera (il punto sopra la testa
dell’osservatore). Per realizzare lo sfondo occorre fornire
degli angoli positivi sino al valore di pi-greco (3,14).
Nell’esempio, si sono dichiarati 4 colori per il cielo: il
primo comincia al punto 0 (valore di default che non è
necessario dichiarare) e termina al punto 1.2, qui comincia
progressivamente a manifestarsi il secondo colore che
raggiungerà l’esatto valore RGB dichiarato nel punto
mediano della sfera descritto con 1.57 radianti, e così di
seguito fino al completamento della “sfera celeste”.
Per quanto riguarda la terra si è proceduto nello stesso
modo: in questo caso il punto 0 rappresenta il nadir (il punto
sotto i piedi dell’osservatore) mentre il valore di 1.57
radianti a rappresenta approssimativamente la linea
dell'orizzonte).
Per una migliore comprensione delle caratteristiche dei campi
sopra citati si veda l’immagine seguente.