48 return &RNA_PointLight;
52 return &RNA_SpotLight;
54 return &RNA_AreaLight;
81 if (la->use_nodes && la->nodetree ==
nullptr) {
88static void rna_Light_temperature_color_get(
PointerRNA *
ptr,
float *color)
105static float rna_Light_area(
Light *light,
const float matrix_world[16])
117 {
LA_LOCAL,
"POINT", 0,
"Point",
"Omnidirectional point light source"},
118 {
LA_SUN,
"SUN", 0,
"Sun",
"Constant direction parallel ray light source"},
119 {
LA_SPOT,
"SPOT", 0,
"Spot",
"Directional cone light source"},
120 {
LA_AREA,
"AREA", 0,
"Area",
"Directional area light source"},
121 {0,
nullptr, 0,
nullptr,
nullptr},
128 "Compute light area based on type and shape. The normalize "
129 "option divides light intensity by this area");
141 static const float default_color[4] = {1.0f, 1.0f, 1.0f, 1.0f};
159 prop,
"Use Temperature",
"Use blackbody temperature to define a natural light color");
215 "Custom Attenuation",
216 "Use custom attenuation distance instead of global light threshold");
224 prop,
"Cutoff Distance",
"Distance at which the light influence will be set to 0");
238 "Scales the power of the light exponentially, multiplying the intensity by 2^exposure");
246 "Normalize intensity by light area, for consistent total light "
247 "output regardless of size and shape");
273 switch (light_type) {
280 prop,
"Strength",
"Sunlight strength in watts per meter squared (W/m²)");
293 "The energy this light would emit over its entire area "
294 "if it wasn't limited by the spot angle, in units of radiant power (W)");
306 "Light energy emitted over the entire area of the light in all "
307 "directions, in units of radiant power (W)");
324 "Shadow Buffer Clip Start",
325 "Shadow map clip start, below which objects will not generate shadows");
333 prop,
"Shadow Soft Size",
"Light size for ray shadow sampling (Raytraced shadows)");
341 prop,
"Shadow Filter Radius",
"Blur shadow aliasing using Percentage Closer Filtering");
349 "Shadows Resolution Limit",
350 "Minimum size of a shadow map pixel. Higher values use less memory at "
351 "the cost of shadow quality.");
360 "Enable jittered soft shadows to increase shadow precision (disabled in viewport unless "
361 "enabled in the render settings). Has a high performance impact.");
370 "Shadow Jitter Overblur",
371 "Apply shadow tracing to each jittered sample to reduce under-sampling artifacts");
380 "Cascade Max Distance",
381 "End distance of the cascaded shadow map (only in perspective view)");
388 prop,
"Cascade Count",
"Number of texture used by the cascaded shadow map");
395 "Exponential Distribution",
396 "Higher value increase resolution towards the viewpoint");
403 prop,
"Cascade Fade",
"How smooth is the transition between each cascade");
410 "Absolute Resolution Limit",
411 "Limit the resolution at 1 unit from the light origin instead of "
412 "relative to the shadowed pixel");
433 "Apply falloff to avoid sharp edges when the light geometry intersects with other objects");
450 {0,
nullptr, 0,
nullptr,
nullptr},
472 prop,
"Size",
"Size of the area of the area light, X direction size for rectangle shapes");
482 "Size of the area of the area light in the Y direction for rectangle shapes");
491 "How widely the emitted light fans out, as in the case of a gridded softbox");
530 "Display transparent cone in 3D view to visualize which objects are contained in it");
538 "Apply falloff to avoid sharp edges when the light geometry intersects with other objects");
Scene * CTX_data_scene(const bContext *C)
Main * CTX_data_main(const bContext *C)
General operations, lookup, etc. for blender lights.
float BKE_light_area(const Light &light, const blender::float4x4 &object_to_world)
MINLINE void copy_v3_fl(float r[3], float f)
#define BLT_I18NCONTEXT_ID_LIGHT
void DEG_id_tag_update(ID *id, unsigned int flags)
void ED_node_shader_default(const bContext *C, Main *bmain, ID *id)
void IMB_colormanagement_blackbody_temperature_to_rgb(float r_dest[4], float value)
Read Guarded memory(de)allocation.
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
MatBase< float, 4, 4 > float4x4
const EnumPropertyItem rna_enum_light_type_items[]
void rna_def_animdata_common(StructRNA *srna)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_struct_refine_func(StructRNA *srna, const char *refine)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_float_default(PropertyRNA *prop, float value)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_multi_array(PropertyRNA *prop, int dimension, const int length[])
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
const int rna_matrix_dimsize_4x4[]
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_translation_context(StructRNA *srna, const char *context)
void RNA_def_property_float_array_default(PropertyRNA *prop, const float *array)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
static void rna_def_area_light(BlenderRNA *brna)
void RNA_def_light(BlenderRNA *brna)
static void rna_def_sun_light(BlenderRNA *brna)
static void rna_def_light_shadow(StructRNA *srna, bool sun)
static void rna_def_light_api(StructRNA *srna)
static void rna_def_point_light(BlenderRNA *brna)
static void rna_def_light_energy(StructRNA *srna, const short light_type)
static void rna_def_spot_light(BlenderRNA *brna)
static void rna_def_light(BlenderRNA *brna)
void WM_main_add_notifier(uint type, void *reference)