Max number of G3 characters you can use and still render with GPU
Hi all,
I was wondering, how many characters (G3) can you put into one scene and still render it out on your GPU? I currently have a Nvidia Titan X of 12GB GPU (two of them) installed and with that 12GB it would seem, the max amount of HD G3 characters I can use in a scene is three... That seems a bit low to me, but if I put in a fourth, my CPU takes over the render. I did disable CPU in render settings, so the fact that it still takes over tells me it's necessary. Are there any tricks you can use to boost that number up?
Somewhere I've heard that the most effective render engine for Nvidia is Octane. Is that true? If I use Octane, can I use more G3 characters? Less drastic step, how does the scene optimizer product work? Is there any difference in render quality when you let it "downsize" the textures?
Thanks a lot,
Me

Comments
I have 16GB RAM that I CPU render with and once I get to about 13GB RAM Windows 10 will shutdown DS so it's sort of the equivalent.
I get to over 12GB usually by having 3 or more Genesis 3 characters plus a complex modeled set, like the carnival preset that I try to render. Or alternatively, 2 Genesis characters & three Genesis characters (3 copies of Mr Mouse for example) with all three Mr Mouses having converted LAMH hair to fibre hair to render in iRay.
So you can do more characters than 3 for sure but it's really dependant on things also other than characters you might be using in a scene.
This is an image I did with 20 G3F, and I rendered it using a GPU with just 4GB of VRAM (GTX 970).
These are not HD characters, indeed apart from the photographer in the foreground all of the characters have been set to base resolution, however unless you are rendering closeups of a single character, or are rendering at a huge image size, you really will not see much, if any, difference using HD.
Now in the image I have attached you could argue that I "cheated", since all of the displayed characters are using older generation 3 skins (ie V3, M3 etc), but with the characters in the medium ground, or even further back, you are not likely to see much more skin detail using a high resolution skin like the ones that come with Genesis 3 or 8 characters (and all their accompanying bump, specular etc maps).
Not sure I answered your question, but the point is, that it is tricky to say exactly how many G3 characters will fit in a render, since so much depends on how much screen space they are taking up, and thus what resolution they need to be.
Yes, I forgot to mention I almost always render in 4K so that uses much memory.
I have never tried to have more than 5 characters & a modeled scene in a set at one time. That's definiately doable at 4K and 12 - 13GB RAM most of the time.
This is rendered in one go on 780GTX with 3Gb of VRAM, all characters are G3 plus their clothes, weapons, vehicles and Stonemason's environment. I gave instructions how to do this on this forum (multiple times, actually), use search.
As others have noted, there are ways to get more figures in your renders by reducing texture sizes, no HD, etc. But to answer your question, yes, you can get more stuff in an Octane Render image than Iray because you can use system RAM, as well as the memory on your GPU for rendering. Octane still uses only the GPU when rendering while using system RAM. It's not a hybrid renderer, it just alows you to yse system RAM in the memory pool. It's rather interesting that when using out of core memory (system RAM) Octane still has lower CPU useage than Iray. It also has more features than the DS implementation of Iray as well, but you do need to set up a lot of your own shaders with Octane.
GPU limits are down to the memory. Geometry is about stable from size on disk to size in GP so, you could a lot. Hundreds.
Textures are not stable. They live uncompressed in the GPU, so a 4k texture will eat like 256ish MB. There are 4 base textures one G3 so just those, no hair, ignoring eyes and mouth, you already have a gig of your GPU tied up. Add a second and you eat another 11MB (they use the same texture). Change the Texture, and boo, lost another gig.
So, assume 4k textures and you can render the number gigs of GPU you have roughly. As Havos note, using lower res textures give you much more space. Way more. Way, way more. Since I do toon, I keep my textures at 1k or below, and can get an absurd number of things in a scene without too much memory overhead. I don't have GPU set up now, but when I did, the default textures would give me out of ememory faults on the GPU with too many characters, which is why I down graded.
For phot real, you just limit high rest to a few close characters and you can have huge crowds in the distance. Reducing subD to 0 also reduces Genesis to about the level of the LowRez products (so I hear) so you can really get your rooms packed, if you have subD based clothing (a rarity, I know, but there is some). It's mostly about managing your textures.
Of course, increasing subD will tend to make your figures eat up more memory, in the same way doubling texture size does. Base Genesis is just under 3 megs. SubD level 1 is just under 12. Logically, level 2 is going to be just under 50. then 200, then 800.
You can save tons of texture memory just by removing normal maps. If G3F normally takes 2Gb with normal maps, it drops to almost half if you only remove normal maps.
Recently I've been working my own skin and hair shaders, and I can squeeze G3F ( 4k diffuse map, genitals and hair ) to around 700Mb ( geometry and textures ), so I might be able to render 10+ characters ( no clothes ) and decent environment at the same time, but I bet DS interface would be too laggy to use.
PS: I started experimenting with weighted base mixing, and it seems to give pretty nice results for skin. It seems to be little slower to render than metallicity/roughness based skins, but I think you can achieve quite nice results with minimal texture memory consumption. If I remember correctly, there's some talk about that in that fiddling with iray skin thread.
Thanks for all the replies! Why doesn't Iray have this feature? Or does it, and was it for some reason not included in the daz studio set up? If Iray doesn't come with this feature, can it be added in, or is that simply not the way Iray works?
Thanks a lot,
me
How about Luxrender on that regard? is that a render engine that allows the combo of GPU Ram and system Ram too?
Thanks a lot,
Me
You could use instances, that's of course depending on what you want to show. Look here, the first thumb
https://www.daz3d.com/cyber-stealth-bodysuit-hd-for-genesis-3-male-s
I tried to embed the image on the post, but didn't know how.
Here only the main characters are in deed figures, normal maps and low part of figures maps taken out, but the suit, what I wanted to show, it went with all. Then on the instances, used a 4k or 2k, don't remember, the suit is 8k, and the helmet is 4k, but I set the fill figure, and then, instanced it, don't know still if a instance takes only x% or y%, but is really low, uses the first, and the instances, I think that only have to remember the new x-y-z position. Also you could use morph, which I also did. So I fit all that in the 1070.
This.
Texture maps are the biggest drain on GPU memory. A single G3 figure is about 24,000 quads at base SubD. If your figure is not taking up the full screen height, is standing, and you are rendering at 3840x2160 size, 4k body textures are still overkill. (since the on-image size of the body will be less than 2k pixels high.) If the figure is only half the image size in height in the render, 1k x 1k resolution textures would be just as good.
While Iray uses nVidia's built-in texture compression, it only does about 30% compression at best. So a single 4096x4096 texture is still going to be about 45MB of memory. A single G3 figure uses maps for head and body, and probably includes at least 3 of each. That's a minimum of 270MB of VRAM. Hair, clothing, props.....they eat it up too.
This was why @Esemwy and myself made the freebie Texture Resizing scripts......so we could better control and use our VRAM and fit our scenes better into our GPUs. If your figures are small on the image (say, 500 pixels tall) using 4k textures on them is simply wasteful of memory. Also, using high-SubD levels on figures that aren't very close to the camera and at high resolutions is also wasteful, as the detail won't even be visible. HD figure details are for close-ups at high-resolution. Don't use it on figures in the background or in smaller resolution renders......it just takes up extra memory, slows down rendering, and gives no real benefit.
Thanks for the replies!
How about Luxrender? Does it have the same properties to be able to use system RAM and the GPU to render?
Thanks a lot,
Me
Iray is an Nvidia product. You can condier it an effort by Nvidia to encourage users to buy Nvidia graphics cards. It will still render on CPU but is slow. A cynical person might consider that an effort to show that Iray looks really good and would be much faster if one were to get an Nvidia GPU.
To the best of my knowledge, Luxrender does not use the GPU.
You can get the Octane Render combo for Daz Studio for $579 or you could get a GTX 1070 for the same money and generally be able to render pretty complex scenes on GPU
Unfortunately, Iray doesn't support the use of out of core memory. Octane was built from the ground up using Nvidia Cuda, and they purposely did not include any of the Nvidia render library (whether that was for technical design reasons or personal choice I don't know). Of course I'm sure Nvidia could implement this in Iray, but have chosen not to at this point, but maybe some day. IIRC Iray initially was a product developed to show case the benefits of GPU processing, and Cuda technology. The type of computing required for path tracer render engines like Iray (and Octane) lend themselves well to the massive parallel processing of GPU's, so it was a natural for Nvidia to use to showcase their technology.
So, I'm sure they could implement the use of system ram if they really want to, but they (Nvidia) are in the business of developing GPU's, rendering software is not their primary focus. Otoy is in the business of developing rendering software, and with a careful comparison of the two you will see a marked difference in the level of features and tech development. That doesn't mean that Iray is a bad product, as it is a quite capable render engine. It just shows a difference in what each company feels is important, and where they place their development focus/dollars.
LuxRender can use GPU, but the last time I tried, it was pretty touchy, and not for the average user the last time I tried it (2-3 years ago??). LuxCore, which is basically LuxRender version 2, does have very good GPU support, unfortunately, I don't think it (LuxCore) is compatible with Reality or Luxus for DS (but I could be wrong). There is a free LuxCore plugin for Carrara (LuxusCore) available in the Carrara forum, which works quite well if you use Carrara and want to give it a test run.
Bottom line, Octane isn't cheap .... well, for a professional render engine, the price is very competitive, but compared to free, it is expensive. IMHO it is more efficient and seems a bit faster than Iray (I have both the DS and Carrara plugins), and the use of out of core memory is a huge plus if you need it (or any of the other feature that Iray doesn't have). You also get the full standalone application as well as the plugin, which means you can export your scene from DS and open it in Iray stand alone, and render using it while ypu do other things in DS (set up another scene???). You can also use Octane standalone to create scenes as well, the obj importer is quite good, but it doesn't have any posing capabilities, but IIRC it can use MDD data for animation.
Hope this helps.
Oh, for what it's worth, the scene below was rendered using the Carrara Octane render plugin, with no texture reductions at all, it only used 4.7 Gb of GPU memory (6 G2F figures), and no system ram (though Carrara did consume 24Gb of system RAM ..... Genesis figures are very RAM hungry in Carrara).
It does but you need an AMD GPU that has good support for OpenCL. Remember that Luxrender is an open source project.
Nvidia has no incentive to use OpenCL when they have CUDA.
Depends on what hoops you're prepared to jump through.
32 G8F.
No instances, but they all share the same textures. Same hair different shaders, but again same textures. I didn't do anything to reduce the textures on the clothes - so would have helped a little.
The character and hair textures I manually reduced in size.
gibrril, you do not need to go looking at other render engines. I also have 2 Titan X cards (Pascal), and that should be plenty for Iray.
I have done 8 Genesis 3 figures with their default 4K textures in one of Stonemason's sets (NWX-18) with some items hidden, a big background image and some small things added. I have a pretty complex scene (also Stonemason NWX-18, a ton of stuff added) with 8 Genesis 3 figures, but reduced the textures on secondary characters to 1K. Also on secondary characters, they use different hair, but mostly share the same downsized 1K textures. Out Of Touch has excellent Iray hair shaders, I recommend those for squeezing a lot. The diffuse color map is different, but all the other maps are shared.
Ooh! Ooh!
Where can I get this script? With all the maps, I think it took me about a half hour to resize all the maps for a Genesis 3 figure and the hair using Photoshop.
My version of the script is here. The version by @hphoenix is here.