Blender Git Loki
Git Commits -> Revision 128eb6c
Revision 128eb6c by Brecht Van Lommel (master) September 10, 2021, 14:48 (GMT) |
Modifiers: export motion blur velocity through attribute Previously fluid simulation and Alembic modifiers had a dedicated function to query the velocity for motion blur. Now use a more generic system where those modifiers output a velocity attribute. Advantages: * Geometry and particle nodes can output velocity through the same mechanism, or read the attribute coming from earlier modifiers. * The velocity can be preserved through modifiers like subdivision surface or auto smooth. * USD and Alembic previously only output velocity from fluid simulation, now they work with velocity from other sources too. * Simplifies the code for renderers like Cycles and exporters like Alembic and USD. This breaks compatibility: * External renderers and exporters accessing these velocities through the Python API now need to use the attribute instead. * Existing modifier node setups that create an attribute named "velocity" will render differently with motion blur. Differential Revision: https://developer.blender.org/D12305 |
Commit Details:
Full Hash: 128eb6cbe928e58dfee1c64f340fd8d663134c26
Parent Commit: 42215d7
Lines Changed: +300, -570
30 Modified Paths:
/intern/cycles/blender/blender_geometry.cpp (+3, -1) (Diff)
/intern/cycles/blender/blender_mesh.cpp (+66, -115) (Diff)
/intern/cycles/blender/blender_object.cpp (+11, -1) (Diff)
/intern/cycles/blender/blender_sync.h (+1, -0) (Diff)
/intern/cycles/blender/blender_util.h (+1, -27) (Diff)
/source/blender/blenkernel/BKE_attribute.h (+5, -0) (Diff)
/source/blender/blenkernel/intern/attribute.c (+24, -1) (Diff)
/source/blender/blenkernel/intern/fluid.c (+28, -37) (Diff)
/source/blender/blenkernel/intern/modifier.c (+0, -1) (Diff)
/source/blender/blenloader/intern/versioning_290.c (+0, -2) (Diff)
/source/blender/io/alembic/ABC_alembic.h (+3, -11) (Diff)
/source/blender/io/alembic/exporter/abc_writer_mesh.cc (+17, -39) (Diff)
/source/blender/io/alembic/exporter/abc_writer_mesh.h (+1, -4) (Diff)
/source/blender/io/alembic/intern/abc_customdata.h (+6, -0) (Diff)
/source/blender/io/alembic/intern/abc_reader_curves.cc (+2, -0) (Diff)
/source/blender/io/alembic/intern/abc_reader_curves.h (+3, -1) (Diff)
/source/blender/io/alembic/intern/abc_reader_mesh.cc (+76, -4) (Diff)
/source/blender/io/alembic/intern/abc_reader_mesh.h (+6, -2) (Diff)
/source/blender/io/alembic/intern/abc_reader_object.cc (+2, -0) (Diff)
/source/blender/io/alembic/intern/abc_reader_object.h (+9, -1) (Diff)
/source/blender/io/alembic/intern/alembic_capi.cc (+5, -135) (Diff)
/source/blender/io/usd/intern/usd_writer_mesh.cc (+12, -28) (Diff)
/source/blender/io/usd/intern/usd_writer_mesh.h (+1, -1) (Diff)
/source/blender/makesdna/DNA_fluid_defaults.h (+0, -2) (Diff)
/source/blender/makesdna/DNA_fluid_types.h (+1, -8) (Diff)
/source/blender/makesdna/DNA_modifier_defaults.h (+0, -4) (Diff)
/source/blender/makesdna/DNA_modifier_types.h (+0, -23) (Diff)
/source/blender/makesrna/intern/rna_fluid.c (+0, -24) (Diff)
/source/blender/makesrna/intern/rna_modifier.c (+0, -81) (Diff)
/source/blender/modifiers/intern/MOD_meshsequencecache.c (+17, -17) (Diff)
/intern/cycles/blender/blender_mesh.cpp (+66, -115) (Diff)
/intern/cycles/blender/blender_object.cpp (+11, -1) (Diff)
/intern/cycles/blender/blender_sync.h (+1, -0) (Diff)
/intern/cycles/blender/blender_util.h (+1, -27) (Diff)
/source/blender/blenkernel/BKE_attribute.h (+5, -0) (Diff)
/source/blender/blenkernel/intern/attribute.c (+24, -1) (Diff)
/source/blender/blenkernel/intern/fluid.c (+28, -37) (Diff)
/source/blender/blenkernel/intern/modifier.c (+0, -1) (Diff)
/source/blender/blenloader/intern/versioning_290.c (+0, -2) (Diff)
/source/blender/io/alembic/ABC_alembic.h (+3, -11) (Diff)
/source/blender/io/alembic/exporter/abc_writer_mesh.cc (+17, -39) (Diff)
/source/blender/io/alembic/exporter/abc_writer_mesh.h (+1, -4) (Diff)
/source/blender/io/alembic/intern/abc_customdata.h (+6, -0) (Diff)
/source/blender/io/alembic/intern/abc_reader_curves.cc (+2, -0) (Diff)
/source/blender/io/alembic/intern/abc_reader_curves.h (+3, -1) (Diff)
/source/blender/io/alembic/intern/abc_reader_mesh.cc (+76, -4) (Diff)
/source/blender/io/alembic/intern/abc_reader_mesh.h (+6, -2) (Diff)
/source/blender/io/alembic/intern/abc_reader_object.cc (+2, -0) (Diff)
/source/blender/io/alembic/intern/abc_reader_object.h (+9, -1) (Diff)
/source/blender/io/alembic/intern/alembic_capi.cc (+5, -135) (Diff)
/source/blender/io/usd/intern/usd_writer_mesh.cc (+12, -28) (Diff)
/source/blender/io/usd/intern/usd_writer_mesh.h (+1, -1) (Diff)
/source/blender/makesdna/DNA_fluid_defaults.h (+0, -2) (Diff)
/source/blender/makesdna/DNA_fluid_types.h (+1, -8) (Diff)
/source/blender/makesdna/DNA_modifier_defaults.h (+0, -4) (Diff)
/source/blender/makesdna/DNA_modifier_types.h (+0, -23) (Diff)
/source/blender/makesrna/intern/rna_fluid.c (+0, -24) (Diff)
/source/blender/makesrna/intern/rna_modifier.c (+0, -81) (Diff)
/source/blender/modifiers/intern/MOD_meshsequencecache.c (+17, -17) (Diff)