Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Light3D
Hérite de : VisualInstance3D < Node3D < Node < Object
Hérité par : AreaLight3D, DirectionalLight3D, OmniLight3D, SpotLight3D
Fourni une classe commune aux différents types de nœuds de lumière.
Description
Light3D est la classe de base abstraite pour les nœuds de lumière. Puisque elle ne peut être instanciée, elle devrait pas être utilisée directement. D'autres types de nœuds de lumière héritent d'elle. Light3D contient les variables et paramètres communs utilisés pour l'éclairage.
Tutoriels
Propriétés
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Méthodes
get_correlated_color() const |
|
void |
Énumérations
enum Param: 🔗
Param PARAM_ENERGY = 0
La constante pour accéder à light_energy.
Param PARAM_INDIRECT_ENERGY = 1
La constante pour accéder à light_indirect_energy.
Param PARAM_VOLUMETRIC_FOG_ENERGY = 2
Constante pour accéder à light_volumetric_fog_energy.
Param PARAM_SPECULAR = 3
La constante pour accéder à light_specular.
Param PARAM_RANGE = 4
Constante pour accéder à OmniLight3D.omni_range ou SpotLight3D.spot_range.
Param PARAM_SIZE = 5
La constante pour accéder à light_size.
Param PARAM_ATTENUATION = 6
Constante pour accéder à OmniLight3D.omni_attenuation ou SpotLight3D.spot_attenuation.
Param PARAM_SPOT_ANGLE = 7
Constante pour accéder à SpotLight3D.spot_angle.
Param PARAM_SPOT_ATTENUATION = 8
Constante pour accéder à SpotLight3D.spot_angle_attenuation.
Param PARAM_SHADOW_MAX_DISTANCE = 9
Constante pour accéder à DirectionalLight3D.directional_shadow_max_distance.
Param PARAM_SHADOW_SPLIT_1_OFFSET = 10
Constante pour accéder à DirectionalLight3D.directional_shadow_split_1.
Param PARAM_SHADOW_SPLIT_2_OFFSET = 11
Constante pour accéder à DirectionalLight3D.directional_shadow_split_2.
Param PARAM_SHADOW_SPLIT_3_OFFSET = 12
Constante pour accéder à DirectionalLight3D.directional_shadow_split_3.
Param PARAM_SHADOW_FADE_START = 13
Constante pour accéder à DirectionalLight3D.directional_shadow_fade_start.
Param PARAM_SHADOW_NORMAL_BIAS = 14
Constante pour accéder à shadow_normal_bias.
Param PARAM_SHADOW_BIAS = 15
La constante pour accéder à shadow_bias.
Param PARAM_SHADOW_PANCAKE_SIZE = 16
Constante pour accéder à DirectionalLight3D.directional_shadow_pancake_size.
Param PARAM_SHADOW_OPACITY = 17
Constante pour accéder à shadow_opacity.
Param PARAM_SHADOW_BLUR = 18
Constante pour accéder à shadow_blur.
Param PARAM_TRANSMITTANCE_BIAS = 19
Constante pour accéder à shadow_transmittance_bias.
Param PARAM_INTENSITY = 20
Constante pour accéder à light_intensity_lumens et light_intensity_lux. Seulement utilisé lorsque ProjectSettings.rendering/lights_and_shadows/use_physical_light_units vaut true.
Param PARAM_MAX = 21
Représente la taille de l'énumération Param.
enum BakeMode: 🔗
BakeMode BAKE_DISABLED = 0
La lumière est ignorée lors du pré-calcul. Il s'agit du mode le plus rapide, mais la lumière ne sera pas prise en compte lors du pré-calcul de l'illumination globale. Ce mode devrait généralement être utilisé pour les lumières dynamiques qui changent rapidement, car l'effet de l'illumination globale est moins visible sur ces lumières.
Note : Cacher une lumière n'affecte pas le pré-calcul des LightmapGI. Cacher une lumière affectera toujours le pré-calcul des VoxelGI et SDFGI (voir Environment.sdfgi_enabled).
BakeMode BAKE_STATIC = 1
La lumière est prise en compte dans le pré-calcul statique (VoxelGI, LightmapGI, SDFGI (Environment.sdfgi_enabled). La lumière peut être déplacée ou modifiée, mais son illumination globale ne sera pas mise à jour en temps réel. Ceci est adapté aux changements subtils (comme des torches vacillantes), mais généralement pas aux grands changements tels que l'allumer ou éteindre une lumière.
Note : La lumière n'est pas pré-calculée dans LightmapGI si editor_only vaut true.
BakeMode BAKE_DYNAMIC = 2
La lumière est prise en compte dans le pré-calcul dynamique (VoxelGI et SDFGI (Environment.sdfgi_enabled) seulement). La lumière peut être déplacée ou modifiée avec la mise à jour de l'illumination globale en temps réel. L'apparence de l'illumination globale de la lumière sera légèrement différente par rapport à BAKE_STATIC. Cela a un coût de performance plus élevé par rapport à BAKE_STATIC. Lors de l'utilisation du SDFGI, la vitesse de mise à jour des lumières dynamiques est affectée par ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights.
Descriptions des propriétés
float distance_fade_begin = 40.0 🔗
La distance à la caméra à partir de laquelle la lumière commence à disparaître (en unités 3D).
Note : Seulement effective pour OmniLight3D et SpotLight3D.
bool distance_fade_enabled = false 🔗
Si true, la lumière disparaîtra en douceur lorsqu'elle est loin de la Camera3D active, à partir de distance_fade_begin. Cela agit comme une forme de niveau de détail (LOD). La lumière disparaîtra sur distance_fade_begin + distance_fade_length, après quoi elle sera coupée et ne sera pas envoyée au shader du tout. Utilisez ceci pour réduire le nombre de lumières actives dans une scène et ainsi améliorer les performances.
Note : Seulement effectif pour OmniLight3D et SpotLight3D.
float distance_fade_length = 10.0 🔗
Distance sur laquelle la lumière et son ombre s'effacent. L'énergie de la lumière et l'opacité de l'ombre sont progressivement réduites sur cette distance et sont complètement invisibles à la fin.
Note : Seulement effectif pour OmniLight3D et SpotLight3D.
float distance_fade_shadow = 50.0 🔗
La distance de la caméra à partir de laquelle l'ombre de la lumière est coupée (en unités 3D). Définissez ceci à une valeur inférieure à distance_fade_begin + distance_fade_length pour améliorer encore les performances, car le rendu des ombres est souvent plus cher que le rendu de la lumière elle-même.
Note : Seulement effectif pour OmniLight3D et SpotLight3D, et seulement lorsque shadow_enabled vaut true.
Si true, la lumière n'apparaît que dans l'éditeur et ne sera pas visible durant l'exécution. Si true, la lumière ne sera jamais pré-calculée dans LightmapGI indépendamment de son light_bake_mode.
float light_angular_distance = 0.0 🔗
La taille angulaire de la lumière en degrés. Augmenter cela rendra les ombres plus douces à de plus grandes distances (également appelées PCSS : Percentage-Closer Soft Shadows, litt. "ombres douces en pourcentage de proximité"). Seulement disponible pour les DirectionalLight3Ds. Pour référence, le Soleil de la Terre est à environ 0.5. Augmenter cette valeur au-dessus de 0.0 pour les lumières avec des ombres activées aura un coût de performance notable en raison du PCSS.
Note : light_angular_distance n'est pas affecté par Node3D.scale (l'échelle de la lumière ou l'échelle de ses parents).
Note : Les PCSS pour les lumières directionnelles ne sont seulement supportés que dans les méthodes de rendu Forward+, pas Mobile ou Compatibilité.
BakeMode light_bake_mode = 2 🔗
Le mode de pré-calcul de la lumière. Cela affectera les techniques d'éclairage global qui ont un effet sur le rendu de la lumière.
Note : Le mode d'éclairage global des maillages affectera également le rendu de l'éclairage global. Voir GeometryInstance3D.gi_mode.
Color light_color = Color(1, 1, 1, 1) 🔗
The light's color in nonlinear sRGB encoding. An overbright color can be used to achieve a result equivalent to increasing the light's light_energy.
int light_cull_mask = 4294967295 🔗
La lumière affectera les objets dans les calques sélectionnés.
Note : Le masque de light cull est ignoré par VoxelGI, SDFGI, LightmapGI, et le brouillard volumétrique. Ceux-ci rendront toujours la lumière en ignorant le masque de cull. Voir aussi VisualInstance3D.layers.
Le multiplicateur de force de la lumière (ce n'est pas une unité physique). Pour OmniLight3D et SpotLight3D, changer cette valeur ne changera que l'intensité de la couleur de la lumière, et non le rayon de la lumière.
float light_indirect_energy = 1.0 🔗
Multiplicateur secondaire utilisé avec la lumière indirecte (rebonds de la lumière). Utilisé avec VoxelGI et SDFGI (voir Environment.sdfgi_enabled).
Note : Cette propriété est ignorée si light_energy est égal à 0.0, car la lumière ne sera pas présente du tout dans le shader GI.
float light_intensity_lumens 🔗
Utilisé par les lumières positionnelles (OmniLight3D et SpotLight3D) lorsque ProjectSettings.rendering/lights_and_shadows/use_physical_light_units vaut true. Définit l'intensité de la source de lumière mesurée en lumens. Les lumens sont une mesure du flux lumineux, qui est la quantité totale de lumière visible émise par une source lumineuse par unité de temps.
Pour les SpotLight3Ds, nous supposons que la zone à l'extérieur du cône visible est entourée d'un matériau absorbant parfaitement la lumière. Par conséquent, la luminosité apparente de la zone du cône ne change pas à mesure que le cône augmente et diminue en taille.
Une ampoule typique de maison peut aller d'environ 600 lumens à 1 200 lumens, une bougie est d'environ 13 lumens, tandis qu'une lumière de rue peut être d'environ 60 000 lumens.
Utilisé par les DirectionalLight3Ds lorsque ProjectSettings.rendering/lights_and_shadows/use_physical_light_units vaut true. Définit l'intensité de la source lumineuse mesurée en lux. Le lux est une mesure du flux lumineux par zone unitaire, il est égal à un lumen par mètre carré. Le lux est la mesure de combien de lumière frappe une surface à un moment donné.
Sur une journée ensoleillée claire, une surface en plein soleil peut être d'environ 100 000 lux, une pièce typique dans une maison peut être d'environ 50 lux, tandis que le sol éclairé par la lumière peut être d'environ 0,1 lux.
Si true, l'effet de la lumière est inversé, assombrissant les zones et lançant des ombres lumineuses.
Texture2D projetée par la lumière. shadow_enabled doit être activé pour que le projecteur fonctionne. Les projecteurs de lumière font apparaître la lumière comme si elle brillait à travers un objet coloré mais transparent, presque comme la lumière brillant à travers du verre teinté.
Note : Contrairement à BaseMaterial3D dont le mode de filtrage peut être ajusté selon le matériau, le mode de filtrage pour les textures de projecteurs de lumière est défini globalement avec ProjectSettings.rendering/textures/light_projectors/filter.
Note : Les textures de projecteurs de lumière ne sont supportées que dans les méthodes de rendu Forward+ et Mobile, pas Compatibilité.
The simulated size of the light in Godot units, affecting shading and shadows. For OmniLight3Ds and SpotLight3Ds, increasing this value simulates a spherical area light, expanding the size of specular highlights. If shadows are enabled, a penumbra is rendered, making shadows appear blurrier. For AreaLight3Ds, only the shadows are affected. Penumbras are simulated with percentage-closer soft shadows, or PCSS, which has a noticeable performance cost for values above 0.0.
Note: light_size is not affected by Node3D.scale (the light's scale or its parent's scale).
Note: PCSS for positional lights is only supported in the Forward+ and Mobile rendering methods, not Compatibility.
L'intensité du reflet spéculaire dans les objets touchés par la lumière. Avec 0, la lumière devient une lumière purement diffuse. Si ça n'est pas une émission pré-calculée, cela peut être utilisé pour éviter des reflets irréalistes lorsqu'on place des lumières au-dessus d'une surface émise.
Définit la température de couleur de la source lumineuse, mesurée en Kelvin. Ceci est utilisé pour calculer une température de couleur corrélée qui teinte la light_color.
Le soleil sur une journée nuageuse est à environ 6500 Kelvin, sur une journée ensoleillée, il est entre 5500 à 6000 Kelvin, et sur un jour ensoleillé au lever du soleil ou au coucher du soleil, il va jusqu'à environ 1850 Kelvin.
float light_volumetric_fog_energy = 1.0 🔗
Multiplicateur secondaire multiplié avec light_energy puis utilisé avec le brouillard volumique de l'Environment (si activé). S'il est défini à 0.0, le calcul du brouillard volumétrique sera ignoré pour cette lumière, ce qui peut améliorer les performances pour de grandes quantités de lumières lorsque le brouillard volumétrique est activé.
Note : Pour empêcher les effets de lumière dynamiques à courte durée de mal interagir avec le brouillard volumétrique, les lumières utilisées dans ces effets devraient avoir light_volumetric_fog_energy défini à 0.0 à moins que Environment.volumetric_fog_temporal_reprojection_enabled ne soit désactivé (ou que la quantité de reprojection soit fortement diminuée).
Utilisé pour ajuster l'apparence de l'ombre. Une valeur trop petite résulte au auto-ombrage (« shadow acne »), et quqand trop grande, ça provoque des ombres séparées de l'objet qui crée l'ombre (« peter-panning »). Réglez selon les besoins.
Floute les bords de l'ombre. Peut être utilisé pour cacher des artéfacts de pixels dans des shadow maps à basse résolution. Une haute valeur peut impacter la performance, faire apparaître les ombres granuleuses et peut causer d'autres artéfacts indésirables. Essayez de la garder le plus près possible de la valeur par défaut.
int shadow_caster_mask = 4294967295 🔗
La lumière ne projettera des ombres qu'en utilisant les objets des couches sélectionnées.
Si true, la lumière projettera des ombres en temps réel. Cela a un coût en performances important. N'activez le rendu des ombres que quand il fait une différence notable dans l'apparence de la scène, et envisagez d'utiliser distance_fade_enabled pour cacher la lumière si elle est loin de la Camera3D.
float shadow_normal_bias = 2.0 🔗
Décale la recherche dans la lightmap par la normale de l'objet. Cela peut être utilisé pour réduire les artefacts d'auto-shadowing (litt. "auto-ombrage") sans utiliser shadow_bias. En pratique, cette valeur devrait être ajustée en même temps que shadow_bias pour réduire autant que possible les artéfacts.
L'opacité à utiliser pour rendre la shadow map de la lumière. Les valeurs inférieures à 1.0 font apparaître la lumière à travers les ombres. Cela peut être utilisé pour truquer l'éclairage global avec un coût de performance faible.
bool shadow_reverse_cull_face = false 🔗
Si true, inverse le backface culling du maillage. Cela peut être utile lorsque vous avez un maillage plat qui a une lumière derrière lui. Si vous avez besoin de projeter une ombre sur les deux côtés du maillage, définissez le maillage pour utiliser des ombres double-faces avec GeometryInstance3D.SHADOW_CASTING_SETTING_DOUBLE_SIDED.
float shadow_transmittance_bias = 0.05 🔗
There is currently no description for this property. Please help us by contributing one!
Descriptions des méthodes
Renvoie la Color d'un corps noir idéalisé à la température de lumière light_temperature donnée. Cette valeur est calculée en interne en fonction de la light_temperature. Cette Color est multipliée par light_color avant d'être envoyée au RenderingServer.
float get_param(param: Param) const 🔗
Renvoie la valeur du paramètre Param spécifié.
void set_param(param: Param, value: float) 🔗
Définit la valeur du paramètre Param spécifié.