Stop genesis from loading morphs

124»

Comments

  • mindsongmindsong Posts: 1,724

    ...

    auto_adpated is for converted Poser content, DS does cache things but not like that (see Edit>Preferences>DSON Cache)

    mindsong said:

    - when you reload a scene, if the original mapped content isn't there, I *think* it looks in the cached folders, in case the equiv data is there

    Vice-versa, for Poser content (it looks in the converted fiels first, then tries to find the original)

    interesting, thanks - didn't appreciate the poser content relationship going on there

    It's standard to have your personal content folder (default "My Library") first and the DIM-installed content (default "My Daz 3D Library") second, so that your files aren't saved to the same place.

    I've mucked my system up in so many directions, I have no idea what 'defaults' mean anymore... But I happen to put my own project library first too, so that's good.

    Do either of you know how to tell/ensure which auto_adapted folder is to be used? I haven't experimented, but I also haven't noticed a trend, even if it's obvious/consistent.

    (Is that the DSON-cache setting that Richard mentioned? Given it's in a user-mapped library, I didn't think it would be settable, given the dynamic nature of our libraries, etc.)

    --ms

     

  • TheKDTheKD Posts: 2,711

    I was actually planning on splitting my g8f runtime up by age, until I got that hiccup of something searching for those couple of baby morphs and slowing the hell out of the load lol. Was going to do one runtime with the essentials + elderies, one with essentials + middle age, and one with essentials + kids/teens. That went out the window though, oh well lol. So far so good, she still using less than 2gb RAM, loading in less than 2 mins and no new errors yet. I have not been installing as much as I could, still owrking on my scenery project too, so not devoting all my free time to the reinstall. I think I might be finished totally by the end of the weekend with the reinstall. With luck anyways lol.

  • DrunkMonkeyProductionsDrunkMonkeyProductions Posts: 1,152
    edited May 2020

    I'll be the bearer of bad news here.

    DS can't add morph data after a figure is loaded, it has to be present at load.

    You can create new dials, via d-formers, transfer utility(again has to be present at load), or other methods, but that is a seperate thing from what is being discussed here.

    The only way to avoid the ram usage is to not load the data to begin with.

    For older figures, this requires creating a seperate CR2, and a lot of additional prep work, for each variation required.

    For genesis series, seperating out the Data folders, into individual parent folders, and adding/removing via CDM(content directory manager) is one way to avoid this.

    This does entail more work, both at install and while creating a scene, but it can be worth it if you're trying to eek out every scrap of ram.

    It does have the advantage of eliminating many of the conflicts one may encounter with moph dials.

     

    Another consideration is the elimination of the thumbnails on the dials. this can also save a significant amount of ram, but requries deleting files, and resaving the modified assets without the thumbnails to eliminate the errors in the log file that will be created by the missing thumbnails.

    Lastly, the alias dials can be eliminated without undue problems. might throw an error in the log but that's about it. Resave as a modified asset and it'll eliminate that.

    You will however lose the sub dials in the corresponding body part.

    onto a few specifics

    --------------------------------------------------------

    mindsong said:

    This is interesting - if mostly in the variability being discovered. wow.

    FWIW, *if* you have the GenX2 product from the DAZ store, the 3rd (?) tab can be used to enable/disable some/all of the available figure morphs via checkboxes - (at least with genesis1 figures/morphs). It simply renames the checkboxed morph *.dsf files to *.dsf.OFF in the existing folders in the background, and a reload ignores them.

    That's not disabling/enabling morphs, it's renaming files.

    that could lead to potential conflicts and other errors if something goes looking for that particular morph dial.

    Genx also doesn't like non-standard installations. It couldn't find anything in the files i tested unless the support files were in the My library folder or in the c:\ drive.

    Had to move the genesis DSF files to My library just to get it to kinda work.

     

     

     

    mindsong said:
    Also, the same PA (D3D) wrote a highly underrated utility called the Content Gatherer, that will allow you to define and bundle a figure/scene and any/all of its dependencies into a minimized runtime/lib and save it as a zipfile. Maybe that will be useful to some of your purposes. For my projects, I created a complete-but-bloated runtime/lib that contains *all* of my figure's morph resources for my character creation phase.When the figure is 'right', I 'gather' it into a small/tight dedicated runtime/lib (adding expressions, visemes, and other likely-to-be-used morphs) that I use for my active animation projects - with none of the bloat. Godsend tool. YMMV.

    Content gatherer is a bit more oriented towards repacking for distribution, although this is a novel concept of it's usage.

    I would be more concerned with the amount of hard drive space required for the duplication of files though.

    Unfortunately, it has the same inherent flaw as i noted with GenX, it can't find files in non-default, my library/c drive or has an absolute drive refernece(E.g.: J:\HDRI\Sunshine.hdri) installations. Although it did find those on my desktop, sorta, it missed a couple development folders i have on there.

     

     In addition to characters, my data folders are also full of clothing.  Lots (most?) of the clothing includes morphs.  But I am thinking only when the clothing is added are the morphs brought into RAM???   Stop and think about that!!  Either my speculation is not true and I have an entirely different/additional collection of items to consider, including things I have converted and/or saved with Fit Control morphs that I need to think about.  Or it is true and there is an experiment to be done that puts character morph data somewhere, other than the data/ DAZ 3D/ Genesis 8/ Female/ Morphs path, and edits the .dufs (head and body morph files for example) to alter the path so that the morph is only loaded when applied - like clothes.  Surely someone has tried this already?  (Edit: this might be harder if the package also includes expressions.  (or is encrypted?)  I have discovered I have about 55 sets of expressions.  Plus, who new Dayton had 20 expressions of her own.  And I agree with you; they are all loaded into RAM because the dials all work for any character.  How many 'afraid' morphs do I need.  That migh be too harsh.  But how many 'afraid' morphs can I afford to carry is a good question I think.  Had I known when I was buying up all this stuff what I know now I might have been more selective.)    

    You've got a bit of a misconception going on here.

    If there are morph dials for genesis, they are loaded when genesis is loaded. These will be in the Data>Daz 3d>Genesis X>(Gender)>Morphs folder.

    Anything else is for the clothing only and doesn't add to the genesis bloat. That can be it's own bloat issue unto itself.

    Fit control is, in essence, a simplified version of the Transfer utility, taking the particular  morphs from the genesis character to the clothing item. They are always present in genesis, unless you unmap the associated data folder.

     

    TheKD said:

    Oh dear. I wonder why empty dials would use that much RAM. Or maybe it preloads all geografts too, just in case? That would seem strange behavior. I should test all my geografts at some point before I start my great reinstall of 2020 lol. Good info to have I guess. Another person called about a job, so it seems my great install will not start next week either lol.

    Well, because they aren't "Empty" dials. There's also about 200 of them. Some of them do manipulate the g8f mesh even if the geograft isn't applied.

    .

     

     

    TheKD said:

    So I decided to start the great pick and choose install of 2020 lol. I have noticed in troubleshooting threads, that people say errors about control dials not being able to find other control dials are harmless and don't affect load times. I am not sure what product caused it, but there was 5 error lines like that which appeared in my log during a load test, something was trying to find the baby morphs, before I installed any of the baby stuff. My load time shot up to ten minutes, then I installed the baby stuff to see if the log errors cleared, and the load time went back to under two minutes right after.

    You'll get the increased load time whenever a particular asset can't be found. IIRC, when it errors like that, it just starts searching through every mapped folder for the particular file, just like a windows explorer search, until it reaches the end of the mapped directories or finds the particular file.

     

    mindsong said:

    I once felt brilliant for thinking I could create a new custom figure with my various character sliders, export it as an OBJ, then reload and burn in that new result into a new independent slider - and then get rid of the RAM eating dependencies that were used to create it to start with - easy! (not)

    It's still kind of a viable idea, but because there are many related morphs (e.g. Hitomi's eyes and jaw change radically when her facial morph is dialed), my single-slider idea can't really work if it doesn't also coordinate with those various related (ERC and related corrective morphs) sliders that are designed into a well-configured character...

    Experts may know a better trick, but it kind of makes sense that a figure *usually* isn't just some vertex edits attached to a slider. The good ones kind of warp everything in concert to really establish the desired (and correct) look.

    --ms

     

    The single slider idea already exists in practice. Check out some of RawArts products. One dial, one or two files for the morphs.

    But, it won't save a significant amount of ram, especially with genesis, and the support files, dsf/dhdm, become so huge you can't edit them manually if an error crops up. The latter is part of the reason it's "Best practice" to create multiple smaller files instead of one big file.

    As for the "vertex editing", that's all it is. Regardless of the final result, the only thing that is happening with the slider is that certain vertices are being manipulated.

    It's way simpler than people think it is.

     

    (edit note: forget absolute references in relation to content gatherer).

     

    Post edited by DrunkMonkeyProductions on
  • TheKDTheKD Posts: 2,711

    So far going good, but I screwed up a bit. I added a bunch of cards for sliders without it in the past, but I forgot to archive the edited morph files to my installer files for a good chunk of them, so I am having to relink and rearchive a lot of morphs as I install. Being lazy bites me in the ass in the end all the time it seems lol.

  • s_j_gregorys_j_gregory Posts: 107
    edited May 2020

    TheKD,

    Well my project of 2020 Spring cleaning has not started well.  As mentioned it started with a hard drive failure - self inflicted, or otherwise, the result is the same.  As I work through the exercise of reinstalling my content on a new drive, I am appreciating that there is a lot to this morph induced RAM problem. What I think I have learned is that all the associated runtime morphs (shaping, expression, linked to props or clothing fitting etc) 'load' (maybe link is what I want to say) with the G8F figure when it's loaded into a scene.  In this way they are available as needed.   At the moment for me this means an idle RAM consumption for DAZ Studio of 300MB goes to 4.8GB when the first G8F with clothing and hair is added and 9.4GB when I add a second.  (The rendering challenge is separate: I can render this scene in under two minutes for all but high-end final renders with my modest RTX 2070.)  With 32 GB of RAM and my CPU it is difficult, to impossible, to tune a timeline in order to simulate clothing to get a good fit or, heaven forbid, try to use more advanced hair.  Puppeteer is out of the question.  So I cannot get there from here.  Years into speculative buying for interest sake, I am realizing the error of my ways.  More is not better.  Better is better but what does it look like.  But it's more frustrating because of the way I have saved my characters: Scene Subsets.  If I have this right, saving a character preset has the limitation of not allowing you to include clothes or hair etc.  This can be overcome by saving a scene subset.  Perfect I thought.  Except now my characters all load missing files because everything that was present when they were saved needs to be there when they are loaded or it is identified as missing.  Wonderfully, it doesn't matter because it will load anyways, unless it does matter; but, you would have no way to know whether what was identified as missing was being used.  So in the vicious circle, I am reinstalling content to get created figures to install without missing files or only missing files I have already dealt with and then resaved.  Then I think I am going to have to do some kind of ruthles vetting.  At the momnet it's starting to look like the characters are easier to keep than not.  First to go (gone already to its own runtime maybe never to be seen again) is AFE.  Next is likely expressions that come with poses.  Then the maze of duplicate (or near duplicate) expression collections - maybe expressions specific to charcters as well.  Next duplicate body-part specific morph collections:lips, breasts, glutes etc.  Finally duplicate (or near duplicate) grafts.  I think I see numerous instances of resaving characters as I make difficult desicions about removing things from my main runtime.  But something has to go.  I am not yet sure how, in each of the above categories, I will decide what is the best option or options to keep.  But I'll get there - might be way easier if DAZ was multi threaded . . . . in which case maybe the RAM issue wouldn't matter.  I don't know.  Meanwhile, it seems to me that the only way to enjoy the newer or more sophisticated functionality of DAZ Studio is to massively streamline my runtime.  More to follow.     

    A bit more on expressions, shapes and morphs.  I am realizing there are, as always, many ways to deliver products.  This is what I think I understand:

    • In some cases characters and expressions are unique morphs with presets and dials (usually).  The meaning of unique in this case is that the morphs move the mesh directly.  These morphs are impacting RAM consumption and there are dials with the morph name in the parameters tab.
    • In some cases the characters or expressions are shape or pose presets storing direction to assign values to loaded morphs.  In this case the mesh is being moved indirectly and adding this character or expression set adds nothing to the RAM consumption issue I am try to resolve.  There is no dial in the parameters tab with the morph name.  Tuning is done perhaps by adjusting the values in the currently used filtered parameters tab.
    • In some cases they are both - ie presets assign values to existing morphs but there is also a dial with the morph name to allow tuning directly.  These are perhaps the most elegant and powerful but also are a RAM load.      

    This only means that when considering expressions and in some cases characters to eliminate in order to reduce RAM load, there are some which will be more impactful than others.  No point in removing expressions that are based on presets and do not impact RAM consumption at all.

    Post edited by s_j_gregory on
Sign In or Register to comment.