Transforming vdb channel set

I am loading a vdb sequence for a stock smoke stack, but need to time offset and transform it into my shot space. The vdb has density and velocity channels and I am wondering if I actually have to extract each channel and transform it separately or is there a simple way to transform the lot in one go? It would make sense to have a transform tab in the vdb reader, right?!

Or maybe I’m missing something?!

Cheers,
frank

Hi Frank,

yes, that makes sense and would simplify things.
For now you’ll have to transform them individually.
I’ll add a ticket for this feature request.

Cheers,
Christoph

Ok, thanks for confirming.

Timeoffsets are not working either the way I understood from documentation. I tried few things and it was glitching with timeoffsets.
I did simple tcl in filename to offset timing but that required me to have multiple cache_loaders for each offseted vdb:

[format %04d [expr [frame] - [value parent.timeOff] ]].vdb

Might be worth putting it as built-in functionality as well.

thank you,
Tim

Hi Tim,

yes, as we mentioned in the docs, there are certain nodes that we currently can’t support. It will need a bit more effort on our side to duplicate this functionality on our end and its unfortunately quite complicated.

Your expression approach is legit, I can add a value there to do this automatically for people who aren’t expression savvy.

Cheers,
Christoph

this is a bit offtopic but might be related to what Frank doing.
Are you guys planning on doing something to simplify instancing?
What I mean is, situation when you have landscape or battle field with lots of smokes in it is quite common.
My approach to solve this problem would be to have superlong sequence of smoke that I will then move around and timeoffset/deform to add variation.
I’m not sure what design implications there but having ability to scatter vdbs on pointcloud or multiple axises would be super useful for these cases.

Tim

yes, something like this is in the works.
I’ll make sure to add you to the beta when this gets closer.

Cheers,
Christoph

1 Like

@Chimuru the TimeOffset node seems to work fine for me

Hi Frank,

No, unfortunately it doesn’t.
Eg.: if you were to insert it in between two eddy nodes, its not something we can detect currently and it will not work as expected. Eddy has its own graph engine so it needs to duplicate it correctly so it can also run outside of nuke and standalone and during substep evaluation. The way nuke handles time offset nodes are a bit special and it becomes more complicated to detect them. We have a plan for it and we just haven’t had the chance to replicate this behaviour correctly.
TimeOffset nodes are special nuke nodes that bypass some core components and are handled by nuke differently than other nodes.

Hope that explanation makes sense.

Cheers,
Christoph

Interesting. Let’s just say I am using a TimeOffset node right under my cache loader and it’s behaving so far.