How many G8's can you render?
![Drogo Nazhur](https://farnsworth-prod.uc.r.appspot.com/forums/uploads/userpics/506/n0NDMSY4I6LW8.png)
A few years ago I purchased a top of the line laptop. Prior to this purchase, renders were taking hours to complete. Once I started using this new laptop, my renders flew. Things that took hours to complete, were finishing within minutes AND at better quality. All of this was prior to G8. I am always resistant to new Genesis because I always have so much invested in the previous Genesis. Not only in money but in new characters that have become fan favorites in the illustrated stories that I do. Over time, I embraced G8 and now they are my most commonly used characters. However, I've discovered that while I can easily render four G3 characters with a scene background (room with props), I can't render four G8 characters. The computer freezes and the program just dies. I left it running over night while I sleep. I can barely render three G8's but that is the limit.
Am I unique to this problem? Do I need an improved more state of the art computer or is this just the nature of the beast. How is everyone else doing?
Comments
I could be wrong, but I thought G3 and G8 are the same size? The difference is probably in the materials?
Also, what SubD are you using? I think G8.1 loads with a higher SubD than G8.0 and G3.
As for your question, I have 8GB VRAM and sometimes even one G8.1 is too much if I render with max SubD, depending on what else is in the scene.
" ... Also, what SubD are you using ... "
?
Ok, I'm no expert so everybody, if I get something wrong please do correct me.
Genesis figures can have a SubD value from 0 to 5*. With every step the size of the figure's geometry increases by factor 4.
Let's say a Genesis figure at SubD 0 has 100 polygons (not the real number, I'm just making this up to illustrate.)
If you increase the SubD value to 1, each of those polygons get sub-divided into 4 polygons, so now the figure has 400 polygons.
The higher the SubD value, the more detailed (and potentially life-like) your character will look, but the more heavy it will be on your system.
G3 and G8.0 load with SubD value 2*, G8.1 loads with SubD value 3*.
So comparing a scene with four G3 characters with SubD 2 to a scene with four G8.1 characters with SubD 3 is not a useful comparison, the latter will have four times as much geometry.
You can see and adjust the SubD value in the parameters tab.
*ETA: corrected the numbers
You are not unique, I have seen it also over the years. Keep in mind that unlike a video game where everything in it is optimized to run at the best level with the game engine used, evey asset in the store is made different with varying levels of skill from different PAs and as such, the amount of resources used are all over the place. I also find that with each new version of DS more resources are used as well unfortunately.
Some of the characters also come with SubD 5 as default, add 8k textures and you are lucky to get even the figure with no clothing and hair rendered.
There is nothing that automatically makes a G8 figure consume more resources than a G3 one. However, as others have pointed out, G8 is newer and so characters are more likely to have additional maps, eg: normals, translucence etc. The more different maps used, the higher the resources that will be consumed. There are some G3 figures that also have a lot of maps, and these will render as heavily as a G8 with the same maps.
Note G8 (and I think G3 aswell) are actually SubD 2 by default, or at least they are at render time, which is the more important factor. G8 is SubD 1 in the viewport only. These are separate settings you can tweak.
I think I can do two G8 figures at once, and it's a little easier if they're naked. This is with a mobile GTX 1050 with 4 gigabytes of video ram.
I did 32 on a 980ti.
Same textures; same hair with different material settings.
Not seen how many I can manage on my 3090, but it is an interesting idea.
Edit: the 32 was rendering on a 980ti, with a 970 being used for the monitors.
I now use the 980ti for monitors.
4/8K textures are the VRAM killers, not geometry. A single 8K texture, can easily be a gig of VRAM, depending on how many maps it provides.
I CPU render but even had if I a top of the line RTX 3090 I don't come up with enough ideals for scenes to do too many renders. I typically stop renders, unless I intent to post them in the gallery, at about 300 CPU iterations. If it's going to be posted in the gallery I let the render run up to between 2000 and 5000 iterations although admttedly much detail doesn't develop once I get up to about 2000 iterations. If I use an atmospheric volumetric stage lighting product like Colm Jackson's Render Studio 1.0 or Render Studio 2.0 then I can usually stop the render between 500 - 2000 iterations because the noise of the volumetric lighting is what appeals in those cases and there is no need to try & render that noise out.
I never have had more than 3 humans and a couple of 'creatures' in a render but the amount of geometry from multiple sets, clouds, water, and so on have been quite high at times.
I subD at 4 or 5 render and 2 or 3 viewport because I like the added details, both toon & realistic.
On my top-of-the-line-as-of-a-year-and-a-half-ago laptop, I've managed 26 on a CPU render.
As a work around you can render each figure at the highest subdivision settings and maps that you want and your system can handle, then use the render to create a billboard. That lets you add as many figures as you like to a scene with almost no additional render cost.
Of course, you have to use the same lighting and position each as you want within your scene (and remove everything else before you run the render to create a figure's billboard).
Or you may want to use billboards for secondary and background figures and make your final render with them plus one or two main figures. You can also create billboards for render-heavy props.
As textures usually are the biggest memory hogs, I have this wishlisted for the future:
https://www.daz3d.com/mmx-resource-saver-shaders-collection-2-for-iray
@Mattymanx - I've done a store search for the others in this series. I've found MMX Resource Saver collections 2, 3, 4, and 5, but I can't seem to locate 1. Does it sell here under another name?
I can render about 1000 G8s in scene BUT. I'm running Quadro 8k with 48GB of Ram, but only use about half that. So there is a "trick". Pose all your 1000 characters (have fun with that (I use animation and AI pathing scripts in Unity to get the scene set up)) After placement I export the mess as an OBJ and then load that into Blender. with 1000 I have to break that up into about 10 objs. In Blender I tidy the mesh removing doubles and then decimate it down to around 5 to 50% depending on how close to foreground. A few notes, I cut out all materials except just the diffuse, specular and maybe the bump. I use only 1 to 4 different texture sets for them. I don't use hair unless it's the absoltely most basic or use simple ones designed of low poly for games. I'm selective with clothing for best low poly. Subd is at 0. You can easily get 100 by using the Blender and texture trick.
Hey Zombiewhacker, thanks for the mention. It is right here - https://www.daz3d.com/resource-saver-shaders-collection-for-iray
I made it just before I started adding the MMX at the start of each product. please note, the info on the first RSSC which talks about Iray loading the same image multiple times was true as of Daz Studio 4.10. But as of Daz Studio 4.11, Iray was updated and is smarter now in how it handles images.
Here is the thing about G8 and memory use. While texture size and subd can certainly impact what and how many figures you can render, morphs and characters, any expression or pose that adds a slider, add alot of memory to G8. At one point, I had so many morphs for G8 that rendering a single figure became an issue and all I could do was bare bones rendering (or composite). I was able to improve upon this by creating a second content directory devoted specifically to base G8 and custom characters. I then uninstalled every morph and expression that I used for custom character creation and re-installed them to the second content directory. My primary directory is now dedicated to charcters alone and I can now render a couple of charcters at a time with outfits and environments. I can render just as much if not more from my second content directory. There is a drawback to this though. I do not know if it is possible to share data between databases. This means that every outfit and envirenment, etc. has to be also installed to your second directory effectively doubling the storage cast for whatever item you want to use.
Daz3d has horrible memory management issues concerning base G8 figures and morphs. If they still used injectors, like they did with vm4, memory management might not be such an issue.
There is another trick that I use when I need more memory for more figures. It takes a little bit of time but can make the difference if your pc is stretched for memory. You can convert your G8 to props. It is a bit of a process. It is also kind of a final step so you pretty much need to know how your final scene is going to play out. You must save your original scene as well as a duplicate for the actual conversion (in case something goes wrong). This does not seem to work with geo-shells. Ive experimented with some geografts and had success but it is an additional process.
In a nutshell:
1. Load character, pose, outfit, hair, etc.
2. For each item associted with your G8, hair, outfit, etc., convert that item to a prop. Most items ive converted look great after the conversion. Some look better with smoothing added, a few ive tried just dont work afterwards. DO NOT convert G8 to prop yet.
3. Select every item that you converted, hair, outfit, etc. and GROUP them. If you do not group them, they will be DELETED after you convert your G8.
4. Once your items have been grouped, convert your G8 to prop. Depending on how many, morphs, characters, etc. you have, the conversion may take several minutes. Once converted, add your G8 prop to the group of items you previously converted.
Once done, your G8 will not take as much memory as it did before conversion. In my case, my G8 memory use was cut in half.
Sigh...
If anyone wants more specifics on this, reply to my post here and ill post a more detailed process.
Hope that helps :))
^ again, not an expert... but this doesn't sound right to me.
Having many characters and expressions installed certainly adds to the loading time of G8, and possibly slows down your posing in the viewport.
But once you hit render, does DAZ really load the geometry of every single installed character into the graphics card?
I would think it only loads the shape as it is at the exact moment of rendering.
Folks in the know, please comment!
No, as I'm quite sure we would all be having problems rendering a single character. Same thing with morph packs. If you use one or two morphs from a morph pack, Daz doesn't load the whole morph pack onto the card, but instead only loads the ones that are applied.
The number of characters/morph packs/expression packs you have loaded can negatively impact the load time of a Genesis character, as well as the total memory consumed by the program. However it should not effect the resources sent to your VRAM card, as that will consist of the current mesh shape, and any textures. The renderer does not need to know about morphs at all.
For machines that are constrained by RAM however the bloated size of a morph heavy character (can easily be 1 GB or more per character) can impact rendering performance if the machine get close to its limits of RAM, and will be particularly slow if it has to start dumping stuff to virtual memory. Whilst all that morph data is irrelevant for the renderer, the data required is retained in Daz Studio during rendering, and therefore counts towards the total memory needed during rendering, and rendering itself consumes a lot of memory.
There is no rule about how many characters can be rendered, but machines with 8 GB or less are going to struggle with a multiple character scene, and even those with 16 could start to hit limits. You should be alright with 32 GB, unless you start using dForce hair, as that can gobble up memory in the 10s of GB, depending on the settings used on the hair.
DS does use a form of injection - the ExP system loaded the channels and their links, for the same reason that the Genesis system does, and added the deltas (the actual shape change) through the INJ pose, where DS loads the deltas only when the morph is given a non-zero value (which is, potentially, more efficient than the INJ system which - for sets - would usually load all of the deltas).
Yes, Iray gets only the final shape (at the render division level) - it wouldn't have a clue what to do with morph or rigging data.
Yes, this sounds like my situation. I think my vram is probably pretty good, though not up to current standards. The ram for my pc is probably limiting. But I should just be able to buy more ram???
A while back. I did some testing just for the fun of it, took the G8F textures down to 25% of the originals.
Geometry memory consumption: 2.899 MiB (device 0), 0.000 B (host)
Texture memory consumption: 9.204 MiB for 12 bitmaps (device 0)
That's 12MB's for a fully functional G8F with clothing and hair without using any additional tools
Sometimes I think I can get away with putting four or five figures in a scene, and realize there's too much going on or the textures are quickly going to eat up the Vram. I think the most I ever jammed into a scene was five and that was using Scene Optimizer on the distant items that wouldn't require as much detail due to using DoF (and I think 3 of the models were G3). Now, I can get three G8s in a scene without having to mess with the textures, as long as I don't have an obnoxious amount of props. If I have more than that in a scene, I'll just render in layers. I'd rather do that than risk my computer freezing.
Edit: Also going to add that if I'm using dForce hair on a figure, the most figures I can render in a scene is two before I either get a computer freeze or kick to the CPU.
Wasn't there a "rule of thumb" for G8s and VRAM usage etc? My memory fades, but I thougth it was 2-3GB of VRAM per G8.
of course, it could have just been a bad batch of mushrooms.
Do the 'HD' characters change sub division automatically, without user intervention?
If you dial them into an already loaded Genesis character, then there is no change of sub division. If you load the HD character into the scene via it's Actor icon, then it may well have set a higher sub-division value for the freshly loaded figure.
Two and a half (don't ask). Three makes the screen go black (and that's without HD morphs, or presets), and that's on 16GB RAM, but rendering on a CPU (I don't have a GPU).
It's a shame that having more RAM doesn't speed up 3Delight rendering of hair.