Tests: Add render tests for outputs of the light path node

This commit adds tests for the outputs of the light path node.

This include many typical tests (E.g. Changing the colour of a material
based on if it's a camera ray or not) along with some "unusual" tests.

Examples include:
- Testing many of the light path node outputs on lights.
  - This includes "analytical" lights and mesh lights, which can behave
    differently depending on if Next Event Estimation or forward path
    tracing occurs.
- Adding extra objects using ray portal BSDFs and transparent BSDFs
  just to double check they don't introduce their own issues.

Ref: blender/blender-test-data!55
This commit is contained in:
Alaska
2025-02-25 04:34:19 +01:00
committed by Alaska
parent 67ffad53aa
commit 01d80cee28
3 changed files with 12 additions and 3 deletions

View File

@@ -36,6 +36,10 @@ BLOCKLIST = [
"ray_offset.blend",
# Blocked due to difference in border texel handling between platforms (to be fixed).
"render_passes_thinfilm_color.blend",
# Blocked due to a significant amount of transparency that have a different nosie pattern between devices.
"light_path_is_shadow_ray.blend",
# Blocked as the test seems to alternate between two different states
"light_path_is_diffuse_ray.blend",
]
BLOCKLIST_METAL = [
@@ -46,6 +50,7 @@ BLOCKLIST_METAL = [
"shadow_all_max_bounces.blend",
"light_link_exclude.blend",
"light_link_instanced_receiver.blend",
"light_path_is_volume_scatter_ray.blend",
# Blocked due to difference in volume lightprobe bakes(maybe?) (to be fixed).
"volume_zero_extinction_channel.blend",
# Blocked due to difference in screen space tracing (to be fixed).
@@ -273,8 +278,8 @@ def main():
# hair close up
report.set_fail_threshold(0.0275)
elif test_dir_name.startswith('integrator'):
# shadow all max bounces
report.set_fail_threshold(0.0275)
# Noise difference in transparent materials
report.set_fail_threshold(0.05)
elif test_dir_name.startswith('pointcloud'):
# points transparent
report.set_fail_threshold(0.06)

View File

@@ -39,6 +39,10 @@ BLOCKLIST_METAL = [
"underwater_caustics.blend",
"shadow_link_transparency.blend",
"principled_bsdf_transmission.blend",
"light_path_is_shadow_ray.blend",
"light_path_is_transmission_ray.blend",
"light_path_ray_depth.blend",
"light_path_ray_length.blend",
# Volume
"light_link_surface_in_volume.blend",
"openvdb.*.blend",