Add support for fluid simulation caches
Add `eModifierType_Fluid` support, with non-pointcache caches. The entire cache directory is considered a dependency to list/pack.
This commit is contained in:
parent
1541c52520
commit
1e8c924990
@ -3,6 +3,10 @@
|
||||
This file logs the changes that are actually interesting to users (new features,
|
||||
changed functionality, fixed bugs).
|
||||
|
||||
# Version 1.15 (in development)
|
||||
|
||||
- Add support for fluid simulation caches.
|
||||
|
||||
# Version 1.14 (2022-09-12)
|
||||
|
||||
- While tracing dependencies, call the progress callback function before opening a blend file, instead of before iterating over its contents. The opening (and loading of SDNA) takes a significant amount of time, so this will make any UI (like the Flamenco add-on) report the right filename when waiting for big files.
|
||||
|
||||
@ -48,6 +48,7 @@ eModifierType_WeightVGProximity = 38
|
||||
eModifierType_Ocean = 39
|
||||
eModifierType_MeshCache = 46
|
||||
eModifierType_MeshSequenceCache = 52
|
||||
eModifierType_Fluid = 56
|
||||
eModifierType_Nodes = 57
|
||||
|
||||
# DNA_particle_types.h
|
||||
|
||||
@ -278,6 +278,34 @@ def modifier_smoke_sim(
|
||||
)
|
||||
|
||||
|
||||
@mod_handler(cdefs.eModifierType_Fluid)
|
||||
def modifier_fluid(
|
||||
ctx: ModifierContext, modifier: blendfile.BlendFileBlock, block_name: bytes
|
||||
) -> typing.Iterator[result.BlockUsage]:
|
||||
my_log = log.getChild("modifier_fluid")
|
||||
|
||||
domain = modifier.get_pointer(b"domain")
|
||||
if domain is None:
|
||||
my_log.debug(
|
||||
"Modifier %r (%r) has no domain", modifier[b"modifier", b"name"], block_name
|
||||
)
|
||||
return
|
||||
|
||||
# See fluid_bake_startjob() in physics_fluid.c
|
||||
path = domain[b"cache_directory"]
|
||||
path, field = domain.get(b"cache_directory", return_field=True)
|
||||
|
||||
log.info(" fluid cache at %s", path)
|
||||
bpath = bpathlib.BlendPath(path)
|
||||
yield result.BlockUsage(
|
||||
domain,
|
||||
bpath,
|
||||
path_full_field=field,
|
||||
is_sequence=True,
|
||||
block_name=block_name,
|
||||
)
|
||||
|
||||
|
||||
@mod_handler(cdefs.eModifierType_Cloth)
|
||||
def modifier_cloth(
|
||||
ctx: ModifierContext, modifier: blendfile.BlendFileBlock, block_name: bytes
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user