Problem: I've created and cached a dynamic X-Particles granular fluid sim. When I attempt to render using Arnold, 3 of my 4 emitters render perfectly. The one emitter that will not render has all of the same properties, cache, and tags as the others.
Image: The white particles, emitter "Sand_CK", appear perfectly within the viewport, but do not render.
Background: Previously, I ran into this same problem and attributed it to my setup which switched particles from one group to another mid-simulation - when they switched to the new group, Arnold was unable to render that new group. I accepted this as a limitation and rebuilt my entire simulation (where particles maintain their emitter group), only to find a similar issue. Frustratingly, this was about a week worth of work.
Details: I'm running Windows 10, X-Particles 4.0 Build 824 (Beta), Cinema 4D R21, and C4DtoA 3.04. For reference, the cache took about 28 hours, contains around 4 million particles, and is about 127GB on disk.
Some troubleshooting I've attempted:
From what I can tell, the issue is that Arnold fails to acknowledge the particle emitter entirely - no combination of materials, tags, or settings changes the result because Arnold treats the emitter like it's a null.
Clue: The closest I've gotten to figuring this out is when messing with the X-Particles Groups. In theory, in a cached particle system, the groups should have zero effect on the emitters ability to render - in reality they're required and they act strangely. In my scene, all particles are emitted on frame 001 and were assigned to a group of the same name. Their group numbers are 1, 2, 3 and 5. Some things I've noticed on groups:
Any assistance would be very much appreciated. At this stage, I'm worried I might need to switch to a different renderer to finish the project.
What about a non-beta version of XParticles? Does that still have the problem?
Yep! I went back and tried the latest stable build of XP, same behavior.
In my troubleshooting, no combination of C4D/plugin versions seemed to have any effect on my issue.
Can you make a test scene with just the one problem emitter? And a much smaller number of particles?
@Stephen Blair Thank you for your help!
For troubleshooting, I've created a minimal version of the scene which includes a single frame of the X-Particles Cache. I believe I packaged it up in a way that will work, with the XP Cache linking to the /sim folder. The particles will show up on frame 001, and I've got the larger emitters hidden from viewport for efficiency.
https://drive.google.com/file/d/1SCaM8F6I363kDHoyGe512MWxE26ugsl1/view?usp=sharing
If my issue persists on other machines/setups, a render of frame 001 will look like this (issue being that white "Sand_CK" particles do not render):
Thanks for the scene, I can take a look on Monday. I remember an issue with takes, where group numbers have changed after cloning the scene for the render. Maybe this is something similar, not sure.
It's some kind of a mess with the group numbers as I expected. Trying to fix this.
I've got a potential fix. If you have a valid maintenance, you can contact support(at)arnoldrenderer(dot)com and I can send you a build to test.
Thank you so much for jumping on this! Sending an email now, would love to test it out.
Peter/Stephen,
The test build of Arnold that you sent (C4DtoA-3.0.4.1.wip01_20200615172248_743a5e06-win) perfectly resolved my issue. I tested this both in my test scene and in the full scene file and all particles/emitters are rendering properly.
Side question: I'm far from an expert on X-Particles, so I don't 100% understand the functionality of groups, especially under the hood. If I didn't know any better, I would assume that once a scene has been cached, you could delete the groups and simply render using the cache+emitter. As a general rule, what about the groups makes them a requirement to render the cached emitter? Is there any reason that changing groups, for example, should prevent a render or affect how to textures or random seeds get applied?
Thank you for your help! Excited that I can finish this project out with Arnold.
Glad to hear the fix is working fine. The cache does not contain any Arnold specific data. For instance if you use multiple groups, you can assign different shaders to each group and different shape parameters via Arnold tags (e.g. instancing, visibility etc.). That's why the plugin needs the xpGroup object in the scene when rendering, even if the sim is cached.