Passer au contenu principal

Lumière

Description

Ce composant permet à une entité d'émettre de la lumière.

Propriétés

PropriétéTypeDéfautDescription
type (obligatoire)chaîne de caractèresdirectionnelLes types pris en charge sont les suivants : "directionnel", "ponctuel" et "ambiant".
ombre portéebooléenvraiSi la source lumineuse doit projeter des ombres.
l'intensiténombre0.5La force d'émission.
rnuméro (0-255)255La quantité de rouge émise par la lumière.
gnuméro (0-255)255La quantité de vert que la lumière émet.
bnuméro (0-255)255La quantité de bleu émise par la lumière.
shadowBiasnombre-0.005Montant à ajouter ou à soustraire de la profondeur normalisée pour déterminer si une surface est dans l'ombre.
shadowNormalBiasnombre0Le décalage de la position utilisée pour interroger la carte des ombres par rapport à la normale de l'objet.
rayon de l'ombrenombre1Le rayon de l'ombre
shadowAutoUpdatebooléenvraiL'ombre doit-elle être calculée et mise à jour automatiquement ?
shadowBlurSamplesnombre8Nombre d'échantillons à utiliser pour le calcul de la carte d'ombres virtuelles.
shadowMapSizeHeightnombre1024Hauteur de la carte des ombres. (Les valeurs doivent être des puissances de 2)
shadowMapSizeWidthnombre1024Largeur de la carte des ombres. (Les valeurs doivent être des puissances de 2)
shadowCameraNearnombre0.5Volet proche du tronc de la caméra pour le calcul des ombres
shadowCameraFarnombre200Plan éloigné du tronc de la caméra pour le calcul des ombres
shadowCameraLeftnombre-50Volet gauche du frustum de la caméra pour le calcul des ombres
shadowCameraRightnombre50Volet droit du frustum de la caméra pour le calcul des ombres
shadowCameraBottomnombre-50Volet inférieur du frustum de la caméra pour le calcul des ombres
shadowCameraTopnombre50Volet supérieur du frustum de la caméra pour le calcul des ombres
cibleXnombre0Coordonnée X de la cible de la lumière (directionnel uniquement)
cibleYnombre0Coordonnée Y de la cible de la lumière (directionnel uniquement)
cibleZnombre0Coordonnée Z de la cible de la lumière (directionnel uniquement)

Fonctions

Get

Returns a read-only reference.

Example

ecs.Light.get(world, component.eid)

Set

Ensures the component exists on the entity, then assigns the (optional) data to the component.

Example

ecs.Light.set(world, component.eid, {
type: 'directional',
castShadow: true,
intensity: 0.5,
r: 255,
g: 255,
b: 255,
shadowBias: -0.005,
shadowNormalBias: 0,
shadowRadius: 1,
shadowAutoUpdate: true,
shadowBlurSamples: 8,
shadowMapSizeHeight: 1024,
shadowMapSizeWidth: 1024,
shadowCameraNear: 0.5,
shadowCameraFar: 200,
shadowCameraLeft: -50,
shadowCameraRight: 50,
shadowCameraBottom: -50,
shadowCameraTop: 50,
targetX: 0,
targetY: 0,
targetZ: 0
})

Mutate

Perform an update to the component within a callback function. Return true to indicate no changes made.

Example

ecs.Light.mutate(world, component.eid, (cursor) => {
cursor.intensity = 1.0 ;
cursor.castShadow = false ;
return false;
})

Remove

Removes the component from the entity.

Example

ecs.Light.remove(world, component.eid)

Has

Returns true if the component is present on the entity.

Example

ecs.Light.has(world, component.eid)

Reset

Adds, or resets the component to its default state.

Example

ecs.Light.reset(world, component.eid)

Advanced Functions

Cursor

Returns a mutable reference. Cursors are reused so only one cursor for each component can exist at a time.

Example
ecs.Light.cursor(world, component.eid)

Acquire

Same behavior as cursor, but commit must be called after the cursor is done being used.

Example
ecs.Light.acquire(world, component.eid)

Commit

Called after acquire. An optional third argument determines whether the cursor was mutated or not.

Example
ecs.Light.commit(world, component.eid)
ecs.Light.commit(world, component.eid, false)

Dirty

Mark the entity as having been mutated. Only needed in a specific case where systems are mutating data.

Example
ecs.Light.dirty(world, component.eid)