47 return &RNA_PointLight;
51 return &RNA_SpotLight;
53 return &RNA_AreaLight;
79 if (la->use_nodes && la->nodetree ==
nullptr) {
86static void rna_Light_temperature_color_get(
PointerRNA *
ptr,
float *color)
103static float rna_Light_area(
Light *light,
const float matrix_world[16])
115 {
LA_LOCAL,
"POINT", 0,
"Point",
"Omnidirectional point light source"},
116 {
LA_SUN,
"SUN", 0,
"Sun",
"Constant direction parallel ray light source"},
117 {
LA_SPOT,
"SPOT", 0,
"Spot",
"Directional cone light source"},
118 {
LA_AREA,
"AREA", 0,
"Area",
"Directional area light source"},
119 {0,
nullptr, 0,
nullptr,
nullptr},
126 "Compute light area based on type and shape. The normalize "
127 "option divides light intensity by this area");
139 static const float default_color[4] = {1.0f, 1.0f, 1.0f, 1.0f};
157 prop,
"Use Temperature",
"Use blackbody temperature to define a natural light color");
213 "Custom Attenuation",
214 "Use custom attenuation distance instead of global light threshold");
222 prop,
"Cutoff Distance",
"Distance at which the light influence will be set to 0");
236 "Scales the power of the light exponentially, multiplying the intensity by 2^exposure");
244 "Normalize intensity by light area, for consistent total light "
245 "output regardless of size and shape");
271 switch (light_type) {
278 prop,
"Strength",
"Sunlight strength in watts per meter squared (W/m²)");
291 "The energy this light would emit over its entire area "
292 "if it wasn't limited by the spot angle, in units of radiant power (W)");
304 "Light energy emitted over the entire area of the light in all "
305 "directions, in units of radiant power (W)");
322 "Shadow Buffer Clip Start",
323 "Shadow map clip start, below which objects will not generate shadows");
331 prop,
"Shadow Soft Size",
"Light size for ray shadow sampling (Raytraced shadows)");
339 prop,
"Shadow Filter Radius",
"Blur shadow aliasing using Percentage Closer Filtering");
347 "Shadows Resolution Limit",
348 "Minimum size of a shadow map pixel. Higher values use less memory at "
349 "the cost of shadow quality.");
358 "Enable jittered soft shadows to increase shadow precision (disabled in viewport unless "
359 "enabled in the render settings). Has a high performance impact.");
368 "Shadow Jitter Overblur",
369 "Apply shadow tracing to each jittered sample to reduce under-sampling artifacts");
378 "Cascade Max Distance",
379 "End distance of the cascaded shadow map (only in perspective view)");
386 prop,
"Cascade Count",
"Number of texture used by the cascaded shadow map");
393 "Exponential Distribution",
394 "Higher value increase resolution towards the viewpoint");
401 prop,
"Cascade Fade",
"How smooth is the transition between each cascade");
408 "Absolute Resolution Limit",
409 "Limit the resolution at 1 unit from the light origin instead of "
410 "relative to the shadowed pixel");
431 "Apply falloff to avoid sharp edges when the light geometry intersects with other objects");
448 {0,
nullptr, 0,
nullptr,
nullptr},
470 prop,
"Size",
"Size of the area of the area light, X direction size for rectangle shapes");
480 "Size of the area of the area light in the Y direction for rectangle shapes");
489 "How widely the emitted light fans out, as in the case of a gridded softbox");
528 "Display transparent cone in 3D view to visualize which objects are contained in it");
536 "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, 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)