Caching a sim with particle mapping overrides and UVs frozen at a non-zero frame
#1
Hey all,
I suspect there's a simple and obvious solution to this but I've been racking my brain and not found one yet.
A flow with particles driven by a surface force is cached out for network rendering. A Mapping node set to Mapping from Objects; Affect particle mapping overrides with timing On Event Entry (frame 0) defines the particle UVs. The sim is cached from frame 0-1000 but rendered from frame 200-1000, so whatever texture is in the diffuse slot of the material applied is sufficiently scrambled by the first rendered frame. All great.
For another sequence I'd like to use the same setup but freeze the UVs at frame 600, so whatever texture is in the diffuse slot resolves at frame 600 and then dissipates again afterwards. I can achieve this by changing the Mapping timing to Frame: 600 to 600, applying a tyUVWFreeze to the flow and freezing the UVs at frame 600. Scrubbing backwards from frame 600 gives the desired result with the UVs correctly locked to the particles for the entire sim. I'd like to cache this out for network rendering however and can't figure out how to retain the frozen UVs in the cache since the tyUVWFreeze modifier is applied outside of the flow where the Export Particles node is.
I've attached an .mp4 with examples from a simpler scene I'm using to test and condensed to a 200 frame range.

A is the original flow, with Mapping node timing set to On Event Entry (frame 0).
B is the original flow, with Mapping node timing set to Frame: 100 to 100 and a tyUVWFreeze applied at frame 100.
C is a cache of the flow with the Mapping settings of B, and a tyUVWFreeze modifier applied to the cache.

Grateful for any help!


Attached Files
.mp4   Caching_frozen_UVs_with_non_zero_reference_frame.mp4 (Size: 8.52 MB / Downloads: 122)
  Reply
#2
Are you birthing particles over time or otherwise doing anything that would change the topology of the tyCache? The reason the tyUVWFreeze is failing for the first 100 frames of your tyCache seems to me (at first glance) due to topology on the cache changing before frame 100, thus invalidating the UVW freeze data...

If not, then maybe I'm not understanding the problem...
  Reply
#3
Thanks for the quick reply Tyson, there's no topology change I'm aware of; all particles are birthed at frame 0, shapes are static Geospheres and the count remains the same throughout. I've attached a screengrab of the flow, kudos to AestheticVFX and FXManiac for their original tutorials to set up this effect.
By chance I've stumbled across a solution; previously after generating the cache files I was adding a new tyUVWFreeze modifier to the tyCache which gave the result you see in variation C of the vid. If I copy the tyUVWFreeze modifier from the original tyFlow (variation B) and paste it onto the tyCache it works perfectly though.
If that's not expected behaviour let me know if you'd like a scene file to look at.


Attached Files Thumbnail(s)
   
  Reply
#4
Yea shoot me the scene and I’ll check to see what’s up…
  Reply
#5
Thank you, here's a stripped out file with the test diffuse texture. I've left an unpathed Export Particles operator in the flow but deleted the tyUVWFreeze modifer from the stack.


Attached Files
.zip   frozen_UVs_debug.zip (Size: 1.4 MB / Downloads: 68)
  Reply
#6
When I load your scene and export the tyCache, the "auto freeze" option doesn't work on it, but manually freezing the UVWs works....does that sound right?

It's worth noting you need to disable "ignore UVW overrides" on the tyCache in the Display setting as well, to load the mapping overrides in the view.

Edit: "auto freeze" not working on tyCaches is indeed a bug that will be fixed in the next build.
  Reply
#7
Great, yeah that's what I see too, "auto freeze" doesn't work but manually freezing does, thanks for the heads up on disabling "ignore UVW overrides" as well. The copy/paste workaround I mentioned before may have been due to me running an older version, I've just grabbed v1.027 and adding a new tyUVWFreeze modifier to the tyCache then manually freezing at frame 100 gives the expected result.  Smile
  Reply


Forum Jump: