Daz Bridges Update!!!

DAZ_PeterDAZ_Peter Posts: 5
edited January 2022 in Daz Studio Discussion

It’s been a minute and wanted to jump on an give everyone a quick bridge update. 

Unfortunately, Sam is no longer working with us at Daz. We were very sad to see him go, but excited for his next chapter at EA.  Lucky for us, Sam is still very much invested in this project so you will see him around from time to time as he works on updates on his own. Even though he doesn’t work for us anymore, but he will definitely be a huge help in the community. 

All that being said, we’ve been a bit short staffed on the bridge team. We are working to remedy that through hiring and contractors. One of our contractors and Unity bridge extrodinar, Daniel Bui, has been working on a major update that will help us make and push out updates faster. Here is what he’s working on:

“We are working on a project to update the Daz Bridge projects so that they share a common source-code base. This will allow us to add features to the Bridges more quickly by making changes to the common base rather than modifying each Bridge individually. We’ll also be making this common base fully scriptable, so that developers and power-users can make custom export pipelines, or even add Daz Bridge support to other software.  Since this update involves major changes to the source-code of all the Daz Bridges, we’re also implementing a large Quality Assurance test system for the Bridges. This test system will help us deliver the best quality that we can for all future updates to the Daz Bridges. We are currently working on implementing the first stages of this project, and we hope to share our progress with you in the coming months.” 

Big things on the horizon! We will keep everyone updated on the progress and release date. We are also working to bring new people on to help us develop the bridges. If you or anyone you know is interested in working with us full time, feel free to reach out to us or leave a comment. 

Thank you to everyone for their continued involvement and passion for this project. Excited for what’s to come. Thanks, everyone! 

 

Post edited by DAZ_Peter on
«1

Comments

  • barbultbarbult Posts: 24,395
    edited January 2022

    It's so refreshing to see some honest and informative comments on Daz plans and progress. Thanks for participating in the Daz forum.

    Generally, forum moderators remove email addresses from the forum, though.

    Post edited by barbult on
  • butaixianranbutaixianran Posts: 161
    edited January 2022

    If anyone need it, I fixed blender bridge for blender 3.0.

    https://www.daz3d.com/forums/discussion/544881/daz-to-blender-bridge-for-blender-3-0-fix

     

    When I reading the python code of blender bridge. I feel it is not good.

    No comments in the code, so no one can help even they want.

     

    And it forgot to handle scale data when importing poses, which make all poses' rotation data has been covered by scale data into (1,1,1) .

    This bug means that developer released a version without any basic test.

     

    And it created a json for env items' location and rotation, but never used.

    I fixed all these by the way. And feel this blender bridge do need to be re-coded in a new way by a new guy.

     

    I think the best way for all bridges is reading .duf file directly. .duf file is the base for all bridges. Just like a good fbx file is the base for character creator's bridges.

     

    So, what we need is a .duf file helper package can be used by python and c++. Then developers from internet can take care of the bridge part for Daz. Daz just need to list all those third part bridges on a webpage.

    Post edited by butaixianran on
  • wintoonswintoons Posts: 375

    That's great news to hear! Looking forward to it. I hope there will be plans for Omniverse bridge support as well. 
    (I hope I'm not getting into deep water here LOL) :))

  • nonesuch00nonesuch00 Posts: 18,169

    Daniel Bui is good but it sounds as if we have a 6 month wait until release of his merge & upgrades of those export addons.  

  • Good for Sam, he was a really nice guy from the couple of times I spoke with him. I'm also really excited to hear about the updates coming in the future. Hopefully there's still a plan to implement in the blender bridge like you have in the Maya bridge to export animation from blender back into daz. I'm in an animation class right now and have access to Maya and have been using that feature and it is absolutely amazing how the IK transfers perfectly. Being able to seamlessly make a character walk down a ladder and bring it into daz easily was a wonderful feeling and I'm sure folks would get a use out of it. Glad to hear this is still a project as a whole that Daz is keeping going, thanks for the update. 

  • gaveitatrygaveitatry Posts: 2
    edited February 2022

    DAZ_Peter said:

    It’s been a minute and wanted to jump on an give everyone a quick bridge update. 

    Unfortunately, Sam is no longer working with us at Daz. We were very sad to see him go, but excited for his next chapter at EA.  Lucky for us, Sam is still very much invested in this project so you will see him around from time to time as he works on updates on his own. Even though he doesn’t work for us anymore, but he will definitely be a huge help in the community. 

    All that being said, we’ve been a bit short staffed on the bridge team. We are working to remedy that through hiring and contractors. One of our contractors and Unity bridge extrodinar, Daniel Bui, has been working on a major update that will help us make and push out updates faster. Here is what he’s working on:

    “We are working on a project to update the Daz Bridge projects so that they share a common source-code base. This will allow us to add features to the Bridges more quickly by making changes to the common base rather than modifying each Bridge individually. We’ll also be making this common base fully scriptable, so that developers and power-users can make custom export pipelines, or even add Daz Bridge support to other software.  Since this update involves major changes to the source-code of all the Daz Bridges, we’re also implementing a large Quality Assurance test system for the Bridges. This test system will help us deliver the best quality that we can for all future updates to the Daz Bridges. We are currently working on implementing the first stages of this project, and we hope to share our progress with you in the coming months.” 

    Big things on the horizon! We will keep everyone updated on the progress and release date. We are also working to bring new people on to help us develop the bridges. If you or anyone you know is interested in working with us full time, feel free to reach out to us or leave a comment. 

    Thank you to everyone for their continued involvement and passion for this project. Excited for what’s to come. Thanks, everyone! 

     

    What is the purpose of the DazToUnreal intermediary folder, why does it keep extra copies of everything, is there a benefit to not deleting those extra copies, and is there a way to have those extra copies auto delete after the bridge export into the open Unreal project has been completed?

    When using the DazToUnity bridge, it exports directly into the Unity project's Assets folder.  You are actually not allowed to export it in any other location on your hard drives.  It has to be the project's Assets folder.  And it is a bit inconvenient because you always have to select the right path manually.  And anytime you start a new project with a different name, that path has to be changed once again.

    When using the DaztoUnreal bridge, it is more convenient.  The export goes directly to a DazToUnreal intermediate folder, or whatever you want to name that folder.  And you never have to change this path.  Once it goes to that intermediate folder it automatically goes into whatever project you have open in Unreal.  So it doesn't matter what project you are working on or what that project name is, the export will go directly into that project without you having to adjust or change anything.  However there is one weird thing about it all.  Once it is in your project folder, the bridge leaves behind a copy of the export in the intermediate folder.  I know that I can safely delete that copy because when I do, the project still has the export even after an Unreal editor restart.  What is the purpose of the extra copies in the intermediate folder?  I feel like if I make hundreds of exports, the extra copies will start taking up disk space.  Is there a benefit to having extra copies left behind in the intermediate folder?  Or should I just go ahead and delete them on a regular basis?  Also, is there a way to have them auto delete after they have already been imported into the Unreal projects?

    Post edited by gaveitatry on
  • gaveitatry, the reason I collect everything into the intermediate folder is so if you want to change something like one of the source textures (or even the FBX) it's easy to find, modify, and re-import.  It's safe to delete them if you're not using them.

  • PadonePadone Posts: 3,730
    edited February 2022

    Just my own opinion and do not want to be bad or negative but just constructive.

    1. The original daz-to-blender was hard-coded on the G8 figures and it worked fine enough for its purpose. But failed to handle everything else because of the hard-coding to G8.

    2. The update by Sam removed the hard-coding so the bridge could handle a generic duf file. But it also introduced limitations over the original bridge for G8 figures. Because it was "difficult" to get all the features without the hard-coding.

    3. Now Daniel Bui wants to introduce an even more high-level abstract layer. So all the bridges start from the same front-end. Then the back-end for each platform will handle the fixes and features needed for the specific platform. I do expect this to fail because of the added complexity. But good luck with it.

    4. In my opinion the only way to go is to have at least one expert for each platform to support. Then code separated projects, also hard-coding to figures when needed. The key point is, both the overall structure and the code for every project have to be as simple as possible. Without any added abstract layer or complexity. Also because the platforms do evolve fast in time, and you need to be up to date with the needed changes.

    5. As for blender the best bridge you can get is diffeomorphic by Thomas. That said, if you need help with materials conversion feel free to contact me I'll be available. As I was for Sam.

    edit. I also fully agree with the comments by @butaixianran.

    Post edited by Padone on
  • RuphussRuphuss Posts: 2,631

    why not posting this in the bridge forums itself

    i never read this forum: just the unreal one

    just copy and paste

  • danielbui78danielbui78 Posts: 333
    edited February 2022

    Thank you, @Daz_Peter and everyone for your kind words!

     

    Padone said:

    4. In my opinion the only way to go is to have at least one expert for each platform to support. Then code separated projects, also hard-coding to figures when needed. The key point is, both the overall structure and the code for every project have to be as simple as possible. Without any added abstract layer or complexity. Also because the platforms do evolve fast in time, and you need to be up to date with the needed changes.

    I've been trying to focus more on doing the work rather than talking about it, but I think I should quickly address this misconception: my current project will not add any more complexity or abstraction than what is already there.  Every Daz Bridge including Daz-To-Blender, transfers data from Daz Studio to its destination software via exporting to an FBX file and a JSON formatted file containing meta-data specific to Daz Studio.  Typically, programmers like to put code that is re-used many times into a function which they can call rather than copy-pasting the same code multiple times in different places.  This is exactly what I am doing with this project.  Blender-specific code will remain in the Daz-To-Blender plugin, and the same with other bridges.  However, even a rudimentary diff of the source code of the Blender, Maya and C4D should reveal to you that more than 90% of the source code is line for line exactly the same -- which goes back to supporting my position that merging the bridges to use a common library will actually simplify things.

    Hope that clears up any confusion or misunderstanding!

    Post edited by danielbui78 on
  • PadonePadone Posts: 3,730
    edited February 2022

    Thank you Daniel @danielbui78 for explaining this. That sounds like the duf file helper package suggested by @butaixianran. That could also be useful to other developers who want to contribute if it's well documented.

    edit. p.s. Don't want to step on anything. But from our experience with diffeomorphic it is way better to abandon that fbx thing, that Thomas also used initailly, and bring on things directly from the duf files, as also suggested by @butaixianran. This is just a note in the hope it can be useful.

    Post edited by Padone on
  • spmwcspmwc Posts: 124

    Hello Everyone,

    This may not be the right place to ask this question but I have looked every where and cannot find the answer. I have been away from DAZ Studio for awhile and came back to find that low and behold there is now a bridge to Blender. Fantastic!! I went and downloaded the newest Version of Daz Studio 4.16 and Blender 3.0 but found that the Blender Bridge is not compatible with these versions. I have download Blender 2.80.  Can anyone tell me if the previous version of DAZ studio 4.12 is still accessible so I can use the Bridge until there is an update for DAZ Version 4.16.

    Greatly appreciate any help!!!

  • LeanaLeana Posts: 11,783

    Older versions of DS are not available for download.

    You can try contacting Daz support to ask them if they still have a copy they could give you, but there's no guarantee they will.
     

  • spmwc said:

    Hello Everyone,

    This may not be the right place to ask this question but I have looked every where and cannot find the answer. I have been away from DAZ Studio for awhile and came back to find that low and behold there is now a bridge to Blender. Fantastic!! I went and downloaded the newest Version of Daz Studio 4.16 and Blender 3.0 but found that the Blender Bridge is not compatible with these versions. I have download Blender 2.80.  Can anyone tell me if the previous version of DAZ studio 4.12 is still accessible so I can use the Bridge until there is an update for DAZ Version 4.16.

    Greatly appreciate any help!!!

    Use Diffeomorphic's daz importer for blender

    https://diffeomorphic.blogspot.com/p/daz-importer-version-16.html ;

     

  • butaixianranbutaixianran Posts: 161
    edited February 2022

    I can understand danielbui78's feeling about 90% code can be reusable.  But the truth is, it's not 90%, it's 100%. 

    Think about this, why you feel 90% code can be reuseable? And why 10% can't ? Because those bridges are using an obj file, a fbx file and a json file together. So, bridge's developer has to combine those things in every bridge, and setting thinging just for this bridge. That's the reason of this 90% and 10%.

     

    But, why do we need it this way? We don't.

    Think about this: What if Daz Studio can export a scene as gltf 2.0 file? Will we still need a bridge anymore? We don't! We can just use this file in any other 3D software we want, without any birdge!

     

    So, why we need a bridge anyway? We just need to convert this Daz Studio's json file(.duf), into gltf 2.0 which every other 3D tools supported. Then, no more bridge is needed.  

     

     

    A bridge is only needed, if you are writing a live link. But for most cases, live link is not needed at all. We just need this scene can be exported and imported to other 3D tools. In that case, we don't need a bridge at all, we just need a 3D file which support PBR and supported by all 3D tools.

     

    Post edited by butaixianran on
  • PadonePadone Posts: 3,730
    edited February 2022

    @butaixianran @danielbui78

    In my experience with diffeomorphic it is two different things to export for blender and to export for a game engine. As a matter of fact blender can keep most genesis features, while a game engine can't. Namely a game engine has issues with iray materials and LIEs and decals, other than geografts and shells and HD morphs, other than genesis actor morphs aka morphing armatures, that's armatures that animate the rest pose. All of those features need to be "baked" or "simplified" for the game engine. While they work fine in blender with diffeomorphic.

    So changing fbx with gltf is not the point. Though gltf may be a better choice as a modern format. But it is simpler and more efficient to get information or import directly from the daz duf file, without using an intermediate standard format that may not fit for some features. That's what diffeomorphic does.

    Post edited by Padone on
  • butaixianranbutaixianran Posts: 161
    edited February 2022

    Padone said:

    @butaixianran @danielbui78

    In my experience with diffeomorphic it is two different things to export for blender and to export for a game engine. As a matter of fact blender can keep most genesis features, while a game engine can't. Namely a game engine has issues with iray materials and LIEs and decals, other than geografts and shells and HD morphs, other than genesis actor morphs aka morphing armatures, that's armatures that animate the rest pose. All of those features need to be "baked" or "simplified" for the game engine. While they work fine in blender with diffeomorphic.

    So changing fbx with gltf is not the point. Though gltf may be a better choice as a modern format. But it is simpler and more efficient to get information or import directly from the daz duf file, without using an intermediate standard format that may not fit for some features. That's what diffeomorphic does.

    There is not much big difference between game engine and blender. See what iclone does: export a fbx file(we should use gltf for PBR) with all maps, which can be used in game engine. Then all 3D tools can use it. "HD" or any other difference, is just an option checkbox when exporting.

    Developer can create this exporter with in Daz Studio or just by converting .duf file.  It doesn't matter. What matter is: only develop it once and all 3D tools can use it, not just blender. That can only be done with a genernal 3D file format.

    Basicly, it looks like a copy of diffeomorphic's daz importer, but write everything into a 3D file.

     

     

    Post edited by butaixianran on
  • so, I did a little research and find 2 solution for this:

    * write a daz script to export a gltf file. I checked script's API, this can be done. But it need a lot of work.

     

    * or, just fix and change the official blender bridge, make it only uses Principled BSDF shader for material, without any additional node. In this way, blender can export this imported model to any 3d format correctly. So blender becomes into the daz converter we need.

     

    l'm gonna try the second one first.

     

    FYI, the reason we still need this even we already have diff daz importer for blender, is that, it changes your model a lot, then you can not export it from blender any more. 

  • PadonePadone Posts: 3,730

    @butaixianran If you have suggestions to improve diffeomorphic please feel free to contribute if you like, in the blender forum or at the depository. A "game export" addon would be useful and Thomas is usually avalable to help people who wants to contribute. I can help with the "pure" principled materials if needed.

    Actually diffeomorphic can already provide "pure" principled materials apart for dual lobe that's added with bsdf nodes.

     

  • butaixianranbutaixianran Posts: 161
    edited February 2022

    Diffeomorphic's importer changed too many things on the model. It is good, at the "reading from .duf file" part, but not so good when exporting from blender. Material is one thing, morph is a problem too. 

    Any way, I think I can make this done with official Bridge in a week, I just finished the morph part.

     

    Post edited by butaixianran on
  • butaixianranbutaixianran Posts: 161
    edited May 2022

    It's done. I updated the official Daz To Blender Bridge, now Daz model can be exported from Blender with morphs and textures, so you can use blender as a Daz Bridge to other 3D tools.

    Check here:

    https://github.com/butaixianran/DazToBlender

     

    Update Log:

    * Merge eyelashes into body mesh, so you can export morphs from blender to other 3D tools.
    * Re-write material function, now it converts Daz's shader to Principled BSDF shader, so you can export all textures when exporting daz model from blender.

    * Also convert bump map to normal map if needed.

     

    Check the full updating list at github project's readme.

     

    Post edited by butaixianran on
  • PadonePadone Posts: 3,730
    edited February 2022

    @butaixianran Just tested a little. I like your project because it is extremely clean. Though no material conversion is done all the textures are preserved and the user can easily fix the principled shader.

    One minor "bug" I noticed is that the tool leaves the genesis figure at base resolution in the daz scene after exporting. If this is on purpose then it is better to save the scene with another name before exporting, to preserve the original scene.

    edit. Seems to have issues with geografts. That is, the geograft is merged with the figure, then it is also exported as standalone. So the user has to fix by hand both the geograft geometry and materials. But I suppose this is on purpose.

    Post edited by Padone on
  • PaintboxPaintbox Posts: 1,633

    Excellent work Butaixianran! Going to try this later!

  • nonesuch00nonesuch00 Posts: 18,169

    butaixianran said:

    It's done. I updated the official Daz To Blender Bridge, now Daz model can be exported from Blender with morphs and textures, so you can use blender as a Daz Bridge to other 3D tools.

    Check here:

    https://github.com/butaixianran/DazToBlender

     

    Update Log:

    * Merge eyelashes into body mesh, so you can export morphs from blender to other 3D tools.
    * Re-write material function, now it converts Daz's shader to Principled BSDF shader, so you can export all textures when exporting daz model from blender.

    -----

    But, there are 2 problems with Blender's gltf exporter:

    * It doesn't convert Bump texture to normal map, it just put bump texture into normal map channel. 

    * It drops specular texture, even gltf support it.

     

    The real solution is updating blender's gltf exporter. I reported issues to them, but I don't think they gonna do anything about it.

    Thanks, very much!

  • danielbui78danielbui78 Posts: 333
    edited February 2022

    butaixianran said:

    It's done. I updated the official Daz To Blender Bridge, now Daz model can be exported from Blender with morphs and textures, so you can use blender as a Daz Bridge to other 3D tools.

    Check here:

    https://github.com/butaixianran/DazToBlender

     

    Update Log:

    * Merge eyelashes into body mesh, so you can export morphs from blender to other 3D tools.
    * Re-write material function, now it converts Daz's shader to Principled BSDF shader, so you can export all textures when exporting daz model from blender.

    -----

    But, there are 2 problems with Blender's gltf exporter:

    * It doesn't convert Bump texture to normal map, it just put bump texture into normal map channel. 

    * It drops specular texture, even gltf support it.

     

    The real solution is updating blender's gltf exporter. I reported issues to them, but I don't think they gonna do anything about it.

     

    Awesome work.  FYI, the new version of the Daz Bridge can (optionally) automatically generate normal maps from height maps during the export process from Daz Studio.

     

    Post edited by danielbui78 on
  • danielbui78 said:

    Awesome work.  FYI, the new version of the Daz Bridge can (optionally) automatically generate normal maps from height maps during the export process from Daz Studio.

     

     

    What you mean "new version of the Daz Bridge"? You mean the one you're developing with? Because there is no new version of official blender bridge for about half year.

     

  • butaixianranbutaixianran Posts: 161
    edited February 2022

    Padone said:

    @butaixianran Just tested a little. I like your project because it is extremely clean. Though no material conversion is done all the textures are preserved and the user can easily fix the principled shader.

    One minor "bug" I noticed is that the tool leaves the genesis figure at base resolution in the daz scene after exporting. If this is on purpose then it is better to save the scene with another name before exporting, to preserve the original scene.

    edit. Seems to have issues with geografts. That is, the geograft is merged with the figure, then it is also exported as standalone. So the user has to fix by hand both the geograft geometry and materials. But I suppose this is on purpose.

    I leave geografts part untouched, it could be an issue with official bridge. The same about base resolution.

     

    About texture conversion, if there is any node between texture node and Principled shader node, Blender's fbx exporter won't export this texture anymore.

    So, to make Blender as a Daz Exporter, I can not add any node between texture node and Principled Shader node. 

     

    There are 2 solutions for this:

    * Give up fbx format. But there are still many people use it. So it is not a good time to give up fbx, not yet.

    * Or, just Do not use "Glossy Color" and "Top Coat Color" of Daz's iray material.  Principled shader and gltf standard don't have specular color and clearcoat color, they are always white.

     

    I may add a checkbox for that later, after I find a solution for Bump map to Normal map. If you know how to convert Bump map to Normal map in blender addon without installing matplotlib or PIL, please let me know, need help at this part.

     

     

     

     

    Post edited by butaixianran on
  • PadonePadone Posts: 3,730
    edited February 2022

    @butaixianran Sorry I'm not a developer, not anymore from a long time anyway so I can't help with the code.

    As for materials I wasn't talking about textures, but about material conversion that's a different story. Apart the principled limits that you mentioned. That is, you can have two models with the same textures but very different materials. Below a simple example with a green translucency that's not exported correctly.

    But it's fine for a clean export. Once the user has the textures he can easily fix the principled shader by hand if needed.

    materials.jpg
    238 x 356 - 16K
    Post edited by Padone on
  • butaixianranbutaixianran Posts: 161
    edited February 2022

    Padone said:

    @butaixianran Sorry I'm not a developer, not anymore from a long time anyway so I can't help with the code.

    As for materials I wasn't talking about textures, but about material conversion that's a different story. Apart the principled limits that you mentioned. That is, you can have two models with the same textures but very different materials. Below a simple example with a green translucency that's not exported correctly.

    But it's fine for a clean export. Once the user has the textures he can easily fix the principled shader by hand if needed.

     

    That's exactly what I'm talking about. To reach the conversion in your example, you need to add a color adjustment node between texture node and Principled shader node. For example, a color mix node, to mix green color with texture node.

    But once you add a node like that, you can not export this texture from blender into fbx anymore. Blender's fbx exporter will drop all textures unless it is directly linked to Principled shader node.

     

    By the way, translucency color is handled, but translucency weight is converted like this:

    Principled Shader's Subsurface = Translucency Weight * 0.1

    Because blender will add a strong blur to subsurface material. If I set "Subsurface = Translucency Weight", then you can not see your model clearly.

     

     

    Post edited by butaixianran on
  • butaixianranbutaixianran Posts: 161
    edited February 2022

    Updated official Blender Bridge, with 14 new features and 3 bug fixing:

    https://github.com/butaixianran/DazToBlender

    Key new features:

    * Importing Pose by selecting Tip Image file

    * Importing animation from .duf file, animation will be on a new NLA tracker as a clip

    * Merge eyelashes into body mesh, so you can export morphs from blender to other 3D tools.

    * Set position and rotation for env props like lights.

    * Re-write material function, now it converts Daz's shader to Principled BSDF shader. So you can export all textures from blender.

    * Convert Bump to Normal Map when importing, if you want

    * A lot of new options for importing

     

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