I'm tasked with creating an animation for some expanding foam insulation, and I'm trying to figure out how this might be done with my current approach. At the moment, I have two geometry node setups: one for a ring of fresh, non-expanded foam, and another for a ring of expanded foam (I can share these nodes if and when it becomes necessary, but I think it's unimportant right now). Both are intended to be resizable on-the-fly.
Neither setup has had the modifier applied to turn them into realized objects (i.e. objects with real data for vertices and such; alternatively, in the Spreadsheet window, there is no mesh data), nor have they had the Realize Instance node applied--they currently just exist as instanced geometry--for the reason that the scene in which they're being used already has tens of millions of polys (cannot fix this for now), and so I don't want to take more of a performance hit than necessary when using these--if I can get it to render successfully, it works for my purposes.
That said, what I'm looking to do is blend between the two objects so that I can create an at least somewhat realistic animation of the foam expanding. Having done a bit of reading, it looks like that should be possible using shape keys, but because there are no real objects or vertex groups to reference, I'm not sure how to accomplish this effect. One thread that I've found (link below), if I've read it correctly, suggests that it would be possible to mimic the effect of shape keys through geometry nodes, but I'm unclear as to whether or not there would still need to be realized objects for the effect to work.
Is it possible to use shape keys--or something similar--in this instance? If not, is there currently (v3.4.1) any way of achieving the effect of blending between the two objects?
I'm not confident that my terminology is correct or used to best effect here (please be kind), and I realize that I might be going about this in the "wrong" way, so if there is any confusion or need for clarification, I am more than happy to try to rephrase or provide another explanation. I will also be editing the post to reflect any necessary changes to the language/phrasing as they arise.
EDIT 1: I've attempted to implement one of the solutions as mentioned below, but without much success. Here is the current node setup for the object that I'm attempting to morph:
To maybe be more clear, is there a way to get the torus on the right to morph into the object on the left?
EDIT 2: After more closely matching the edit in the solution below, the transition is closer, but not quite there yet:
Is there anything that I might be missing? I can think of only a couple of details that might otherwise be affected:
- The interior radius of the torus seems to be disappearing in the transition.
- The target shape does have additional geometry instanced onto it, like an instance with instances, so maybe that prevents it from morphing correctly. I did try muting the nodes that were responsible for this, though, and it didn't seem to affect much.
EDIT 3: Here is the .blend file in question:
TL;DR: I need to create a realistic animation of some expanding foam. How might I be able to blend between the non-expanded foam and the expanded foam when neither technically has real geometry (add: is there a "best/sufficient/different/only" way to do accomplish this that is not mentioned herein)?
Link(s) Mentioned: How to create Shape Keys in Geometry Nodes, including support for curve handles?