Managing Memory Limits w/ Hi-Res Figures, Environments, Props, etc.
Guessing this will be a typical kind of newbie ignorance, but I'm tired of getting my butt kicked by it!!
My graphics card can typically handle about 3 actors with most props/environments etc. -- i.e. not push the IRAY render to the CPU -- so long as I'm good about deleting elements that don't appear in the viewport.
But every now and then -- often with an actor that has "HD" in its name/thumbnail -- I cannot seem to stay within my GCU's memory limit no matter what I do. (and get pushed to the CPU) As in, I delete absolutely everything that doesn't appear in the view-port, clear the cache files, keep the number of lights/props to a bare minimum, reduce the subD level to 1 at the character's Mesh Resolution pane -- techniques that allow my renders to FLY on many scenes that are considerably more complex, with more actors, etc.. But for some specific, simple, select scenes I create -- I cannot get it to render no matter what -- and I don't understand why, or what I can do about it. (apart from springing for a Titan graphics card or two)
I've seen old references in these forums to work-around scripts that can step-down the resolution/memory requirements for every element in the scene -- but have no idea how to load/use them -- or if they're even applicable to the Daz version I'm running (4.16.0.3).
I broadly understand that content creators have wide latitiude in choosing their (meshes?), textures, resolutions -- whatever the correct vocabulary is here to describe the memory requirements of any object they create -- but I also get the feeling informed DAZ users can make adjustments to lower the memory demands of such content prior to IRAY rendering.
Any help here in getting control of content memory demands would be much appreciated!
Comments
It would help, if you told us which GPU are you using and how much memory it has (VRAM)
NVIDIA GeForce GTX 1080 SC, 8GB, PCIe 3.0X16, 2560 CUDA Cores, Core clock speed: 1708 MHz, Boost clock speed: 1847 MHz.
Are you restarting Daz Studio? Once iray has exceeded the GPU's memory it usually holds on to it until Daz Studio is closed and restarted.
Ok, to start with an 8GB GTX card running on W10(?) can only manage about max 3.5GiB's for geometry+textures (as reported by the DS log).
https://www.daz3d.com/forums/discussion/comment/7248741/#Comment_7248741
The problem is that there really is no simple advice to give on "How do I know how much RAM/VRAM an asset will use?"
One indication is the download size of the installation file, but then again the products could be a huge environment and/or have tons of additional textures of which only a few would be used at the same time.
The pixel size of the textures and maps will effect the amount of memory that the images will use, the usage can be calculated with formula "Width (px) x Height (px) x color depth (bits) / 8 (bits) / 1024^2 = MegaBytes", when rendering in Iray the amount of VRAM used will be less as Iray does have compression, but we do not know how much it reduces the memory footprint.
Some assets come with 8192x8192x24 bit textures which use 192MB's of memory per every image => Just one surface with 5 textures/maps can reserve almost a gigabyte of memory
Usually the geometry is not a problem, unless going crazy with SubD, but there are products that have insanely dense meshes and you just need to learn how to spot them.
Textures are easy to make smaller with just about any graphics application, I use Irfanview that can batch process a large amount of textures in one go.
There are products in DAZ store that can reduce the polygon count of an item, or you can try doing it in Blender, but the items that I have stumbled upon I didn't bother to fix, usually these products have other problems as well.
Then there are problems with UV mapping, where only a small portion of a texture or a map is actually used anywhere on the 3D model, the worse case I have seen was 5 image files at 8192x8192x24bit, using 960MB's of memory for just one insignificant surface when just 20MB's would have been enough for exactly the same level of detail if the UV mapping was done better - In these cases reducing the pixel size of the images does not help, or is not an option due to the used part of the image would no longer be usable due to loosing too much detail
Forgot... Dense fur and/or strand hair can bring the best of the rigs down to their knees.
Hi Richard, yes, I restart Daz and clear the cache after every CPU handoff. (i.e after a failed GPU render attempt)
Thank you, PerttiA for the detailed reply. Regrettably, you're talking well over my head on most of topics you raise (which is sorta' what I thought would happen!) I'm just too new at this.
I don't know what "W10" is, or if my my card runs on it. (the card is made by EGVA) The IRFANView webpage looks pretty advanced -- not seeing a lot of guidance there on how to perform the batch texture reductions you reference.
I was hoping there would be some relatively straightforward ways to adjust texture/geometry/polygon count/UV mapping memory demands within Daz itself. Guessing no -- that Daz merely handles content files for rendering -- but cannot adjust them?
"W10" is Windows 10
LoL! There I go again -- overthinking things.
Redacted
There is a product called "Scene Optimizer" that is sold on the DAZ store https://www.daz3d.com/scene-optimizer It is ful of tools for saving you precious vRAM and costs a minisquale fraction of the the cost of a new video card (even less if you put it into your wish list and then grab it at the next sale).
Obviously it is another thing to learn just when you are already maxed out; however, in my opinion it's worth it. It is also featured in one of the "In The Studio" tutorials https://www.daz3d.com/in-the-studio-with-daz-3d (I don't remember which one).
Similar topic with some solutions is discussed here:
https://www.daz3d.com/forums/discussion/543101/is-there-a-way-to-render-part-of-a-scene-instead-of-the-whole-thing
Thank you cgidesign -- LOTS of good tips in the referenced discussion. Looking forward to exploring them!