NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Capitolo 92: Spot Light.

 

La classe SpotLight è figlia di PointLight: in effetti, è una fonte di luce che agisce in una determinata direzione e all'interno di un cono d'azione.

 

 

Costruttori:

  • SpotLight();

  • SpotLight(Color3f color, Point3f position, Point3f attenuation, Vector3f direction, float spreadAngle, float concentration);

  • SpotLight(boolean lightOn, Color3f color, Point3f position, Point3f attenuation, Vector3f direction, float spreadAngle, float concentration).

 

 

La direzione è espressa mediante un vettore.

Nel determinare l'intensità luminosa in un dato punto del cono d'azione non entra in gioco solo la distanza dalla sorgente, ma anche l'angolo formato dal vettore direzione e dal vettore passante per la sorgente e il punto interno al cono preso in esame.

Il valore di concentration varia da 0.0 (distribuzione uniforme) a 128.0 (luce concentrata).

 

 

Java 3D Cono di illuminazione di una fonte di luce SpotLight

 

Tra i metodi di SpotLight abbiamo ad esempio:

  • getConcentration() : float

  • setConcentration(float concentration) : void

  • getDirection(Vector3f direction) : void

  • setDirection(Vector3f direction) : void

  • setDirection(float x, float y, float z) : void

  • getSpreadAngle() : float

  • setSpreadAngle(float spreadAngle) : void

Tale tipo di luce ha effetti sui colori diffuso e speculare degli oggetti presenti nel suo bound d'azione.

E' in grado di illuminare anche solo parti di oggetti (le parti all'interno del cono di luce).

Nel file d'esempio SpotLight.java abbiamo una fonte di luce SpotLight posta nell'origine e diretta verso (0, 0,10), con uno SpreadAngle di 45 gradi: solo la sfera centrale mostrerà il colore diffuso e il riflesso speculare, mentre due sfere risulteranno illuminate solo parzialmente, mostrando solo il colore diffuso, e altre due sfere non verranno illuminate affatto.

Il valore di concentration è quello di default: 0 (illuminazione uniforme).

Java 3D Esempio Spot Light

 

 
Vai all'inizio della pagina