diff options
author | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2022-04-19 17:28:14 +0300 |
---|---|---|
committer | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2022-04-19 18:07:53 +0300 |
commit | 2890c11cd7b008c3c261b6aa833c826c85cac504 (patch) | |
tree | 5bc3432767fc6dd260e6fec18bd1817766572abd /source/blender/blenkernel/BKE_volume.h | |
parent | 56cfd60d432bf387c21bf5bde08fece044fac99c (diff) |
Cycles: add support for volume motion blur
This adds support for rendering motion blur for volumes, using their
velocity field. This works for fluid simulations and imported VDB
volumes. For the latter, the name of the velocity field can be set per
volume object, with automatic detection of velocity fields that are
split into 3 scalar grids.
A new parameter is also added to scale velocity for more artistic control.
Like for Alembic and USD caches, a parameter to set the unit of time in
which the velocity vectors are expressed is also added. For Blender gas
simulations, the velocity unit should always be in seconds, so this is
only exposed for volume objects which may come from external OpenVDB
files.
These parameters are available under the `Render` panels for the fluid
domain and the volume object data properties respectively.
Credits: kernel advection code from Tangent Animation's Blackbird based
on earlier work by Geraldine Chua
Differential Revision: https://developer.blender.org/D14629
Diffstat (limited to 'source/blender/blenkernel/BKE_volume.h')
-rw-r--r-- | source/blender/blenkernel/BKE_volume.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_volume.h b/source/blender/blenkernel/BKE_volume.h index 77f01e7919d..8791469360a 100644 --- a/source/blender/blenkernel/BKE_volume.h +++ b/source/blender/blenkernel/BKE_volume.h @@ -77,6 +77,11 @@ const VolumeGrid *BKE_volume_grid_active_get_for_read(const struct Volume *volum /* Tries to find a grid with the given name. Make sure that the volume has been loaded. */ const VolumeGrid *BKE_volume_grid_find_for_read(const struct Volume *volume, const char *name); +/* Tries to set the name of the velocity field. If no such grid exists with the given base name, + * this will try common postfixes in order to detect velocity fields split into multiple grids. + * Return false if neither finding with the base name nor with the postfixes succeeded. */ +bool BKE_volume_set_velocity_grid_by_name(struct Volume *volume, const char *base_name); + /* Grid * * By default only grid metadata is loaded, for access to the tree and voxels |