Converted Studio Scene Memory Usage For Cycles Render
brainmuffin
Posts: 1,204
I've noticed that scenes converted into Blender use at least 2-3 times as much memory when rendering via Cycles as compared to an Iray render in Studio. I've used Diffeo to convert the scene.
Is this normal? When I move from Studio to Blender, I'm also switching from macOS to Linux.
Comments
You mean VRAM? All the tests I have done so far I have had to use the texture simplify to get it to fin in VRAM. The upside, I don't really see a difference in quality when I have used it. Hopefully this week I am going to have some time to run some more tests, and get to work on nailing down a solid workflow. I Never know when work is going to pop up lol.
I did a test with the solaris scene and here I don't see any difference, apart that cycles releases the memory after rendering, while iray doesn't. They both take about 12G ram and 5G vram.
What is "texture simplify"? Is that for Cycles or IRay? Sounds very useful.
I noticed in Daz that by default there is texture compression for Iray.
I wonder if this is why you're seeing a memory difference?
If you go to the options in cycles and scroll down, you'll see simplify, it's like right above Film if I remember offhand. Click the checkbox and it'll open up a drop down menu. Under the render texture menu, you can set the maximum size of maps you want to use. So if you have an 8K map, it can make it say 2K or whatever you want. I usually set it to 2K and it's faster and can't tell the difference quality wise.
I call it the "Maybe I don't need an RTX 3090 after all" button. Among other things, it dynamically resizes all your textures that are above a certain size. It is a godsend that I don't understand why it isn't advertised more loudly.
Also be aware that simplify doesn't work with eevee, but you can use the viewport limit for that.
https://bitbucket.org/Diffeomorphic/import_daz/issues/377/how-to-resize-textures-with-eevee
Hmmm, regular RAM, never really had a reason to keep an eye on that. Used to have 32GB, now up to 48GB. Next time I run some tests, will keep an eye out. Just got another stupid job, so not sure when I will have the time. Getting sick of wasting days of my life for chump change :P
Being a Carrara user I'm used to this sort of thing, Brian.
Here's what's going on - Daz Studio 4.0 was a genius design built for the Genesis (unimesh) system to use a database so that only the morphs currently being used will add weight to the individual scene. Not just Genesis figures, but anything that uses this database-related morph system.
So when we want to have dial-able morphs in Carrara or Blender (or whatever), we need to INJect those morphs as we did with previous generations. Think of the Add Morphs in Diffeomorphic as a multiple INJ pose file from the old days.
My Rosie 5 figure has loads and loads of expression and shape morphs brought in on Genesis 1 via GenX2 and can be quite weighty in both Blender and Carrara.
Looking more and more at using Blender instead of, say Carrara or Daz Studio, I'm beginning to think that our Daz characters might just benefit from using a more Blender-centric way of thinking when it comes to animation and shape-change poses, etc., where instead of using all of our beloved morphs, we add our own custom controller bones like this, just as an example. He has a ton of great videos on this stuff:
Keep in mind that Diffeomorphic has options to get loads and loads of all of this done already for us. The manual is an excellent read for what the various options can automajically do for us:
Morphs section is where we can save or add weight by not adding or adding morphs respectively. What I meant above is that we could use the various methods offered in the series of videos that the above video belongs to, or we can add controller Morphs that Daz (or someone else) has already made.
I'm brand new to Blender, so to Diffeomorphic too. So I'm going to take these initial steps into this trying all of the various methods that Diffeomorphic offers as well as keeping one that just comes in through the conversion process.
The guy (Royal Skies) that does the above video also has a series on animating, and has now begun teaching how to script in Unity. They're all very short videos that are packed with pro advice/instruction, so when we want to learn from one of them, we'll need to pause a bunch of times and follow along - which is actually very cool!
Anyway, I hope that helps to clear up the file size differences. It really helps to illustrate the genius that has gone in under the hood of Daz Studio. I was having conversations with some of the development team while DS 4.0 was being built as I was working with the beta for Carrara 8.5 Pro. I would defend them against insults from the community until Daz themselves told me nicely to stop defending them! LOL They truly put a Lot of heart and soul into all of this magic.
By "Blender-centric" above, I actually mean more of a professional studio way of posing/animating, no matter the software used. They have people whose main job is to set up the rig for animation optimization - Give those animators handles for everything they need to control. Handles can be hidden if they get in the way, but the animators can't really take the time to add them themselves, so another team takes care of that entirely.
So I think it's really cool that Thomas knows how to set these things up and has given us his amazing MakeHuman rig system to try as well as the incredible Rigify that comes with Blender, but Thomas made it a one-click option to scale and fit it to our Daz figures. That's a helluva feat all in its own!
Diffeo is absolutely amazing. I've probably said that 100 times, and I'll probably say it 100 more times. So appreciative of all the efforts put into it. (Daz is impressive too, I just like Blender)
Regarding the weight paint drivers by Royal Skies, I would really like to understand that process a little more. The attached screenshots are Genesis 8 model with imported JCM's and flexions via Diffeomorphic. The shoulder area deformation is controlled by a shapekey, driven by the bones. Same outcome, but is it a different process? There are vertex groups and weight painting on the imported model, I just don't know how they all work together. Any insight would be greatly appreciated.
I feel like Boomhauer sometimes using Diffeo and Blender -
I'll share what I understand being a Daz 3D enthusiast extraordinaire as well as a fan of Royal Skies LLC, addicted to soaking up as much of his education as I can:
Using the JCM method utilizes Daz 3D's expert morph makers' joint-controlled-morphs, which is truly an amazing system. [imagined workflow>] Someone takes the rigged figure and poses it in any and every pose possible, setting or suggesting constraints as they test and try to break the mesh or shape through joint rotation. These test notes go to the shape modelers, who bake out the problematic pose shape and model a morph for how it should actually look in that pose, and the rig experts will add that morph as a new JCM only to fire when the necesary conditions are met.
I've studied this process for some time because we can also use Daz Studio's incredible tools for this type of system to add JCMs that cause clothing or hair to change (morph) when the driving actor's pose meets the conditions we give it - like having the top of a blouse fall forward a bit if the shoulder are forward and the hip is bent x amount forward, for a very crude but doable example.
The method Royal Skies uses is more the way one might do it in Maya at a Hollywood animation house - using additional bones with influence and drivers. In a basic sense, it's doing the same thing as JCM but uses drivers to watch for certain conditions and fire the appropriate response, and weight painting to control the amount of mesh to be influenced - in a way doing what the mesh artist did to create the correction morph in the Daz Studio method.
The driver in this method has to be told when to fire. So when it isn't firing, the rig behaves as if the added bone(s) doesn't exist.
========= The Downside of the Daz Studio Method in anything but Daz Studio =============
I should say "Potential Downside to Some"
Daz Studio, from version 4.0 on, is designed around this whole new Genesis system that DS users have enjoyed from the start, even though early on the database software was switched (for the better). It uses a database to track what morphs the actor(s) needs when being saved. This keeps the overall saved character incredibly tiny considering the capabilities it has with the power of the database. Okay... that mouthful is about to make perfect sense - bear with me a sec:
In Carrara 8.5, Genesis 1 is fully compatible, 2 partially so and anything newer requires workarounds.
Even though Genesis 1 is fully supported, when Genesis is saved as a Carrara file, evry single morph obj data that IS AVAILABLE to the figure - aka: everything installed for Genesis - gets saved within the Carrara file and can be used fully when opened again in Carrara. See the difference?
So my Rosie 5 character might be 2GB as a Carrara file, but only a few MB in a DS save.
Nearly the same applies to Blender with the exception that Blender doesn't have the sweet Daz 3D developed compatibility - rather, we have to make our Daz 3D figures compatible with Blender - and that's a big difference!
========= Thoughts from a newbie to Blender (me) ==========
I am so new to Blender that many things within it still feel very foreign, like what always happens when starting a new, very different app. So for now I was planning to start with the JCM method and still use my aniBlock animation methods - I always bake to the timeline anyway (required for importing into Blender via Diffeomorphic) and make many tweaks and outright changes.
But eventually (perhaps even very early here) I'd also like to try following Royal Skies LLC's animation tutorials and suggestions to create my own animations from scratch - something I already enjoy doing in Carrara. Royal Skies' method uses IK instead of FK (what we do when setting bend, twist and side-side value sliders) and so his drivers are very much set up to take advantage of IK-style posing and animation.
In other words, I'm thinking that if I really want to animate via aniBlock/Timeline tweaking and/or using pose files or joint rotation methods as I always have, I might just stick with my Carrara/Daz Studio workflow and when I use my characters in Blender try the more "professional animator" style of working.
But that's the beauty - we are all very different individuals with our own preferred ways of working. Having the ability to work in whatever methods feel best to us is the biggest thing I've seen in all of this since I started. I bought Carrara because I had the need to tweak meshes as I animate and Carrara is the only animation/3d modeler software that can simplly load in Daz Figures directly from a Daz 3D library and/or Poser runtime.
Currently, it seems like Diffeomorphic Daz to Blender is kinda doing just that for Blender, which opens up a whole new thing. All it takes is to conduct a simple and fairly quick export after a duf save, and we can now bring it into Blender? I'd call that a pretty big win for all of us!
All of that said, Diffeomorphic's added functionality to convert our Daz people into a rig like MHX, Rigify or Simple IK makes them kind of like we'd do if we followed Royal Skies' lessons, applying them to the already rigged figures - but setting them up more for IK than FK.
So then we can follow Royal Skies' methods further and add whatever controller bones we'd like and set them up as he teaches, and we can do all of our posing and animation using handles that we drag around - like having the Genesis 8.1 Facial Rig bits for any sort of control we want - because we simply tell them what they control.
He is also setting this all up for use in a Unity game, so his current lessons are teaching us how to write code for Unity - but his lessons on rigging, animation, drivers, UV Mapping and Texturing, etc., etc., etc., are all done with exporting FBX to Unity in mind, so it's a completely game-friendly set of skills that he's teaching.