From bb9d5cdaad001e5fc9ded67381740fd40a5e522b Mon Sep 17 00:00:00 2001 From: Eqkoss / T1NT1N Date: Fri, 21 Feb 2025 21:37:48 +0100 Subject: [PATCH] Lights: Add normalize property When enabled, this normalize the strength by the light area, to keep the total output the same regardless of shape or size. This is the existing behavior. This is supported in Cycles, EEVEE, Hydra, USD, COLLADA. For add-ons, an API function to compute the area is added for conversion, in case there is no native support for normalization. area = light.area(matrix_world=ob.matrix_world) Co-authored-by: Brecht Van Lommel Pull Request: https://projects.blender.org/blender/blender/pulls/136958 --- intern/cycles/blender/addon/ui.py | 1 + intern/cycles/blender/light.cpp | 3 ++ scripts/addons_core/hydra_storm/ui.py | 1 + .../startup/bl_ui/properties_data_light.py | 1 + source/blender/blenkernel/BKE_light.h | 2 + source/blender/blenkernel/intern/light.cc | 43 +++++++++++++++++ .../blender/draw/engines/eevee/eevee_light.cc | 4 ++ source/blender/io/collada/LightExporter.cpp | 6 ++- source/blender/io/usd/hydra/light.cc | 2 +- .../blender/io/usd/intern/usd_reader_light.cc | 24 +++------- .../blender/io/usd/intern/usd_writer_light.cc | 6 ++- source/blender/makesdna/DNA_light_types.h | 1 + source/blender/makesrna/intern/rna_light.cc | 47 +++++++++++++++++-- .../cycles_renders/light_path_ray_depth.png | 4 +- .../storm_usd_renders/clamp_both.png | 4 +- .../storm_usd_renders/clamp_direct.png | 4 +- .../storm_usd_renders/clamp_indirect.png | 4 +- .../light_path_ray_depth.png | 4 +- .../cycles_renders/multiple_area_lights.png | 4 +- .../cast_shadow_versioning.png | 4 +- .../multiple_area_lights.png | 4 +- .../spot_light_adaptive_split.png | 4 +- .../cycles_renders/shadow_link_clamp.png | 4 +- .../shadow_link_transparency.png | 4 +- .../storm_usd_renders/light_link_hidden.png | 4 +- .../light_link_instanced_receiver.png | 4 +- .../storm_usd_renders/light_link_simple.png | 4 +- .../light_link_simple_tree.png | 4 +- .../storm_usd_renders/shadow_link_clamp.png | 4 +- .../shadow_link_simple_3D_curve.png | 4 +- .../shadow_link_simple_ribbon_curve.png | 4 +- .../shadow_link_transparency.png | 4 +- .../storm_usd_renders/shadow_link_volume.png | 4 +- .../openvdb/cycles_renders/smoke_color.png | 4 +- .../openvdb/storm_usd_renders/smoke_color.png | 4 +- .../principled_bsdf_default.png | 4 +- .../principled_bsdf_emission_alpha.png | 4 +- .../storm_usd_renders/diffuse_normal_map.png | 4 +- .../principled_absorption.png | 4 +- .../storm_usd_renders/volume_overlap.png | 4 +- .../storm_usd_renders/volume_step_offset.png | 4 +- .../volume/storm_usd_renders/world_volume.png | 4 +- 42 files changed, 173 insertions(+), 84 deletions(-) diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index 37a524c6399..1544a88b859 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -1559,6 +1559,7 @@ class CYCLES_LIGHT_PT_light(CyclesButtonsPanel, Panel): col = layout.column() col.prop(light, "energy") col.prop(light, "exposure") + col.prop(light, "normalize") layout.separator() diff --git a/intern/cycles/blender/light.cpp b/intern/cycles/blender/light.cpp index 99a7cc80504..746e215b1d1 100644 --- a/intern/cycles/blender/light.cpp +++ b/intern/cycles/blender/light.cpp @@ -88,6 +88,9 @@ void BlenderSync::sync_light(BObjectInfo &b_ob_info, Light *light) exp2f(b_light.exposure()); light->set_strength(strength); + /* normalize */ + light->set_normalize(b_light.normalize()); + /* shadow */ PointerRNA clight = RNA_pointer_get(&b_light.ptr, "cycles"); light->set_cast_shadow(b_light.use_shadow()); diff --git a/scripts/addons_core/hydra_storm/ui.py b/scripts/addons_core/hydra_storm/ui.py index 99c9ce28c3f..823acb5ec58 100644 --- a/scripts/addons_core/hydra_storm/ui.py +++ b/scripts/addons_core/hydra_storm/ui.py @@ -182,6 +182,7 @@ class STORM_HYDRA_LIGHT_PT_light(Panel): main_col = layout.column() main_col.prop(light, "energy") main_col.prop(light, "exposure") + main_col.prop(light, "normalize") main_col.separator() if light.type == 'POINT': diff --git a/scripts/startup/bl_ui/properties_data_light.py b/scripts/startup/bl_ui/properties_data_light.py index 6d291ee2337..e3f49f61800 100644 --- a/scripts/startup/bl_ui/properties_data_light.py +++ b/scripts/startup/bl_ui/properties_data_light.py @@ -115,6 +115,7 @@ class DATA_PT_EEVEE_light(DataButtonsPanel, Panel): col = layout.column() col.prop(light, "energy") col.prop(light, "exposure") + col.prop(light, "normalize") layout.separator() diff --git a/source/blender/blenkernel/BKE_light.h b/source/blender/blenkernel/BKE_light.h index 0897207ffc8..ce55c2c86f9 100644 --- a/source/blender/blenkernel/BKE_light.h +++ b/source/blender/blenkernel/BKE_light.h @@ -10,6 +10,7 @@ */ #include "BLI_compiler_attrs.h" +#include "BLI_math_matrix_types.hh" #include "BLI_math_vector_types.hh" struct Depsgraph; @@ -22,3 +23,4 @@ void BKE_light_eval(Depsgraph *depsgraph, Light *la); float BKE_light_power(const Light &light); blender::float3 BKE_light_color(const Light &light); +float BKE_light_area(const Light &light, const blender::float4x4 &object_to_world); diff --git a/source/blender/blenkernel/intern/light.cc b/source/blender/blenkernel/intern/light.cc index f91321b8abd..b284a2ec6dc 100644 --- a/source/blender/blenkernel/intern/light.cc +++ b/source/blender/blenkernel/intern/light.cc @@ -19,6 +19,9 @@ #include "DNA_node_types.h" #include "DNA_scene_types.h" +#include "BLI_math_base.hh" +#include "BLI_math_matrix.hh" +#include "BLI_math_matrix_types.hh" #include "BLI_utildefines.h" #include "BKE_icons.h" @@ -219,3 +222,43 @@ blender::float3 BKE_light_color(const Light &light) return color; } + +float BKE_light_area(const Light &light, const blender::float4x4 &object_to_world) +{ + /* Make illumination power constant. */ + switch (light.type) { + case LA_AREA: { + /* Rectangle area. */ + const blender::float3x3 scalemat = object_to_world.view<3, 3>(); + const blender::float3 scale = blender::math::to_scale(scalemat); + + const float size_x = light.area_size * scale.x; + const float size_y = (ELEM(light.area_shape, LA_AREA_RECT, LA_AREA_ELLIPSE) ? + light.area_sizey : + light.area_size) * + scale.y; + + float area = size_x * size_y; + /* Scale for smaller area of the ellipse compared to the surrounding rectangle. */ + if (ELEM(light.area_shape, LA_AREA_DISK, LA_AREA_ELLIPSE)) { + area *= float(M_PI / 4.0f); + } + return area; + } + case LA_LOCAL: + case LA_SPOT: { + /* Sphere area. For legacy reasons object scale is not taken into account + * here, even though logically it should be. */ + const float radius = light.radius; + return (radius > 0.0f) ? float(4.0f * M_PI) * blender::math::square(radius) : 4.0f; + } + case LA_SUN: { + /* Sun disk area. */ + const float angle = light.sun_angle / 2.0f; + return (angle > 0.0f) ? float(M_PI) * blender::math::square(sinf(angle)) : 1.0f; + } + } + + BLI_assert_unreachable(); + return 1.0f; +} diff --git a/source/blender/draw/engines/eevee/eevee_light.cc b/source/blender/draw/engines/eevee/eevee_light.cc index cf2116a0fbe..c5161c4d9f9 100644 --- a/source/blender/draw/engines/eevee/eevee_light.cc +++ b/source/blender/draw/engines/eevee/eevee_light.cc @@ -15,6 +15,7 @@ #include "eevee_light.hh" #include "DNA_defaults.h" +#include "DNA_light_types.h" #include "DNA_sdna_type_ids.hh" #include "BKE_light.h" @@ -69,6 +70,9 @@ void Light::sync(ShadowModule &shadows, } this->color = BKE_light_power(*la) * BKE_light_color(*la); + if (la->mode & LA_UNNORMALIZED) { + this->color *= BKE_light_area(*la, object_to_world); + } float3 scale; object_to_world.view<3, 3>() = normalize_and_get_size(object_to_world.view<3, 3>(), scale); diff --git a/source/blender/io/collada/LightExporter.cpp b/source/blender/io/collada/LightExporter.cpp index 81600ef1337..4570782067c 100644 --- a/source/blender/io/collada/LightExporter.cpp +++ b/source/blender/io/collada/LightExporter.cpp @@ -11,6 +11,7 @@ #include "COLLADASWColor.h" #include "COLLADASWLight.h" +#include "DNA_light_types.h" #include "LightExporter.h" #include "collada_internal.h" @@ -48,7 +49,10 @@ void LightsExporter::operator()(Object *ob) Light *la = (Light *)ob->data; std::string la_id(get_light_id(ob)); std::string la_name(id_name(la)); - const blender::float3 color = BKE_light_power(*la) * BKE_light_color(*la); + blender::float3 color = BKE_light_power(*la) * BKE_light_color(*la); + if (la->mode & LA_UNNORMALIZED) { + color *= BKE_light_area(*la, ob->runtime->object_to_world); + } COLLADASW::Color col(color[0], color[1], color[2]); /* sun */ diff --git a/source/blender/io/usd/hydra/light.cc b/source/blender/io/usd/hydra/light.cc index 4fdde741935..769e8890a94 100644 --- a/source/blender/io/usd/hydra/light.cc +++ b/source/blender/io/usd/hydra/light.cc @@ -95,7 +95,7 @@ void LightData::init() data_[pxr::HdLightTokens->exposure] = light->exposure; data_[pxr::HdLightTokens->diffuse] = light->diff_fac; data_[pxr::HdLightTokens->specular] = light->spec_fac; - data_[pxr::HdLightTokens->normalize] = true; + data_[pxr::HdLightTokens->normalize] = (light->mode & LA_UNNORMALIZED) == 0; prim_type_ = prim_type(light); diff --git a/source/blender/io/usd/intern/usd_reader_light.cc b/source/blender/io/usd/intern/usd_reader_light.cc index e0cb1176e12..15ae409b47a 100644 --- a/source/blender/io/usd/intern/usd_reader_light.cc +++ b/source/blender/io/usd/intern/usd_reader_light.cc @@ -43,8 +43,6 @@ void USDLightReader::read_object_data(Main *bmain, const double motionSampleTime return; } - float light_surface_area = 1.0f; - if (prim_.IsA()) { /* Disk area light. */ blight->type = LA_AREA; @@ -59,9 +57,6 @@ void USDLightReader::read_object_data(Main *bmain, const double motionSampleTime } } } - - const float radius = 0.5f * blight->area_size; - light_surface_area = radius * radius * M_PI; } else if (prim_.IsA()) { /* Rectangular area light. */ @@ -84,8 +79,6 @@ void USDLightReader::read_object_data(Main *bmain, const double motionSampleTime } } } - - light_surface_area = blight->area_size * blight->area_sizey; } else if (prim_.IsA()) { /* Point and spot light. */ @@ -108,8 +101,6 @@ void USDLightReader::read_object_data(Main *bmain, const double motionSampleTime } } - light_surface_area = 4.0f * M_PI * blight->radius * blight->radius; - pxr::UsdLuxShapingAPI shaping_api = pxr::UsdLuxShapingAPI(prim_); if (shaping_api && shaping_api.GetShapingConeAngleAttr().IsAuthored()) { blight->type = LA_SPOT; @@ -208,15 +199,14 @@ void USDLightReader::read_object_data(Main *bmain, const double motionSampleTime } } - /* Normalize: Blender lights are always normalized, so inverse correct for it - * TODO: take into account object transform, or natively support this as a - * setting on lights in Blender. */ - bool normalize = false; + /* Normalize */ if (pxr::UsdAttribute normalize_attr = light_api.GetNormalizeAttr()) { - normalize_attr.Get(&normalize, motionSampleTime); - } - if (!normalize) { - blight->energy *= light_surface_area; + bool normalize = false; + if (normalize_attr.Get(&normalize, motionSampleTime)) { + if (!normalize) { + blight->mode |= LA_UNNORMALIZED; + } + } } USDXformReader::read_object_data(bmain, motionSampleTime); diff --git a/source/blender/io/usd/intern/usd_writer_light.cc b/source/blender/io/usd/intern/usd_writer_light.cc index 0e0e62a0a1a..7b6239774df 100644 --- a/source/blender/io/usd/intern/usd_writer_light.cc +++ b/source/blender/io/usd/intern/usd_writer_light.cc @@ -169,8 +169,10 @@ void USDLightWriter::do_write(HierarchyContext &context) light->spec_fac, timecode, usd_value_writer_); - set_attribute( - usd_light_api.CreateNormalizeAttr(pxr::VtValue(), true), true, timecode, usd_value_writer_); + set_attribute(usd_light_api.CreateNormalizeAttr(pxr::VtValue(), true), + (light->mode & LA_UNNORMALIZED) == 0, + timecode, + usd_value_writer_); pxr::UsdPrim prim = usd_light_api.GetPrim(); write_id_properties(prim, light->id, timecode); diff --git a/source/blender/makesdna/DNA_light_types.h b/source/blender/makesdna/DNA_light_types.h index bb848e15823..c47219352e1 100644 --- a/source/blender/makesdna/DNA_light_types.h +++ b/source/blender/makesdna/DNA_light_types.h @@ -145,6 +145,7 @@ enum { LA_SHAD_RES_ABSOLUTE = 1 << 22, LA_SHADOW_JITTER = 1 << 23, LA_USE_TEMPERATURE = 1 << 24, + LA_UNNORMALIZED = 1 << 25, }; /** #Light::falloff_type */ diff --git a/source/blender/makesrna/intern/rna_light.cc b/source/blender/makesrna/intern/rna_light.cc index c762009d596..808cc5d8aac 100644 --- a/source/blender/makesrna/intern/rna_light.cc +++ b/source/blender/makesrna/intern/rna_light.cc @@ -25,7 +25,10 @@ # include "MEM_guardedalloc.h" +# include "BLI_math_matrix_types.hh" + # include "BKE_context.hh" +# include "BKE_light.h" # include "BKE_main.hh" # include "BKE_texture.h" @@ -84,12 +87,23 @@ static void rna_Light_temperature_color_get(PointerRNA *ptr, float *color) { Light *la = (Light *)ptr->data; - float rgb[4]; - IMB_colormanagement_blackbody_temperature_to_rgb(rgb, la->temperature); + if (la->mode & LA_USE_TEMPERATURE) { + float rgb[4]; + IMB_colormanagement_blackbody_temperature_to_rgb(rgb, la->temperature); - color[0] = rgb[0]; - color[1] = rgb[1]; - color[2] = rgb[2]; + color[0] = rgb[0]; + color[1] = rgb[1]; + color[2] = rgb[2]; + } + else { + copy_v3_fl(color, 1.0f); + } +} + +static float rna_Light_area(Light *light, const float matrix_world[16]) +{ + blender::float4x4 mat(matrix_world); + return BKE_light_area(*light, mat); } #else @@ -105,6 +119,19 @@ const EnumPropertyItem rna_enum_light_type_items[] = { {0, nullptr, 0, nullptr, nullptr}, }; +static void rna_def_light_api(StructRNA *srna) +{ + FunctionRNA *func = RNA_def_function(srna, "area", "rna_Light_area"); + RNA_def_function_ui_description(func, + "Compute light area based on type and shape. The normalize " + "option divides light intensity by this area"); + PropertyRNA *parm = RNA_def_property(func, "matrix_world", PROP_FLOAT, PROP_MATRIX); + RNA_def_property_multi_array(parm, 2, rna_matrix_dimsize_4x4); + RNA_def_property_ui_text(parm, "", "Object to world space transformation matrix"); + parm = RNA_def_property(func, "area", PROP_FLOAT, PROP_NONE); + RNA_def_function_return(func, parm); +} + static void rna_def_light(BlenderRNA *brna) { StructRNA *srna; @@ -209,6 +236,15 @@ static void rna_def_light(BlenderRNA *brna) "Scales the power of the light exponentially, multiplying the intensity by 2^exposure"); RNA_def_property_update(prop, 0, "rna_Light_update"); + prop = RNA_def_property(srna, "normalize", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_negative_sdna(prop, nullptr, "mode", LA_UNNORMALIZED); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_ui_text(prop, + "Normalize", + "Normalize intensity by light area, for consistent total light " + "output regardless of size and shape"); + RNA_def_property_update(prop, 0, "rna_Light_draw_update"); + /* nodes */ prop = RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, nullptr, "nodetree"); @@ -225,6 +261,7 @@ static void rna_def_light(BlenderRNA *brna) /* common */ rna_def_animdata_common(srna); + rna_def_light_api(srna); } static void rna_def_light_energy(StructRNA *srna, const short light_type) diff --git a/tests/files/render/integrator/cycles_renders/light_path_ray_depth.png b/tests/files/render/integrator/cycles_renders/light_path_ray_depth.png index a030e414392..08d8ca917f1 100644 --- a/tests/files/render/integrator/cycles_renders/light_path_ray_depth.png +++ b/tests/files/render/integrator/cycles_renders/light_path_ray_depth.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:10f9e507d61470a8019828c92aa47b1ff40173098a504804e372908451371700 -size 27204 +oid sha256:1ccdfbd360fb1446b5e295f84b8e62b71b69041fc267f04d8ddb2ce32f6cd13d +size 27211 diff --git a/tests/files/render/integrator/storm_usd_renders/clamp_both.png b/tests/files/render/integrator/storm_usd_renders/clamp_both.png index d7d773d63df..53614b8753b 100644 --- a/tests/files/render/integrator/storm_usd_renders/clamp_both.png +++ b/tests/files/render/integrator/storm_usd_renders/clamp_both.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ca1a42907e79b2b7d08decac29b006c8a313f469a3e4560ab2c460518a243477 -size 6859 +oid sha256:fac979b958c94799b50371b090478ca379c88c54c843c7f2e7a8b0c156b34eb2 +size 6775 diff --git a/tests/files/render/integrator/storm_usd_renders/clamp_direct.png b/tests/files/render/integrator/storm_usd_renders/clamp_direct.png index 5f2636fe8d2..46e65f80f33 100644 --- a/tests/files/render/integrator/storm_usd_renders/clamp_direct.png +++ b/tests/files/render/integrator/storm_usd_renders/clamp_direct.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:87ac413c8275964fd5af6820eb79dd572a8a09e6b4d3f93d47dd9e841889a833 -size 6861 +oid sha256:9748535d87ebcc41ef3288249cbb7d2fb8a119c86ac9dde15e20ff7197986d41 +size 6777 diff --git a/tests/files/render/integrator/storm_usd_renders/clamp_indirect.png b/tests/files/render/integrator/storm_usd_renders/clamp_indirect.png index 87f1ee0a9d1..adc73ac2b0e 100644 --- a/tests/files/render/integrator/storm_usd_renders/clamp_indirect.png +++ b/tests/files/render/integrator/storm_usd_renders/clamp_indirect.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b85e581067e7635ac590f38616fe2b816d036090d908397bbaeae1781dc92f49 -size 6863 +oid sha256:3d1f44b45107943584fdf44c756bf29c42e4f75b7f862fb674f72b4aefc41a7e +size 6779 diff --git a/tests/files/render/integrator/storm_usd_renders/light_path_ray_depth.png b/tests/files/render/integrator/storm_usd_renders/light_path_ray_depth.png index b758e38e17b..8218730ab93 100644 --- a/tests/files/render/integrator/storm_usd_renders/light_path_ray_depth.png +++ b/tests/files/render/integrator/storm_usd_renders/light_path_ray_depth.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bedfa6c180e790f113d5faf9feff29352379845d068026b4fe58410f58aa70c3 -size 10287 +oid sha256:7e01368a23a094d987b46830d2e4cee803eed8436cd4efc0baee937d14cc094a +size 14936 diff --git a/tests/files/render/light/cycles_renders/multiple_area_lights.png b/tests/files/render/light/cycles_renders/multiple_area_lights.png index 34b2e83248d..1fe616d5a8a 100644 --- a/tests/files/render/light/cycles_renders/multiple_area_lights.png +++ b/tests/files/render/light/cycles_renders/multiple_area_lights.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3bd384a2a0c43e5e5244e42da4f43faa4bea6b0aeaa2fb9aea8c8a73dc13e6c8 -size 19952 +oid sha256:63e50c82aedfc17485d043205008206b290a2d1681bdddb85475470cbcf07639 +size 19921 diff --git a/tests/files/render/light/storm_usd_renders/cast_shadow_versioning.png b/tests/files/render/light/storm_usd_renders/cast_shadow_versioning.png index efcb1427617..2593f858e38 100644 --- a/tests/files/render/light/storm_usd_renders/cast_shadow_versioning.png +++ b/tests/files/render/light/storm_usd_renders/cast_shadow_versioning.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1d5ad6be23f2ee9bebcb8c817721609beda043a48e0ab1b8592ca3e7e84f81a0 -size 11939 +oid sha256:c2156edd85d37dfbdaa0e383aae3234385a378e3c8601d89e04883f66ec3f3b2 +size 12024 diff --git a/tests/files/render/light/storm_usd_renders/multiple_area_lights.png b/tests/files/render/light/storm_usd_renders/multiple_area_lights.png index 05b6bf970a1..c2b5bbf0043 100644 --- a/tests/files/render/light/storm_usd_renders/multiple_area_lights.png +++ b/tests/files/render/light/storm_usd_renders/multiple_area_lights.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:50cc39bc32d67d47531c45e4af2dacfb12580c792db6645041bebb6dd2b394fc -size 9858 +oid sha256:61a803f285f864675d896989991a49dfcdabd2bd04bab7d21bcc5b75738a652b +size 9787 diff --git a/tests/files/render/light/storm_usd_renders/spot_light_adaptive_split.png b/tests/files/render/light/storm_usd_renders/spot_light_adaptive_split.png index f708e7ad6e7..5ea1fa2660d 100644 --- a/tests/files/render/light/storm_usd_renders/spot_light_adaptive_split.png +++ b/tests/files/render/light/storm_usd_renders/spot_light_adaptive_split.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7ae40eabb3ac1e3bbc3a4b51622c02cd4e62486d1e0d870a500919f5b9cbd491 -size 6075 +oid sha256:9a60822eed74efd8a685e33a66a8e4b7b99cb56c50c6beab76f0d6fa712377e3 +size 5979 diff --git a/tests/files/render/light_linking/cycles_renders/shadow_link_clamp.png b/tests/files/render/light_linking/cycles_renders/shadow_link_clamp.png index c38749e2960..0a1d3bd00ec 100644 --- a/tests/files/render/light_linking/cycles_renders/shadow_link_clamp.png +++ b/tests/files/render/light_linking/cycles_renders/shadow_link_clamp.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e58ce8a2ac70f160cf494e751542fb0f3842d47db968c08a2b8345a4bdbce0df -size 29757 +oid sha256:68aec63ad699d783807c5c734e37e3f22d847d154655d32489d16ac030157c9a +size 29713 diff --git a/tests/files/render/light_linking/cycles_renders/shadow_link_transparency.png b/tests/files/render/light_linking/cycles_renders/shadow_link_transparency.png index fb8afa25316..7166a23f969 100644 --- a/tests/files/render/light_linking/cycles_renders/shadow_link_transparency.png +++ b/tests/files/render/light_linking/cycles_renders/shadow_link_transparency.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce70cd48cc180e7170b44a483542f876e6de9c7c55658caf27d3dd16be81d979 -size 22824 +oid sha256:d8bb9887c54227a100494b72f13b899e4f9f9bda79887b5c346a8d01f1f61a6a +size 22840 diff --git a/tests/files/render/light_linking/storm_usd_renders/light_link_hidden.png b/tests/files/render/light_linking/storm_usd_renders/light_link_hidden.png index 4dac8b29b5c..022a80e10b4 100644 --- a/tests/files/render/light_linking/storm_usd_renders/light_link_hidden.png +++ b/tests/files/render/light_linking/storm_usd_renders/light_link_hidden.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0db9cbc39d68c90652589f632d7d857e169db539b3456e9b81974e1ded094d9f -size 13735 +oid sha256:f57e498a62583537c19b4591c42504813d72aa8f964bea6dd8c4884b6658cd49 +size 13548 diff --git a/tests/files/render/light_linking/storm_usd_renders/light_link_instanced_receiver.png b/tests/files/render/light_linking/storm_usd_renders/light_link_instanced_receiver.png index d14bfb7f637..645d01984c2 100644 --- a/tests/files/render/light_linking/storm_usd_renders/light_link_instanced_receiver.png +++ b/tests/files/render/light_linking/storm_usd_renders/light_link_instanced_receiver.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21bc38d113b8ec1ede6a4d0b561a83da2b2ad820c65a9647ab548b3bc9741825 -size 12584 +oid sha256:cf142d9a3a586e1eb36ee56a89e098bebd52c2d82fe25029c16e8b22f966e000 +size 12623 diff --git a/tests/files/render/light_linking/storm_usd_renders/light_link_simple.png b/tests/files/render/light_linking/storm_usd_renders/light_link_simple.png index 57e9c397b72..b75bdc3401c 100644 --- a/tests/files/render/light_linking/storm_usd_renders/light_link_simple.png +++ b/tests/files/render/light_linking/storm_usd_renders/light_link_simple.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1a4074bbc8dca819e50d51b11704eb0c3973681f32a2a36f65fa888f1755c891 -size 14672 +oid sha256:4aed9a3b8b5fd8756ab02868e89c8806b3b1aa4e98384ca866b77c80cf3be9df +size 14509 diff --git a/tests/files/render/light_linking/storm_usd_renders/light_link_simple_tree.png b/tests/files/render/light_linking/storm_usd_renders/light_link_simple_tree.png index 7f5096bba32..3b763bba8e3 100644 --- a/tests/files/render/light_linking/storm_usd_renders/light_link_simple_tree.png +++ b/tests/files/render/light_linking/storm_usd_renders/light_link_simple_tree.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4522f3d92a9961255eba3a36cd311929cce54899690653fb41445c4b5cb98fbe -size 14677 +oid sha256:dc01c39bd2064605087b008cff43bf0a733c6b9e4176f664d7ea5ca8184eee8c +size 14514 diff --git a/tests/files/render/light_linking/storm_usd_renders/shadow_link_clamp.png b/tests/files/render/light_linking/storm_usd_renders/shadow_link_clamp.png index f217e3e19fb..c14932d4f54 100644 --- a/tests/files/render/light_linking/storm_usd_renders/shadow_link_clamp.png +++ b/tests/files/render/light_linking/storm_usd_renders/shadow_link_clamp.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53dd89516ed704acbaa0b933294700514bbc83d9281ad34e91abcc887433b6ed -size 13744 +oid sha256:d30723fcae68458cbb74c0c243fb7e441fcae5dfddf81614f7faba63f33cc8db +size 13726 diff --git a/tests/files/render/light_linking/storm_usd_renders/shadow_link_simple_3D_curve.png b/tests/files/render/light_linking/storm_usd_renders/shadow_link_simple_3D_curve.png index dec83b8c08c..a68d323e828 100644 --- a/tests/files/render/light_linking/storm_usd_renders/shadow_link_simple_3D_curve.png +++ b/tests/files/render/light_linking/storm_usd_renders/shadow_link_simple_3D_curve.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4cd2f990029e035f01e4ffa41e1c6524114bfcd59958a3ab00f2832fa62f2bbf -size 9097 +oid sha256:9cde412bac71595aae27d945035958e336c4ab54c92d1cd624d429036882aad0 +size 9171 diff --git a/tests/files/render/light_linking/storm_usd_renders/shadow_link_simple_ribbon_curve.png b/tests/files/render/light_linking/storm_usd_renders/shadow_link_simple_ribbon_curve.png index 42d16966e21..7ba7b78179d 100644 --- a/tests/files/render/light_linking/storm_usd_renders/shadow_link_simple_ribbon_curve.png +++ b/tests/files/render/light_linking/storm_usd_renders/shadow_link_simple_ribbon_curve.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d4de435c5dbdf7303ca369fa7cb9c5580a208b513daa6e5a056bab75caf4df0f -size 9101 +oid sha256:e7d6a31da51130d8528c6f496a5e2315b1f5f62d077dfead5d3f39a14f7460fc +size 9175 diff --git a/tests/files/render/light_linking/storm_usd_renders/shadow_link_transparency.png b/tests/files/render/light_linking/storm_usd_renders/shadow_link_transparency.png index 20c236e63cc..5f655124be1 100644 --- a/tests/files/render/light_linking/storm_usd_renders/shadow_link_transparency.png +++ b/tests/files/render/light_linking/storm_usd_renders/shadow_link_transparency.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ae430bb206848d080dee07ba7f4d4c97ff3bac6648eea278501a49e52f228b4f -size 12840 +oid sha256:8d93d7c8c3cd7a7540d175d3b3765e3cc982ec304c6ad41e5917256dbe75996d +size 12473 diff --git a/tests/files/render/light_linking/storm_usd_renders/shadow_link_volume.png b/tests/files/render/light_linking/storm_usd_renders/shadow_link_volume.png index eb7fefabc96..dd55059ef14 100644 --- a/tests/files/render/light_linking/storm_usd_renders/shadow_link_volume.png +++ b/tests/files/render/light_linking/storm_usd_renders/shadow_link_volume.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fb9d5565f5f96ee24b9a09a13d4e40edb9398b6550cd7a7026f4dd4daced90d2 -size 12017 +oid sha256:a16df0d32e9d4a50d1078c80d5e6f6a288286b24cd8964e8ad84256667eef326 +size 11808 diff --git a/tests/files/render/openvdb/cycles_renders/smoke_color.png b/tests/files/render/openvdb/cycles_renders/smoke_color.png index c0fc395957b..42c6b5d5cb8 100644 --- a/tests/files/render/openvdb/cycles_renders/smoke_color.png +++ b/tests/files/render/openvdb/cycles_renders/smoke_color.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e9d3ef19fc739d9ad6d58bf415ee64891961ce714e36132627c0007df3e820b3 -size 28015 +oid sha256:0897e3a60632d0e2d82abaa494262b31eecf945069a489f5de4304785e562e82 +size 28034 diff --git a/tests/files/render/openvdb/storm_usd_renders/smoke_color.png b/tests/files/render/openvdb/storm_usd_renders/smoke_color.png index 83091367742..da03451e2e9 100644 --- a/tests/files/render/openvdb/storm_usd_renders/smoke_color.png +++ b/tests/files/render/openvdb/storm_usd_renders/smoke_color.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d8e1db324066f09ed5242bf64959807d7fe244fb4e6ce919fa35b46af6e9986b -size 10874 +oid sha256:a2a77004d8b96b2c9e2b092b74aca0a25dcafb395536025b4135d28ce8331c14 +size 10862 diff --git a/tests/files/render/principled_bsdf/storm_usd_renders/principled_bsdf_default.png b/tests/files/render/principled_bsdf/storm_usd_renders/principled_bsdf_default.png index ae247adaec7..ea01db5f0dc 100644 --- a/tests/files/render/principled_bsdf/storm_usd_renders/principled_bsdf_default.png +++ b/tests/files/render/principled_bsdf/storm_usd_renders/principled_bsdf_default.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce76831d525d606a780bd3797e54b1ac4a762a4677d16c034d2e9e1ae830fb1e -size 12543 +oid sha256:cc53e118f02e73879710cd2ed9e61a6271fa5a340c289eca7fd07b4f9b2aa295 +size 12631 diff --git a/tests/files/render/principled_bsdf/storm_usd_renders/principled_bsdf_emission_alpha.png b/tests/files/render/principled_bsdf/storm_usd_renders/principled_bsdf_emission_alpha.png index f24cb561855..96ff269cddf 100644 --- a/tests/files/render/principled_bsdf/storm_usd_renders/principled_bsdf_emission_alpha.png +++ b/tests/files/render/principled_bsdf/storm_usd_renders/principled_bsdf_emission_alpha.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:414b6c576bca9ce23d0d84a65eeb5ccf15d38c438c7b107de32c8513000072db -size 4185 +oid sha256:394c845d71ef6e392f5d6eed7210d481ed32e4361ab6c57adadf7008826a03e4 +size 6557 diff --git a/tests/files/render/shader/storm_usd_renders/diffuse_normal_map.png b/tests/files/render/shader/storm_usd_renders/diffuse_normal_map.png index b398eaa1516..66f642800c4 100644 --- a/tests/files/render/shader/storm_usd_renders/diffuse_normal_map.png +++ b/tests/files/render/shader/storm_usd_renders/diffuse_normal_map.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2d7e603c8716ede770c5c5572a25efcd2eca9076a5d62733609d146b26950ef4 -size 43462 +oid sha256:3e70d4b1f3e5490f45eda2411ac9d4d56b62a324973050ceb21c1f2957fd2123 +size 73900 diff --git a/tests/files/render/volume/storm_usd_renders/principled_absorption.png b/tests/files/render/volume/storm_usd_renders/principled_absorption.png index 6317e1f9566..c2bf715b5f4 100644 --- a/tests/files/render/volume/storm_usd_renders/principled_absorption.png +++ b/tests/files/render/volume/storm_usd_renders/principled_absorption.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c5449059c015a80919a51d0eeafea97995c14af4572e4fab093c3b29687c865f -size 13971 +oid sha256:5f279fc8f4edafb38d880e5249a15000808b219015e8a11ea02c881875f45750 +size 13885 diff --git a/tests/files/render/volume/storm_usd_renders/volume_overlap.png b/tests/files/render/volume/storm_usd_renders/volume_overlap.png index 18f1615f341..e50044afdbc 100644 --- a/tests/files/render/volume/storm_usd_renders/volume_overlap.png +++ b/tests/files/render/volume/storm_usd_renders/volume_overlap.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f8c7601624ce93f91bf64cbd722e9b88ad73852a4298376d7b3536b2bd651e81 -size 8021 +oid sha256:e96d41f91aae1597cd8759aa6886e3008220cba8f354f1b6efed15f6cbcd105a +size 8012 diff --git a/tests/files/render/volume/storm_usd_renders/volume_step_offset.png b/tests/files/render/volume/storm_usd_renders/volume_step_offset.png index 3ebde19588b..4ffdffad52e 100644 --- a/tests/files/render/volume/storm_usd_renders/volume_step_offset.png +++ b/tests/files/render/volume/storm_usd_renders/volume_step_offset.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:570dd56cd5235e33237481d6430a7627d5e59dc606019475c4b48ee22c6a971f -size 7973 +oid sha256:a7b4d7a5590597012de161e12c85a3be20e1bda6ef1b098a2d533c9f52c250a9 +size 10693 diff --git a/tests/files/render/volume/storm_usd_renders/world_volume.png b/tests/files/render/volume/storm_usd_renders/world_volume.png index 3a8b29f9c05..327f500a33a 100644 --- a/tests/files/render/volume/storm_usd_renders/world_volume.png +++ b/tests/files/render/volume/storm_usd_renders/world_volume.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:43f600d94a97b5660af3564779e62e4bbb56a2e1710bfbcb12dffa1d6f8feef6 -size 14186 +oid sha256:ac42d5fe52cc9eab05d1d883dc325304844ccb2a026efc21639e0e747b477262 +size 15383