Adding to Cart…
Licensing Agreement | Terms of Service | Privacy Policy | EULA
© 2024 Daz Productions Inc. All Rights Reserved.You currently have no notifications.
Licensing Agreement | Terms of Service | Privacy Policy | EULA
© 2024 Daz Productions Inc. All Rights Reserved.
Comments
@marble
First things first... did it work for you? I have only tested it with my own scene files; other scene files may have special cases that I haven't encountered.
In most instances, Object#Surface is more human readable that Material-1 :) Haven't you ever looks at a material slot, and wondered what the heck it was? In addition, after you've imported the Alembic objects, one of the scripts created in the scripts directory will rename all the materials to this Object#Surface format. So now, if you have to export again, you can select the Object#Surface method which avoids parsing the .duf file (I have some that take 3 minutes), and have the materials still match for subsequent imports. The idea, and something that I'm still working on to make as easy as possible, is to convert materials only once and store them in another .blend file, a compendium of all one's converted materials ready to be automatically appended/linked.
So this is how I did it this time (and yes, now I have a figure with materials):
1. In DAZ Studio, load G8F and set her mesh resolution to SubD level 2.
2. Save the DS Scene to a specified folder.
3. Use the Diffeo export menu to export the .dbz file to the same specified folder.
4. Bring up your Alembic Exporter and ...
5. Set the Default Directory to the above specified folder.
6. In the Scaling Tab, set to Current SubD Level.
7. In the Materials tab, check "Write Textures" and "Diffeomorphic".
8. Export.
Now in Blender ...
1. Use the Diffeo DAZ Importer to import the Diffeo exported G8F from step 3 (above).
2. File > Import > Alembic = blender_houdini.abc
Now I have two G8F figures in my Blender Viewport, one overlaying the other. I assume I can delete the diffeo figure but what about those orphans if I do? Do I purge them too? How do I save the materials so that I don't have to do this every time I want to import the same figure (in different poses, clothers, etc.)?
Here's my G8F rendered in Blender using Eevee. I note that the edges suggest that SubD is not working?
Here's the wire frame comparison ...
Please upgrade immediately. I found a bug where using a base filename with a trailing slash will cause Daz Studio to freeze. It is present in all versions. Sorry, I am not a Windows programmer and I don't know how to set up unit tests to catch these sort of things and am not in the mood to learn how.
Please Upgrade to version 1.11.1.0
Happens to the best of 'em :)
@marble
You are absolutely right. It seems that when the SubDivision Level and the Render SubD Level (minimum) are different, Daz Studio reports back the unsubdivided mesh., or rather, the code is doing something to provoke this. I'll investigate, but you can work around it by setting both to 2.
Thanks for finding and reporting this bug.
@marble
Yes, you can delete the collection with the Diffeo model in it. This won't create any material orphans because the Alembic model will be using its materials, but it will create mesh orphans that can be purged.
To do this automatically in the future, and before I have the other scripts done, you can run the rename_materials.py script by making a window into a text editor and opening the script. This will rename all the materials to the Object#Surface convention. If you want to close the .blend file and reopen it later, you'll need to add a fake user to all the materials or they'll be gone when you reload it (come to think of it, I'll update the script to do this for you). Now, you can select the Object#Surface naming convention when you export, and you won't need to import with Diffeo anymore.
@marble
This version will produce a renaming script that also creates a fake user for the converted materials so you won't lose them if you close the .blend file with nothing referencing the materials.
Version 1.12.0.0
Great customer service! :)
So I downloaded 1.12 and tried it with the Object#Surface option checked along with Write Texture Maps. However, I'm back to the white figure in my viewport again. Am I misunderstanding - when you say I can use Object#Surface do you mean only after I have been through the Diffeo import first?
Additionally, the low-poly edges are still visible but something strange has happened. It now looks like I have two versions (low-poly and HD) exported at the same time. I hope you can see that from this wireframe from Blender.
@TheMysteryIsThePoint
tested with daz studio 4.11.0.383, blender 2.83.4, diffeo commit 92ce960 (latest today), alembic 1.12.0.0
Sorry for the out of date studio version but I don't feel like installing 4.12 until they fix the animation bugs. I used 4.12.0.86 before but it seems it got corrupted in my backup and can't get it back from the daz support yet. I guess this shouldn't affect the alembic exporter if it just reads geometry from the viewport.
issue 1 subd. As already reported by @marble the subdivision level is ignored unless the viewport subd is the same as the render subd. If we set viewport = render then it works fine.
issue 2 diffeo materials. I exported a simple G8F animation. As for the diffeo material option there are some frames where the textures are scrambled. While other frames work fine. Now this is odd since the materials should be the same for all the frames. That is, daz studio doesn't support animated materials so I guess the alembic exporter doesn't save different materials for every frame.
Then the animation itself is imported fine. I just have to set the blender fps the same as daz but this is expected. Test scene included.
edit. I can't confirm the low-poly + hd issue reported by @marble. As for subd it seems to work fine here if I set viewport = render. I don't know may be he makes some confusion with the diffeo mesh.
Here's a couple of other views that might show what I mean better ...
You are indeed correct in that:
In addition, to best accommodate this use case where a user wants to use 'Blender as a render engine',
I believe that the followings should be minimised in the Daz Alembic Exporter:
To best achieve this, I was thinking of the following:
Would like to know whether you are interested in satisfying this use case and what you think about this proposal if you are interested.
Otherwise, I was looking at implementing this myself once you open source your exporter.
@marble All of those pics look like the Diffeo model superimposed on the Alembic one.
But that time I did not export the diffeo model. I'll try it again now just to confirm that.
BTW, I'm in New Zealand so it is 8:45 AM here. We have just started a temporary lockdown again so I'll have a bit more time to play today.
@marble
You only need to select Write Texture Maps if you want the raw maps that Daz is using, to create your own node setup. You probably don't need these.
But the material slots only refer to anything if there is a material with the same name, either because you imported them via Diffeo, or if you ran the rename script, packed them into the blend file, saved the blend file, and re-imported Alembic with the Object#Surface method. Otherwise, those slot names, whether you renamed them or not, refer to materials that do not exist. You either have to have imported them, or saved/reloaded them.
Just had a thought - my character has geografts with shells - would that create the second mesh?
OK - I thought that might be the problem. So I need to import the character using the DAZ Importer first, then save those textures somewhere (I don't yet know how to do this), then start over and import the character again using your Alembic exporter? Do I have the gist of it?
@Padone
Thank you for the test scene. I'll investigate this as well. I too am a little confused because the materials are of course the same for every frame.
@JClave
I may have to leave that one to you, with me as a resource. I think @Padone's bug is going to be an interesting one. I just need to get to a stable version before I can deal with more hands in the code, I'm sure you understand. It should not be long.
OK - I seem to be getting an idea of what is happening with the duplicate mesh problem. When I have a character with a geograft (in this case the Meipe GP graft) I end up with two full figures in Blender. If I separate them and click on one I can see the character is selected in the Outliner. If I click on the other, I see the geograft shell is selected.
I still have not figured out why sometimes I get a SubD model plus a Base resolution model and another time I get 2xSubd models.
Here's a screenshot to illustrate ...
I think that Diffeo has an option to merge the grafts to get around that problem.
@marble
You can click on the material surfaces in Blender to find out what surfaces to ignore in the Alembic export.
Well, I've just spent an hour trying different combinations of ignoring, hiding, Subd levels, etc., etc., and I'm still getting multiple meshes with geografts and that's before I attempt to figure out how to get materials into Blender. I think I'm just going to have to give up on Blender for now - it has me totally confused, whether I try Alembic or Diffeomorphic.
@marble As I understand it @TheMysteryIsThePoint didn't deal with shells and grafts yet, so some issues are expected there. The low-poly cage you see is probably the shell. Then diffeo doesn't import the shell geometry and implements it as an extra material layer. This is an optimization for animation but may cause issues with alembic, I mean if not handled correctly.
p.s. As for the alembic workflow it's just import the diffeo scene then import the alembic animation then delete the diffeo scene. You don't need to export textures unless you have special needs, the daz textures will be used.
Thanks for the explanation. My confusion arises from the fact that I don't really get the whole shell vs material vs mesh thing so I'm at a loss to understand why I see multiple figures superimposed on each other when they come into Blender. Right now I'm having another stab at understanding the various intricacies of Diffeomorphic. There are options there that I don't get either - such as when to select BSDF or Principled and what difference it may make. Plus I have problems posing the figure because of the lag in moving a bone that I don't have in DAZ Studio. Oh, just so many things I need to get a handle on.
@marble For an easy workflow just use the diffeo default values if you don't know what they mean. But I'd advice you to get at least the basics of the blender nodes. As for the viewport lag you can use the simplify panel in blender, that's similar to the scene optimizer addon in daz studio as for features.
Doh, now that you show me that I realise I've been told that before. Old age can be annoying.
As for the node system - I keep plugging away at YouTube videos and I get the whole concept but it will take practice. I'm more comfortable with the Pricipled node because it looks more like the IRay surfaces tab in DAZ Studio and I can fiddle with sliders. I'm also understanding how things like bump and Normal map nodes link in but don't mention math nodes or I'll run away shaking my head. ;)
@marble Well then the bsdf option means the plugin will use bsdf nodes and the principled option means the plugin will use the principled node. Same for sss that will use the sss node vs volumetric that will use the volume nodes. Then automaterial will override the user choice when necessary to get the iray properties.
Right now Thomas is working on a new nodes setup to join cycles and eevee (that I don't like too much). So be sure to get the latest version with bug fixes.
https://bitbucket.org/Diffeomorphic/import_daz/issues/154/material-issues
Is there a way to get the HD version over yet or are we back to baking normals?