i'm currently trying to migrate on Solaris/usd.
I want to talk about crowd workflow.
My agent setup is basic, but I wanted to try with a model with several cloths/hair/props to randomize them later with Crowd Assign Layer.
Then I cached the agent definition to disk before I ran the simulation.
And finally cached the simulation.
For now, I have 2 major problems :
1) Solaris Viewport Building Scene Performance
When switching from /obj/ context to /stage/, i'm using a sopimport node (or a sopcrowdimport) with the "Create Instanced SkelRoots" (default)
The viewport Houdini GL shows the full geometries of each agent (which are pretty high, because of hair cards, cloths, etc). When I have 10 agents, it's ok, everything shows up pretty fast and I can play animation.
But when I increase the number of agents, solaris becomes extremely slow, trying to show every geometry...
It's the building scene (with all agents) that takes time.
Questions :
1a) Is there a way to configure a proxy system in Solaris for each agent to be able to switch between high/proxy/bounding box / or just show single part of each mesh ?
The DrawMode is only available on the Sop Import node, and not for each agent.
What is the workflow to create different preview mode so that I can switch from one to the other ?
1b) Should I cache 3 crowd simulations with different agent proxies ?
Should I cache the crowd simulation with all the High, Low, BoundingBoxes in the same sim, and then layer_configure the display in Solaris ?
2)Solaris Rendering Karma / Arnold
I'm using Arnold HtoA 6.1.4.3 (arnold 7.1.4.3) on Houdini 19.5.493. When I convert crowd sim to LOPs I'm not sure that instances are kept.
When I try to render 10.000 agents, Ram is going crazy, and then just crash. Just as if I had baked all my geometries... Even with Karma, ram is to high for rendering.
That's not viable, because I need to generate a full stadium which represents more than 10k agents.
When I render the crowd with Mantra in /obj/ context, 10k agents with my model costs less than 35GB ram. When I switch to solaris, it goes over 100GB.
Questions:
2a) Is there something to do to have better performances with agents rendering ?
2b) In the construction of the scene, is it better to split the crowd system in multiple parts (like multiple square of 1000 agents ?)
2c) Is my model too high for crowd ?
3) MANTRA vs KARMA for crowd ?
So, just to illustrate the difference as mentioned before between /obj/+mantra and /stage/+karma (and not arnold), here are ram usage :
/obj/+Mantra : loading very fast ~35GB ram
/stage/+Karma : very long loading time ~90-100 GB ram
3a) So my question is : Is it viable to render massive crowd with Karma & solaris at this time ? or I am stuck with mantra in /obj/ context ?
If someone have any advice or tips about that... because videos and other topics don't show examples with massive crowds.
Thanks !