C4D - Matrix on alembic particles not updating
DarkGreyMatter last edited by Dr. Sassi
Hello! First time posting.
I'm trying to create bubbles in a RealFlow cache using this approach from Jakob Appleby.
I can get the matrix to clone to the Tparticles and thin them out with random visibility. But then I had issues with the matrix not updating for each frame in viewport or render view.
I fixed the updating in viewport by switching the matrix generate to Thinking Particles. But it still doesn't update when rendering the sequence. It does update frame-by-frame in the Redshift RenderView though. I'd like to render with RS Matrix scatter rather than a cloner attached to the matrix.
I've tried object order, priority tags, nothing seems to work. I even tried caching the matrix or baking to alembic, but that doesn't seem to work either.
Any help in getting my matrix bubbles to render to frames would be greatly appreciated.
You might see what happens in the picture, and based on that, you know what connections you have made. I don't know those things from a picture.
I can only see that the Matrix is above the file (Priorities!), and the Matrix is not baked (MoGraph Cache Tag) as the tutorial suggests.
If something is not refreshing, sometimes it helps to change things a little bit (not that it needs to be visibly noticeable) to have that refresh. Putting the Thinking particles from one to the next group might help or change their position by a super small increment.
Would you mind putting the file as a DropBox file here? Please note that I do not have Realflow currently installed or licensed.
All the best
@Dr-Sassi Thank you for your thoughts.
It's probably not practical to upload the scene file as my particle cache is 11GB? Let me try trimming the frame range which would make it a much smaller file.
I did create a new scene with a much smaller particle cache file from RealFlow and everything works fine, just as expected. Same structure and setup as my larger scene. So my process must be correct? I'm wondering if it's a processing time-out thing? My main scene has 1.5M particles so maybe RS doesn't wait long enough for the frame of particles to load and populate the matrix? Perhaps I should try Standard Renderer just to see if it is a rendering breakdown.
You mentioned the MoGraph Cache tag. In my smaller scene, I was able to cache the matrix and delete the particle cache and everything stuck and worked fine. In my larger scene, if I try to cache the matrix, it turns green when done, but then when I click to any frame, the tag turns red and the matrix nodes lose all data. I even tried baking the cache to files to save on the memory?
I would appreciate any other thought you may have at this time. Otherwise, I'll let you know when I have a sample of the scene file uploaded for you to check out.
Thanks for not using the 11GB file, DarkGreyMatter.
Perhaps that is the main problem, that it is huge. Yes, three frames with 100 particles might be OK
What is the Thinking Particle Settings tell you? How many particles can the system see?
All the best
@Dr-Sassi - It's good to know I'm not losing my touch.
I just did a test of 20 frames of my large simulation and it worked fine. I could even bake a mograph cache on the matrix and it worked. When I baked it into the file, the scene was 64GB!
My TP settings say there's 800,000+ and it can see up to 1M. It has to be a memory issue. So, here's my next question.
Is there a way to ONLY cache the visible matrix objects? Since I'm only wanting 1000 "bubbles" (to throw a number out there) based on my 800K particles, why do I have to save data for non-visible elements?
Is there a way to apply a matrix/cloner to only the visible matrix? Then cache the new system?
When you check the RFlow particles, what data do they have in your file, Data channel, ID, etc.?
Perhaps you can sort them into two groups and use the one that fits your "filter".
If I remember correctly, I have used RealFlow on and off, the last time in 2015. There was nearly no request on the forum, so I didn't bother the nice people at Next Limit to extend my license. That being said, I think I remember that they had some XPresso nodes for the RealFlow 4D.
Use the MoGraph Falloff and a field to define the area of interest, then pipe the particles' position into the Falloff node, and with the compare node; you can get the Field value as a filter. From there, the Compare node will give you a Boole value that allows you to switch a PGroup Node on or off. In other words, whether or not a particle goes into the next group. That group would be your target.
If there are entries in the Data channels (the most powerful and ignored feature of TP, BTW.), you might get an even better filter.
Thanks again for brainstorming with me Dr. Sassi,
I think the only TP channel data that comes over from RFlow is age, velocity, and vorticity if clicked on. I also didn't find any documentation on RF specific xPresso nodes. Maybe I didn't look deep enough. In general, seems RF doesn't send much data through unless I don't fully understand the process.
Can't say I fully followed your thought processes here, but it got me thinking. I could make a duplicate of the emitter and fluid with 1/10th or 1/100th the fluid resolution. It would interact and flow with the higher res fluid. Different TP groups can be assigned to each unique fluid object. Then I could just use the TP group that is a fraction of the density for the bubble geometry. This might be a partially what you were suggesting?
Anyway, thanks again for helping me talk through this. I appreciate it. I'm going to try the process I just mentioned above. I'll have to re-sim my scene, but probably a faster solution than fighting with memory or fumbling my way through xPresso.
Thanks for sharing your findings, DarkGreyMatter!
Yes, find ways to manage the data; particles are nothing else: Just an animated excel sheet Sorry, I couldn't resist.
My core idea of many parts in 3DCG is to explore the flow of information, and like with good color correction; we like to keep things differentiated, similar to pulling a mask from an image.
Here we have position data, for example. We can determine if something is inside or outside with a position, e.g., a Spherical Field.
That was my idea. But whatever can be done sorting this out as early as possible is better.
I don't know if RFlow keeps particles or produces new ones for each frame. If per frame, then particles need more care, as they can add up when we meddle with information. Inside of the XPresso editor should be some nodes from "NextLimit!".
Perhaps build the mesh, export it as Alembic, and go from there.
Have a great weekend
Update: I was successful with copying the RF emitter and fluid and dropping the resolution WAY down. Then, I linked the low and high fluids and mesher together. Didn't effect the original look of my sim much and I was able to assign a unique TP group to the smaller particle group. Rendered as expected.
Thank you for the update and for sharing your steps, DarkGreyMatter.
This information is great to have here. Very much appreciated.
My best wishes for your project.