Crashing Issue

D.RobinsonD.Robinson Posts: 283

I dont know how long this has been going on, because i havent used the hair in some time but when i try to render or iray preview view this hair https://www.daz3d.com/charlene-hair-for-genesis-3-and-8-females daz crashes.

 

THe last nvidia driver that as released, not this current one. Some OOT hairs were crashing DAZ so i wonder if its a shader issue. Those hairs are not crashing with current drivers. Just grasping here.

 

Daniel

Post edited by D.Robinson on

Comments

  • hansolocambohansolocambo Posts: 649
    edited December 2022

    Since there have been countless reported issues with recent NVidia drivers, I stayed on Driver version : 517.48. Never faced once a dForce or Iray problem. So just use that, it works perfectly fine.

    This hair is polygonal heavy because tons of thin hairs are made with actual polygons rather than hair cards and a thin hair texture : 147K polys. But I've seen worse so I doubt that's the issue you're having ? Maybe try to render them at Base Resolution Level (147K polys) rather than the default SubD Level of 1 used (588K polys).

    Charlene hair takes a lot of time to load but renders fine in Iray.

    Post edited by hansolocambo on
  • Is definately a shader issue, but why i dont know. If i load the hair in the scene and change the hair shader to a different one it renders and previews fine.

  • ArgleSWArgleSW Posts: 144
    edited December 2022

    I notice it with most of outoftouch (OOT) hair assets. Not all of them but a clear majority of them crash when loading iray preview. Starting happening when updating to version 4.21.1.13. I also have the latest Nvidia game drivers. 

    Post edited by ArgleSW on
  • ArgleSW said:

    I notice it with most of outoftouch (OOT) hair assets. Not all of them but a clear majority of them crash when loading iray preview. Starting happening when updating to version 4.21.1.13. I also have the latest Nvidia game drivers. 

    This is a known issue which is being investigated.

  • The crash occurs in Iray and not Daz Studio when "Transmission Color" has a map applied. To prevent the crash, remove any map applied to "Transmission Color". It has been reported to NVIDIA.

  • barbultbarbult Posts: 24,245
    In any Iray shader, or only the OOT hair shader?
  • ArgleSWArgleSW Posts: 144

    I've only tried the default shader the OOT hair loads with. But I will try a different shader to see if it still crashes. 

  • barbult said:

    In any Iray shader, or only the OOT hair shader?

    I'm only aware of certain OOT hairs (shaders) at this moint.

  • Would anyone with the know-how make a script to kill that transmitted color map? Being able to automate the process on a per-case basis would save a lot of time, at least until this gets truly fixed.

  • Richard HaseltineRichard Haseltine Posts: 100,990
    edited January 2023

    second_technician_rimmer_9571136c47 said:

    Would anyone with the know-how make a script to kill that transmitted color map? Being able to automate the process on a per-case basis would save a lot of time, at least until this gets truly fixed.

    I think this sample http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/samples/material/deep_copy/start would cover most of what you need, in terms of techniques.

    Post edited by Richard Haseltine on
  • edited January 2023

    Annnd... it probably would if I spoke the language frownAlso this sample is, if I am getting it straight in my tiny skull, about copying materioals around. The task at hand is more like removing something from the surface settings. I can fix computers just fine but I don't speak Dazscriptian indecision

    Post edited by second_technician_rimmer_9571136c47 on
  • IceCrMnIceCrMn Posts: 2,129

    load OOT hair onto character just like you always have. No changes to this step.

    Select the OOT hair on the Scene pane.

    On the Surfaces pane.

    Click "ALL" on the top left side.

    on the top right side in the search box type

    transmitted color

    The only surface setting that is showing will now be the one you need.

    next to the color bar is a little box where images, maps can be placed.

    Click that and select "none".

    Delete words from search box so the rest of the surfaces show back up

    Done.

     

  • IceCrMn, that's what I manually do for now to get around the problem, yes :)

    I was wondering about a way to make that modification from a single-click perspective, with a DUF-like or DSA-like item that could be kept in the hair library. That way, it could be quickly called upon when loading this or that hair. It's just a workflow thing really. 

  • IceCrMnIceCrMn Posts: 2,129

    There are a few ways to handle the "one click" until this gets fixed.

    1. Save material presets for the colors you like and use the most.

    2. use notepad++ to batch remove the reference to the maps from the .duf files.

    and the easy mode fix with a slight inconvenience...

    3. go to the textures folder and delete them so DS can't find them. DS will complain it can't find them, just click the stop asking button.

    I don't have all the OOT hairs so can't check if that maps is reused in other map slots, it isn't on the one I use most.

    If it is on yours, then try one of the other options.

     

    I remove them manually. I'll be spending alot of time on the Surfaces pane with other items anyway, so it's not that big of a deal for me.

    When I save my scene or scene sub-set for later, the changes I made are saved. I won't need to remove those maps every time I load that scene.

  • DoctorJellybean said:

    The crash occurs in Iray and not Daz Studio when "Transmission Color" has a map applied. To prevent the crash, remove any map applied to "Transmission Color". It has been reported to NVIDIA.

    I truly wish I could hug you right now, going crazy with this problem of Daz crushing, I knew it was the shaders but cannot figure out what it was and your solved it all! Thank you so sooo much and thanks to anyone else in this forum for the precious help.

  • I wrote a short python program to solve this problem:

    import jsonimport reimport tkinter as tkfrom tkinter import filedialogimport gzipdef getFileName( **kwargs ):    '''    #    parent - the window to place the dialog on top of    #    title - the title of the window    #    initialdir - the directory that the dialog starts in    #    initialfile - the file selected upon opening of the dialog    #    filetypes - a sequence of (label, pattern) tuples "typeName {extension ?extensions ...?}, '*' wildcard is allowed    #    defaultextension - default extension to append to file (save dialogs)    #    multiple - when true, selection of multiple items is allowed    '''    root = tk.Tk()    root.withdraw()    return filedialog.askopenfilename( **kwargs )def removeTabsEtc( m ):    # print( m )    # return re.sub( r'[\r\n\t]*', '', m.group() )    return m.group().replace( '\t', '').replace( '\r', '').replace( '\n', ' ')def prettyPrint( dazObj ):    # print(dazObj)    x = json.dumps( dazObj, indent='\t', sort_keys=False )    x = x.replace( '":', '" :')    RE = re.compile( r'\[[a-zA-Z0-9,"\.\-\s\n\t\r]*?\]' ) # in almost everything included in [] (non-greedy) ...    return re.sub( RE, removeTabsEtc, x ) # ... tabs and newlines will be removed    # return xdef readDazZipFile( path ):    print( "reading: " + path )        try:        dazr = gzip.open( path, "rb" ).read()        return json.loads(dazr)    except gzip.BadGzipFile:        print( "this is not a zipped file - try to open directly" )        try:            dazr = open( path, "r" ).read()            return json.loads(dazr)        except:            print( "can't open file - seems not to be a daz file")            return Nonedef writeDazZipFile( dazObj, path ):    print( "writing to zipfile: " + path )    dazw = gzip.open( path, 'w')    orderedObj = {}    properties = [ "file_version", "asset_info", "geometry_library", "node_library", "uv_set_library",         "modifier_library", "image_library", "material_library", "scene" ]    for p in properties:        if p in dazObj:            orderedObj[p] = dazObj[p]    dazw.write( prettyPrint(orderedObj).encode('utf-8') )    dazw.close()path = getFileName( initialdir="S:/_DAZ_G3+8F/People/Genesis 8 Female/Hair/", filetypes=["DAZ-User-File {*.duf}"]  )dazObj = readDazZipFile( path )if "material_library" in dazObj:    for mat in dazObj["material_library"]:        if "extra" in mat:            for obj in mat["extra"]:                if obj["type"] == "studio_material_channels":                    if "channels" in obj:                        for ch in obj["channels"]:                            if ch["channel"]["id"] == "Transmitted Color":                                # obj["channels"].pop(ch) # seems not necessary                                passif "scene" in dazObj:    if "materials" in dazObj["scene"]:        for mat in dazObj["scene"]["materials"]:            if "extra" in mat:                for obj in mat["extra"]:                    if "type" in obj and obj["type"] == "studio_material_channels":                        for ch in obj["channels"]:                            if ch["channel"]["id"] == "Transmitted Color":                                if "image_file" in ch["channel"]:                                    ch["channel"]["image_file"] = None                                # obj["channels"].pop(ch) # radical solution, seemingly not necessarywriteDazZipFile( dazObj, path.replace(".duf", "+.duf") ) 

    Change the initialdir so that it points to your Daz Content where the OOT Hair .duf files are.

    Then start the python program. Choose the original .duf file; this will be loaded and a file with a "+" in the filename will be written into the same location. This file will cause no crashes (I hope so)..

     

  • Sorry, the python program is unreadable in this forum, so I try to attach it. Please rename it (replace .txt by .py) then it is a python 3 program.

    txt
    txt
    KillTransmittedColor.txt
    4K
  • Oooohh thanks! I'll test that asap :D

Sign In or Register to comment.