I would like to speed up my viewport playback performance.
I need to know the bounding box of all particles, so every Nth particle required. Is there any way in the future to create a bounding box which is saved into an animation, so that I would not need to load ANY particles at all, just have an animated box that one could work with. Would be nice to just work with those boxes instead of having such a big delay even when no particles are needed. Even wehn just the first nth particles are loaded it is pretty slow.
You can make an animated box to represent the bounding box of the particle system using maxscript. Once you have that, you won’t need the particles to load at all. Wouldn’t be my choice, but it’s an option.
What would make more sense to me is to make a tiny viewport proxy PRT, just 6 points. You would need to find the particles with the minimum and maximum values for each of the position scalars. They would be able to define the bounding box, and would be super tiny. Store only the position channel, too, no need for anything more.
Another option would be to make a slightly larger one, with 8 points, that define the corners of the bounding box. Probably easier to human vision to see as a “bounding box” though the points wouldn’t show you anything like the profile of the objects. Depends on what you really need. You could also skin a box with the PRT sequence, too, to make something that will shade in the viewports.
Box#3 or TP is you friend for this, but it can be done with maxscript too, these are pretty simple setups.
Of course, you can also store regular Nth viewport proxy PRT’s on a RAM drive and get much better performance than loading Nth full PRT’s off a network share.
animated box, jes i did that manually once how would u script it? there is a script which bakes transforms from one object to another
2)viewport proxies is a great idea! can you help me create such an opeartor, im a total box3 noob
that is the best option as i want to animate the prt_loader themselves , and that way, i can just replace the proxies with the final partitions
how do you select the outermost particles in box3? will it still have to simulate all the particles just to get the 6 i need?
is there away to do it in magamaflow? then i could just save a proxy_partition without recalulating the sim
There’s no transform on the bounding box, you’d need to get the bounding box per frame, and create those values as keys on a new box object.
For finding the min and max particles, try using the Number of Neighbors subop using a 180 degree FoV and a supplied vector. If the number = 0, then you have the min, if it’s = N-1 (N being the total number of particles) then you have the max.
To make the particles easier to see in the viewport, you can create a velocity vector that points to either the CoG, pivot, or origin, or to some arbitrary point you think is important. Heck, you could get away with 3 particles, each storing the position of the min and the vector to the max in the same axis. The lines won’t cross, but it will still be easy to see and only take up a small amount of disk space.