I’m sure this is in the pipe and people are already asking for it but I’ll add my request here.
Thanks,
Mike.
I’m sure this is in the pipe and people are already asking for it but I’ll add my request here.
Thanks,
Mike.
I can implement saving out .PRT files pretty easily. However, I’m not quite sure what “Partitioning” means in Maya.
In our 3dsmax version, we have partitioning code that works locally or using our Deadline software, which is hard-coded to work with max’s PFlow and Thinking Particles. It launches a the same scene to deadline, changes the PFlow “random seed” parameter, and saves out the resulting particles as a PRT file.
So, how would the workflow work in Maya? Would it be acceptable to have PRT saving functions, or would it have to automate setting simulation seeds and saved locally or launched to Deadline?
Best route to go would be automated simulation seeds. Generated with the following in mind:
The partitioned particle travels relative to the Maya particle. Factors that should influence the new particle:
-a user specified range in world space to limit the travel away from (and around) the Maya particle. Variable with particle age or any other ramp attributes:)
-world space mass, position and velocity of the initial Maya particle. Allow for per-particle user-assignable variance for all 3 of those.
-cumulative forces at the partitioned particle’s relative position: to shift the partition particle with respect to the scene’s dynamics. Otherwise you just get a fuzzy cloud that doesn’t properly move with forces. This might drive the partition particle away from the Maya particle but that’s what we want. OBEY the force.
-The goal weights(and respective goal objects) of the seed: so the new partitioned particle will properly move and stick with respect to goal objects, else the partition cloud would look inaccurate when the Maya particle stuck to goal objects.
I guess it sounds a lot like flocking behavior but more weighted toward forces in the scene than the parent Maya particle. You could even provide an attribute to assign the weighting percentage to forces and/or particles.
In essence, a partition particle begins near the initial Maya particle but deviates based on changes to the Maya particle’s travel, goal weights and objects, and the forces in the scene.
To begin with, a simple particle cloud around the Maya particle will suffice.
I think there is a misunderstanding here, or at least a difference in terminology.
What you described is what we call “particle multiplication” and is different from “partitioning” in Krakatoa lingo.
Krakatoa SR (the stand-alone renderer) already provides a method for creating new particles based on existing ones which we can roll into Maya, and some of our Ember research points at other avenues very similar to what you described.
What we call “Partitioning” is what people in the VFX industry call “wedges”. Basically you take one simulation as is and save it to disk. Then you modify the random seed of the same system so the initial placement and speed variations are different and resave to a new sequence, producing a nearly identical result which, if mixed with the first version, produces a denser cloud where the particles do not overlap but instead the particles of the second sequence fill in the gaps of the first. You repeat this 10 or 100 times and you get a result equivalent to saving all the particles at once, but without actually using up that much RAM, and with the ability to run these on multiple machines in parallel. So if your particle system produces 100K particles, running 100 partitions gives you 10 million particles. Also you can easily define in the PRT Loader how many of these 100 to load or render, so you can add/remove particles as needed to get the look you want.
In Krakatoa MX, this wedging technique is implemented completely via scripting, and our plan is to do the same in Maya.
Hope this helps.
What’s the distinction between particle multiplication and partitioning? Is it that partitioning uses the seed value on a particle sim whereas particle multiplication uses a function to dynamically generate particles? Also, it appears that particle multiplication is actually producing new particles in the scene. I don’t want to create new particles in the scene, I just want to be able to write out a bunch of variations to disk based on the current particles in order to “fill in the blanks”.
The problem with random seed change in Maya is that you only get the changes on emission, there’s no overall seed for the sim. If you “set initial state” and then run the sim from there, you can’t generate a new partition with that emission seed change – there’s no emission.
I used PFlow and Krakatoa MX to partition a sim for use with Krakatoa SR. Unfortunately, 3dsMax was very buggy – the UI kept crashing, blinking out, and crashing. I had give up on partitioning and just run the biggest sim that I could generate from within Maya. Not fun.
Particle Multiplication creates new particles. Originally, we used this approach to create foam from fluid simulations - we would take the original low-count particles (say, 100K) and mesh them using Frost (our marching cubes solution). Then we would use the PRT Volume (which now comes with KMY, too) to fill the volume of the resulting blob mesh with particles. Then, in KMX, we would use Magma to copy the velocity data from the mesh to new particles. All other channels like mapping, color etc. would go over automatically anyway. The resulting cloud would look many times denser, but would have the data of the original. You can see the very first tests here: thinkboxsoftware.com/news/20 … katoa.html
We took this idea and added it to KSR a few weeks ago because a customer needed it for production. We eliminated the whole particles-to-mesh-to-particles process, so it is much more efficient. You can see some initial results here: thinkboxsoftware.com/news/20 … eview.html
What I posted about Ember is a possible solution we might add to both Max and Maya - we would take an existing system, dump its data on a grid, seed new particles close to the original ones and advect them through the grid.
As for Partitioning, it is really meant to be the same simulation with slightly different randomization. Digital Domain used Krakatoa SR for The Darkness II game trailer together with Maya and produced up to 1000 wedges of their particle simulations using only Maya Particles (as far as I know). They wrote their own partitioning scripts, but I know for a fact it is doable since they delivered the project.
That being said, I am not a Maya specialist and am not going to claim I know how Maya works Let’s have some more people discuss this here and figure out how we can get Partitioning in KMY without performing our own simulations.
Hi, I just started on the beta.
my 2 cents on that topic are: one needs both, partitioning and particle replication.
particle replication seems to create more the look of a dense mesh coming from a liquid simulation so you get more solid looking stuff.
partitioning (are whatever you might call it) is better if you want to do more of a dusty, smoky or sandy kind of look.
I’m not too familiar with max, but as far as i can remember the “multi prt” function was pretty sweet there and created multiple cache with different seed and would automatically put the created prt passes based on a namingconvention into a prt reader. if we could have that for maya as well, it would be awesome.
on the other hand, if there is a way to use replication to get that look, it would be even better because you would have to deal with multiple times of simulation and huge data.
Does this make sense to you?
Cheers,
Ronny
Hi Ronald, yes that makes sense to me. We are in the process of getting partitioning finished. The Maya PRT Loader will support multiple partitions based on naming convention, just like our 3dsmax version.
As for particle multiplication, it definitely works well for the case of fluid simulations. It is something we will be adding very soon after the first release.
Thank you for your feedback!
and will it be possible to create those partitions from within maya just like in max?
nice, exactly what i was hoping for!
Here is the updated UI and WIP documentation which went online 2 days ago:
thinkboxsoftware.com/krakato … aver-tool/
I am also working right now on a tutorial about using the Saver/Partitioning tool.
EDIT: Here you go - Part 1 and Part 2:
thinkboxsoftware.com/kmy-ren … particles/
thinkboxsoftware.com/kmy-sav … -particles
Hi,
Exist the possibility to test the partitioning feature now? I saw that it’s a tool outside the plugin but I can’t find the download package anywhere. I’m on the beginning of a project and I need to know if I can count with this, it’s essential feature for liquids like CCTV.
Best!
Yes, I am getting a build ready. It will include the particle partitioning features.
Great!! Thanks for your effort, it’s a great feature.
When are you planning to upload this new build? Only for project planning purposes, no pressure,
Best
A build was uploaded on Friday, I hope the partitioning works well for you. Please provide feedback as to how we can improve it also!