Diffeomorphic performance
I have been messing with Diffeomorphic for quite a long time. So it's not like I just picked it up yesterday. However, it isn't till recently I have been getting usable results with it. Mostly due to a lack of time to mess with things as sometimes you have to just brute force muck with it till it works. My problem now is poor performance in the viewport with Blender. Even after removing all the SubDiv modifiers and disabling Drivers it's a slide show. I know my system specs are not the problem. Ryzen 9 3950x / 32GB of RAM@3200 / RTX3080 12GB All programs run off SSD's (so to speak), Spinning Rust is mass storage only. My rig makes rendering in Blender fantastic. But posing is a nightmare and makes the idea of eventually animating a pipe dream.
I'm just wondering what anyone using Diffeomorphic is doing in the way of performance because from my experience it's so slow it's unusable. I've considered making a proxy mesh and using that to do block outs and ect. but feels a bit overkill esp if I am removing the Subdiv modifiers. If I was applying and going for extremely hi-res meshes I could understand.
Anyway. Just wondering what other people are doing that I may be missing to improve performance. Best I get is shaded (no textures) mode with shadows turned off.
Comments
It depends what you have on the scene since the viewport renders everything. For small scenes with a few figures I just use simplify and everything is smooth. For HD figures use multires with viweport subd to zero, that's the default in the latest versions. For large scenes use collections to hide what you don't need for animation. For example if you're animating two friends at the table you can hide the room until rendering.
note. important. Of course be sure that the textures fit the vram, since daz assets often use huge textures not optimized for animation. Always check the task manager for vram usage. You may need to resize textures in the blender viewport preferences. Be aware that this will crash blender 3.4.1 so get a daily build or wait for 3.4.2 or use 3.3.2.
Or use solid mode for the viewport shading so that you don't display textures.
https://bitbucket.org/Diffeomorphic/import_daz/issues/1338/blender-341-crashes-when-rendering-g9-with
note. important. These are not issues with blender or diffeomorphic itself though but rather limits with the daz assets. I mean whatever method you use to import daz assets in blender they are not optimized for animation. This is why it is important to avoid HD figures and 8K textures when getting items from the shop, especially G9 and HD figures and environments are most cumbersome and do not fit animation.
I have two versions of the character saved from Daz, one fully clothed and one with no clothing or hair. I bring the one with nothing into blender and turn off the subD and there is no lag because it's just the character that blender is dealing with. Then when I'm done, I save it and open a new file and bring in the fully clothed character, append the rig from the animated version and assign that animation to the version I want to render. You can also playblast the viewport much quicker without any clothing or hair.
Yes this is my method Also.
I wish I was talking about a scene at this point. Right now it's a struggle with only a single non-HD G8 with Geograft and only the necessary morphs for posing and the face stuff.
This is a good one. I did a fresh install of the Diffeo, and Blender 3.3.1 LTS not too long ago and completely forgot about the texture sizes. I do need to check that one. Blender 3.4.1 has been a problem for me with diffeo in general. Lots of instability. So I've just been sticking with LTS. Which as you mentioned in your last point isn't really a problem with Diffeo or Blender.
This is kind of what I meant by using a proxy mesh. Only the way I was going to about it is to just make a copy of the figure in Blender. Strip it to nothing but the mesh, including materials. Separate the body parts, and parent them to their respective bones on the rig. This is just how I was taught so it's where my brain went. But I like your Idea of appending the animated rig and copying over the animation. I'm gonna stick a pin in that one for sure.
Thanks for all the input guys! Definitely got my wheels turning.
That's not possible unless your specific figure use 8K textures that don't fit the vram. Use simplify and resize textures in the viewport settings. Also try solid mode instead of material preview. Let us know how it goes.
p.s. There are some hairs in the shop which can be a resource bogger because they use huge textures and geometry, so pay attention to them. You can hide the hair and check the difference.
https://bitbucket.org/Diffeomorphic/import_daz/issues/377/how-to-resize-textures-with-eevee
Just came to check in and funny enough after my last post I figured out the problem I was having with the file at the time I started this post was in fact a hair asset. I hadn't noticed my poly count was stupid high. As I started looking at the different parts, sure enough, the hair was over 1 million on its own. I didn't even bother looking at the texture size at that point. I like highpoly big texture just as much as anyone else, but that's just out of control. So I found a replacement that looks just as good and is more efficient clocking in at around 60k. I always forget that Daz polycounts can get absolutely out of control sometimes. Now that specific figure is back in line with what I expected.
Yes I find most daz hairs plain stupid brute force stone age assets as of how they are made. Now daz studio has fiber support but most PAs just ignore it and go on with transmapped resource boggers. There's also a marvelous hair tool for blender that's easy to use and may cover most common hair needs without the need to import from daz.
https://blendermarket.com/products/hair-library
https://bartoszstyperek.gumroad.com/l/hairtool
The old hair particle system in Blender is pretty bad as well... I suspect once the Blender devs finish the Python API for the new hair curve object type, there will be a lot of hair converters, and Blender tools will become much more sophisticated. Currently, through the API you can manipulate existing hair curve objects, but you cannot actually create one. But I've seen it on the dev blog; they'll get to it eventually.
Yeah, I messed with the old hair system for about half a day and just gave up on it. Was more trouble than it was worth. The one they've been bragging about for 3.4.1 caught my eye, but 3.4.1 has been so crashy for me I'm sticking with 3.3.1 LTS for now.
Those addons look neat though! However, If I reeeeeeeeeeeeeally have to I'll just make it myself. I'm just lazy. lol
Is there a way with Diffeomorphic to export the morphs? I tried with HD, but doesn't seem to do it..
You have to go with morph loader as usual.
Could you point me to a resource for that ? I didn't see that option in the tutorial I saw...
in daz studio: edit > figure > morph loader
What was the problem?
I can do it faster with geometry.
Ah okay. I have started using the new hair system this monday, it is fun, 3.4.1 here, no crashes till now. Now I own a braided hairy default cube ;p
(using it in combination with medusa hair nodes and hair proxy)
Yeah, the crash I'm having has to do with texture resizing for the viewport. if you let blender automatically downsize textures for the viewport it crashes Blender as soon as you try to use Eevee. So I've been sticking with LTS. The fix was submitted a while back just waiting on a release that includes it.... whenever that happens. lol