[page:Object3D] → [page:Light] →

[name]

Una luce che viene emessa in una direzione specifica. Questa luce si comporterà come se fosse infinitamente lontana e i raggi da essa prodotti fossero tutti paralleli. Il caso d'uso comune di questa luce è simulare la luce del giorno; il sole è abbastanza lontano che la sua posizione può essere considerata infinita, e tutti i raggi di luce che ne provengono sono paralleli.

Questa luce può proiettare le ombre - vedi la pagina [page:DirectionalLightShadow] per i dettagli.

Una nota riguardo la posione, il target e la rotazione

Un punto di confusione comune per le luci direzionali è che l'impostazione della rotazione non ha alcun effetto. Questo succede perché la DirectionalLight di three.js è l'equivalente di ciò che viene spesso chiamato 'Target Direct Light' in altre applicazioni.

Questo significa che la sua direzione viene calcolata puntando dalla [page:Object3D.position posizione] della luce alla posizione del [page:.target target] (al contrario di una 'Free Direct Light' che ha solo una componente di rotazione).

La ragione di ciò è consentire alla luce di proiettare ombre - la telecamera delle [page:.shadow ombre] ha bisogno di una posizione da cui calcolare le ombre.

Vedi la proprietà [page:.target target] di seguito per i dettagli sull'aggiornamento del target.

Codice di Esempio

// Luce bianca direzionale a metà intensità che brilla dall'alto. const directionalLight = new THREE.DirectionalLight( 0xffffff, 0.5 ); scene.add( directionalLight );

Esempi

[example:misc_controls_fly controls / fly ]
[example:webgl_effects_parallaxbarrier effects / parallaxbarrier ]
[example:webgl_effects_stereo effects / stereo ]
[example:webgl_geometry_extrude_splines geometry / extrude / splines ]
[example:webgl_materials_bumpmap materials / bumpmap ]

Costruttore

[name]( [param:Integer color], [param:Float intensity] )

[page:Integer color] - (opzionale) colore esadecimale della luce. Il valore predefinito è 0xffffff (bianco).
[page:Float intensity] - (opzionale) valore numerico della forza/intensità della luce. Il valore predefinito è 1.

Crea una nuova [name].

Proprietà

Vedi la classe base [page:Light Light] per le proprietà comuni.

[property:Boolean castShadow]

Se impostato a `true` la luce proietterà ombre dinamiche. *Attenzione*: Questo è costoso e richiede una messa a punto per ottenere le ombre giuste. Si veda [page:DirectionalLightShadow] per i dettagli. Il valore predefinito è `false`.

[property:Boolean isDirectionalLight]

Flag di sola lettura per verificare se l'oggetto dato è del tipo [name].

[property:Vector3 position]

Questo è impostato uguale a [page:Object3D.DefaultUp] (0, 1, 0), in modo che la luce brilli dall'alto verso il basso.

[property:DirectionalLightShadow shadow]

Una [page:DirectionalLightShadow] utilizzata per calcolare le ombre per questa luce.

[property:Object3D target]

DirectionalLight punta dalla sua [page:.position posizione] alla target.position. La posizione predefinita del target è `(0, 0, 0)`.
*Nota*: Affinchè la posizione del target possa essere modificata in qualcosa di diverso da quella predefinita, è necessario aggiungerlo alla [page:Scene scena] utilizzando

scene.add( light.target );

In questo modo il [page:Object3D.matrixWorld matrixWorld] del target viene aggiornato automaticamente a ogni frame.

È anche possibile impostare il target in modo che sia un altro oggetto nella scena (qualsiasi cosa con una proprietà [page:Object3D.position position]), in questo modo:

const targetObject = new THREE.Object3D(); scene.add(targetObject); light.target = targetObject;

La directionalLight ora seguirà l'oggetto target.

Metodi

Vedi la classe base [page:Light Light] per i metodi comuni.

[method:undefined dispose]()

Sovrascrive il metodo [page:Light.dispose dispose] della classe base. Elimina l'[page:DirectionalLightShadow ombra] di questa luce.

[method:this copy]( [param:DirectionalLight source] )

Copia il valore di tutte le proprietà dalla [page:DirectionalLight sorgente] (source) a questa DirectionalLight.

Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]