I'm trying to load a character with a few weapons into Toolbag 2.06 and at a certain point it becomes unusably laggy. If I hide one or 2 objects it becomes smooth again. My ram/cpu/gfx/video memory are all barely being stressed so I'm just wondering what limit I may be running into?
Is it the number of textures being loaded rather than the memory they use or something?
Replies
So the my first question for you would be, which video card do you have, and how much video memory?
The second question would be, how many triangles are in your scene? On a fast/modern GPU, TB2 can generally handle a few million triangles with simple lighting. On a high end GPU, even into the 10s of millions of triangles (again with basic lighting)
When you start to get into more advanced use of dynamic lights, performance can be significantly reduced.
Some of the more advanced shaders, like the skin shader, and tesselation can reduce performance as well. The skin shader does some screen space effects which means that as the area with the skin shader fills more of the frame, performance is reduced as well.
Also, your render settings are important. If you've set your resolution to 2:1 (double) this will really, really stress your gpu. If you set your resolution to 1:2 (half) performance will generally be significantly improved even with the most complex scenes, the resolution setting in the render tab only affects viewport resolution, not export resolution (that is set in capture settings, ctrl+p). Local reflections, AO and high res shadows all reduce performance as well.
I was just doing some testing and I noticed something unusual. If I have the scene open with just one of my objects visible I can see my gpu is maxed and the ram usage is at about 400mb. As I unhide the remaining textured objects not much changes until I get to the last one. At which point marmoset and in fact the whole computer lag and the gpu usage and ram drop off to almost nothing. Similar to what happens when toolbag is minimised. I don't see how the last object could send the vram use from 500mb to 2gb but then I'm not a graphics programmer. So I'm not sure what is happening there.
To answer your questions I have SLI gtx 660ti 2gb. I've tried disabling sli incase that was the issue but the same thing happens.
My main model is around 100k tri but I do also have a 500k fibermesh hair model in at the moment. Though hiding that doesn't improve anything, presumable because it is only using a flat colour, no texture files.
My scene is fairly basic, just a sky and 1 light with a bit of dof on my camera at the moment.
I do have a skin shader in use but whether I unhide the skin object last or another object the lag occurs.
My render resolution is at default and turning off ao/reflections etc. doesn't noticeably help.
So I'm a bit stumped unless it is down to me having too many textures loaded. I am using around 45 2k and 4k texture maps across all of my materials. Most of which are saved as png.
Off the top of my head the 45x textures would seem like a likely cupltrip, but if performance is bad only with certain objects visible that may not be the case. There might be something else going on here but its hard to say without having a copy of the scene and all the textures to debug.
Everything other than the texture use should run quite well with your GPU setup, though we haven't tested extensively with SLI rigs.
Thanks
45 * 2k maps = 540mb
45 * 4k maps = 2160mb
so even if you have an even spread of texture sizes, you're looking at an average of ~1350mb in use (assuming half are 2k and half are 4k).
you also need to factor in the memory cost of the meshes, their UV's, marmosets basic scene costs etc.
Sounds like a good plan. If that doesn't fix the issue you should definitely get us a copy of the scene to debug.
LOL, that's what I was thinking...45, 2k and 4k maps is a lot.
Ye my scene is not very efficient at the moment. In fact it's pretty rediculous for a single character but it's easy to downsize at a later date. I have it planned out like this:
Skin 4k
Clothes and accessories 2 x 4k + 2k for alpha
weapons 4 x 2k / combine to a single 4k for performance
Hair 2k
Total equivalent 1 x 8k + 2 x 2k
And if anybody is curious this is what I'm working on
Thanks for the help guys