Home Technical Talk

Costly Particles & Very Slow Progress (Advice Needed)

polycounter lvl 3
Offline / Send Message
Pinned
Caramel_Slices96 polycounter lvl 3
(Out of courtesy, if a similar post has been made or this is in the wrong place, let me know and I'll get it moved! Many thanks).

I'll try to be as concise as possible. I became involved onboard a freelance project through a work friend to help produce a 3D video detailing the production and distribution of Asphalt. https://www.youtube.com/watch?v=6vxo839kNy8&t= The YouTube link here essentially illustrates what the end result is to be aimed for.

Unfortunately, it seems the project has suffered from what I now know as 'feature creep', I was originally brought on to produce some basic animations but now I'm juggling the particle systems and rendering segments of the project too. Since neither particles or rendering are my specialty I find myself hitting brick walls when it comes to certain parts of the project. (Most other members have since left the project, but I don't want to walk away half finished).

The particles are exceptionally costly to the system and causing massive performance drops. I've looked into particle caching and that only seems to help slightly. Currently, I produce all the clips for the client through playblasts however I have often had to leave my PC running through the night before the video is ready. This has certainly raised some concerns about when it comes to the final render sequences. 

Since particles, collision, and rendering are not my area I keep feeling like I'm missing something that would solve a lot of these issues. Any advice on certain settings, similar circumstances or just general troubleshooting is more than appreciated. 

I'm currently using Maya 2016 and have also tried to transfer certain scenes to the Unreal Engine for better results.
(I've included a screenshot of just one part of the more demanding segments of the project to illustrate what I mean).

Many Thanks


Replies

  • .Wiki
    Options
    Offline / Send Message
    .Wiki polycounter lvl 8
    Are you using the actual particle shape for the collision detection OR a proxy which would basically be a sphere? This will speedup the process a lot. Same goes for the "machine" are you using the actual rendering geometry for the collision detection? This will kill the performance.

    Do you have multiple particle systems or just one big system? For the 6 parts you have there i would use 6 different particle systems. 
  • Caramel_Slices96
    Options
    Offline / Send Message
    Caramel_Slices96 polycounter lvl 3
    .Wiki said:
    Are you using the actual particle shape for the collision detection OR a proxy which would basically be a sphere? This will speedup the process a lot. Same goes for the "machine" are you using the actual rendering geometry for the collision detection? This will kill the performance.

    Do you have multiple particle systems or just one big system? For the 6 parts you have there i would use 6 different particle systems. 
    Hi .Wiki,

    So for the particles, they are basically nParticle points that are using instanced geometry (a small rock mesh). I have turned on both collision and self-collide in the attribute editor.

    For the "Machine", it is all rendering geometry that I have added collision to using the nCloth > Create Passive Collider. 

    And yes, I have an individual particle emitter for each chamber, as opposed to one big system. 
  • Mark Dygert
    Options
    Offline / Send Message
    That's a lot of particles and you have to manage your resources effectively.

    You should simplify the collision as much as possible, in the particles and in the main unit.

    You could add volume without adding to the particle processing overhead, by attaching multiple rocks to one particle/collider. It basically doubles/triples your volume without doubling your collision detection. It works well for the smaller particles, but it still costs in rendering though. 

    You can also run the sim to get piles at the bottom, collapse those down to meshes. That way they are excluded from the sim, but you still have volume.

    You can also process/render each section individually and composite them together. Allowing you to bulk up and max out each section.

    Depending on your budget there are also solutions like KrakatoaMY http://www.thinkboxsoftware.com/krakatoa/ which is specifically designed to work with millions and billions of particles. It's amazing but it has a learning curve. Even though it can handle much more than Maya or Max can, people still composite a few different passes to really flesh out big scenes.

    That's one advantage to non-realtime rendering, doing it in chunks. 

    Also, it's probably better to render to single frame images rather than video format. That way if something happens during rendering you can pick up where you left off and you don't have to render the whole thing all at once and then encode and compress it. You can composite it all together and then encode/compress to whatever format you need.
  • Caramel_Slices96
    Options
    Offline / Send Message
    Caramel_Slices96 polycounter lvl 3
    That's a lot of particles and you have to manage your resources effectively.

    You should simplify the collision as much as possible, in the particles and in the main unit.

    You could add volume without adding to the particle processing overhead, by attaching multiple rocks to one particle/collider. It basically doubles/triples your volume without doubling your collision detection. It works well for the smaller particles, but it still costs in rendering though. 

    You can also run the sim to get piles at the bottom, collapse those down to meshes. That way they are excluded from the sim, but you still have volume.

    You can also process/render each section individually and composite them together. Allowing you to bulk up and max out each section.

    Depending on your budget there are also solutions like KrakatoaMY http://www.thinkboxsoftware.com/krakatoa/ which is specifically designed to work with millions and billions of particles. It's amazing but it has a learning curve. Even though it can handle much more than Maya or Max can, people still composite a few different passes to really flesh out big scenes.

    That's one advantage to non-realtime rendering, doing it in chunks. 

    Also, it's probably better to render to single frame images rather than video format. That way if something happens during rendering you can pick up where you left off and you don't have to render the whole thing all at once and then encode and compress it. You can composite it all together and then encode/compress to whatever format you need.
    Thanks Mark, 

    I'll look into your recommendations. I've had a similar mention of rendering each section out individually like render passes and compositing it together afterward. Once again this concept is fairly new to me so I'd new to read more into putting it into practice. 

    I'll also check out Krakatoa, just at a glance, it seems to be able to handle more costly scenes! Thanks again! 

  • Mark Dygert
    Options
    Offline / Send Message
    It's not cheap. $1000 for a single license and the learning curve isn't conducive to being in a hurry. Still it's really good at what it does, shoving a ton of particles around. It works roughly under the same principles as particle caching but in a really smart way that regular particle caching won't be able to pull off.

    If you are open to 3dsmax, there is "Thinking Particles" which $55 a month, which is good for quick projects like this.
    https://www.cebas.com/?pid=productinfo&prd_id=187
    TP is good at processing slightly more particles than max and maya, (not as much as Karakatoa) but it also comes with a lot of amazing particle solutions out of the box that make doing complex particle sims like destruction and fracturing, pretty easy. I think the Max particle system is based on an earlier version of TP so if you've used the Max particle system, you'll know TP pretty well.
  • Caramel_Slices96
    Options
    Offline / Send Message
    Caramel_Slices96 polycounter lvl 3
    It's not cheap. $1000 for a single license and the learning curve isn't conducive to being in a hurry. Still it's really good at what it does, shoving a ton of particles around. It works roughly under the same principles as particle caching but in a really smart way that regular particle caching won't be able to pull off.

    If you are open to 3dsmax, there is "Thinking Particles" which $55 a month, which is good for quick projects like this.
    https://www.cebas.com/?pid=productinfo&prd_id=187
    TP is good at processing slightly more particles than max and maya, (not as much as Karakatoa) but it also comes with a lot of amazing particle solutions out of the box that make doing complex particle sims like destruction and fracturing, pretty easy. I think the Max particle system is based on an earlier version of TP so if you've used the Max particle system, you'll know TP pretty well.
    I see where you're coming from. Yes in this circumstance, introducing Krakatoa maybe a bit overkill and counterproductive in the short term. As for Thinking Particles, that definitely looks like something I should take a look more closely at! Thanks for the link! 

    The main thing that eats up the majority of the time on this project, is learning the new workflows for these particles to react properly and then trying to implement them. Hopefully can use these points to push the progress quicker. Thanks Mark! 
Sign In or Register to comment.