blender/tests/python
Jesse Yurkovich 9daded5d87 USD: Use nodes for alpha-clip behavior instead of material properties
EEVEE-next has removed the MA_BM_CLIP / alpha_threshold material
properties in favor of using nodes for equivalent functionality. This
changes USD to build and traverse node graphs during import and export
accordingly. Indirectly this allows Cycles to correctly render such
materials now too.

A complicating factor is that the UsdPreviewSurface defines its opacity
threshold using greater-than-equals[1], which Blender does not support
(and for which was technically already incorrect as EEVEE-legacy only
used greater-than for its shaders). Due to this we actually need to use
2 nodes: A less-than, followed by a one-minus invert, to arrive at the
proper value. We'll translate UsdPreviewSurface to this form on Import.

For Export we will look for either this 2-node pattern or a Round
node plugged into Alpha. Looking for Round is a result of the glTF
documentation which recommended the use of this node for thresholds of
0.5[2]. It's a tiny addition that seems reasonable to accommodate.

[1] https://openusd.org/release/spec_usdpreviewsurface.html (search for "opacityThreshold")
[2] https://docs.blender.org/manual/en/4.2/addons/import_export/scene_gltf2.html#alpha-modes

See PR for example images

Pull Request: https://projects.blender.org/blender/blender/pulls/122025
2024-05-25 23:30:13 +02:00
..
collada Cleanup: remove redundant string formatting 2024-04-12 10:04:07 +10:00
modules Cleanup: remove unused variables 2024-03-21 10:11:54 +11:00
ui_simulate UI: fix and improve a few messages 2024-02-05 17:08:17 +01:00
view_layer Merge branch 'blender-v4.1-release' 2024-02-22 16:52:32 +01:00
alembic_export_tests.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
batch_import.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
bevel_operator.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
bl_alembic_io_test.py Merge branch 'blender-v4.1-release' into main 2024-02-22 14:36:13 +01:00
bl_animation_armature.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_animation_drivers.py Merge branch 'blender-v4.1-release' into main 2024-02-22 14:36:13 +01:00
bl_animation_fcurves.py Anim: add keytype argument to keyframe_insert() RNA function 2024-04-15 11:36:38 +02:00
bl_animation_id.py Anim: merge Animation data-block into bAction 2024-05-13 15:58:04 +02:00
bl_animation_keyframing.py Anim: Add unit tests for keying custom properties 2024-04-23 09:36:38 +02:00
bl_animation_nla_strip.py Anim: Add regression tests for NLA strip evaluation 2023-11-20 17:52:28 +01:00
bl_blendfile_io.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_blendfile_liblink.py Merge branch 'blender-v4.1-release' 2024-03-06 11:16:00 +01:00
bl_blendfile_library_overrides.py LibOverride: Cleanup unused&missing data after resync. 2024-02-27 16:43:31 +01:00
bl_blendfile_utils.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
bl_blendfile_versioning.py Cleanup: Formatting 2024-05-10 17:58:56 +02:00
bl_bundled_modules.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
bl_constraints.py Merge branch 'blender-v4.1-release' into main 2024-02-22 14:36:13 +01:00
bl_id_management.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_imbuf_load.py Render Tests: Separate difference of Color and Alpha 2024-01-25 10:04:16 +01:00
bl_imbuf_save.py Render Tests: Separate difference of Color and Alpha 2024-01-25 10:04:16 +01:00
bl_io_curve_svg_test.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_keymap_completeness.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
bl_keymap_validate.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_load_addons.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_load_py_modules.py Cleanup: restore error, exclude extensions tests from bl_load_py_modules 2024-05-16 16:02:25 +10:00
bl_mesh_modifiers.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
bl_mesh_validate.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
bl_node_field_type_inference.py Cleanup: unused imports 2024-04-19 16:09:30 +10:00
bl_node_group_compat.py Fix #116477: Node group sockets with subtypes have broken idnames 2024-01-16 15:32:33 +01:00
bl_node_group_interface.py Fix #118769: Remove parent parameter from new_panel function 2024-02-27 13:30:13 +01:00
bl_pyapi_bpy_driver_secure_eval.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_pyapi_bpy_path.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_pyapi_bpy_utils_units.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_pyapi_idprop_datablock.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_pyapi_idprop.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_pyapi_mathutils.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_pyapi_prop_array.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_pyapi_text.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_rigging_symmetrize.py Merge branch 'blender-v4.1-release' into main 2024-02-22 14:36:13 +01:00
bl_rna_defaults.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_rna_manual_reference.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_rst_completeness.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
bl_test.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
bl_usd_export_test.py USD: Use nodes for alpha-clip behavior instead of material properties 2024-05-25 23:30:13 +02:00
bl_usd_import_test.py USD: Read and write custom attributes for Curves 2024-05-25 22:23:40 +02:00
boolean_operator.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
CMakeLists.txt Unittests: 'versioning' py test: generate multiple instances to parallelize it. 2024-05-10 16:00:30 +02:00
compositor_cpu_render_tests.py Compositor: Explicitly set device in test scripts 2024-05-14 19:03:55 +03:00
compositor_realtime_render_tests.py Compositor: Explicitly set device in test scripts 2024-05-14 19:03:55 +03:00
curve_to_mesh.py Fix: Update tests data path to new directory 2024-02-22 14:25:54 +01:00
curves_extrude.py Fix: Curves extrude with all points selected 2024-01-16 21:59:15 +01:00
cycles_render_tests.py Merge branch 'blender-v4.1-release' 2024-03-07 20:16:51 +01:00
deform_modifiers.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
eevee_next_render_tests.py EEVEE-Next: Shadow: Add Maximum Resolution Option 2024-05-13 14:34:11 +02:00
eevee_render_tests.py Cleanup: remove unused variables 2024-03-21 10:11:54 +11:00
ffmpeg_tests.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
geo_node_sim_test.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
geo_node_test.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
gpu_info.py Fix: GPU test errors importing gpu module 2024-03-26 20:16:02 +01:00
modifiers.py Tests: Add modifier tests for shrinkwrap target normal project 2024-03-29 10:11:22 -04:00
opengl_draw_tests.py Render Tests: Separate difference of Color and Alpha 2024-01-25 10:04:16 +01:00
operators.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
pep8.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
physics_cloth.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
physics_dynamic_paint.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
physics_ocean.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
physics_particle_instance.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
physics_particle_system.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
physics_softbody.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
rna_array.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
rna_info_dump.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
rst_to_doctree_mini.py License Headers: Set copyright to "Blender Authors", add AUTHORS 2023-08-16 00:20:26 +10:00
sequencer_render_tests.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
storm_render_tests.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00
workbench_render_tests.py Revert changes from main commits that were merged into blender-v4.1-release 2024-02-19 15:59:59 +01:00