2
$\begingroup$

So I have a model and in the top right where it says the memory usage it changes even when I dont add any type of new geometry. I can just say move a vert and let go of the mouse so it doesnt actually go anywhere or even just moving the object in object move basically almost everything I can adds more memory usage but I am not adding or changing anything on my model.

I can take the start up box and just go into edit model and just click on a vert and the memory goes up. I am not moving the vert just clicking on it.

Can someone tell me why this does this? Is it suppose to be like that? Does that actually reflect on the real memory use?

$\endgroup$
  • 1
    $\begingroup$ I wouldn't worry about it. Blender is very good at memory management, and what you see might just be due to it's undo history, which stores the last 64 or so actions you make. I run it on 1 gig of memory and never have a problem. Just start playing with it and enjoy! $\endgroup$ – Anthony Forwood Sep 11 '16 at 7:48
1
$\begingroup$

Whenever you execute an operator, even if that just means to select something, or deselect it, Blender needs to keep track of what you were doing by recording those actions to what is called the Undo Stack. You can think of it as a pile of commands which were run. If you press Ctrl + Z Blender will travel backwards in time along this stack so to speak. So you might be thinking you're not doing anything, but for Blender you do something :)

Think about it: How else would any application know what state you were in before, what the document or model had looked like before you performed a specific action? How would the app be able to go back to previous states, unless recording and keeping those states around?

After performing a few actions, you can see the whole stack by pressing Ctrl + Alt + Z. This will show a menu with the latest commands you executed, and allow you to choose a specific state of the model. The one with the eye icon is the state you're looking at in the 3D View currently:

Undo History

To verify this, you can simply disable the Undo Stack alltogether by going to the User Preferences, Section Editing and set the number of Undos to Zero (section marked in red):

Undo Disabled

When you now perform a few actions like select and deselect, you'll see that the memory consumption will jump slightly, but it won't just increase like a one way street any longer. There will be occasions where the memory consumption actually will be reduced, depending on what you do. However, this is strongly discouraged, as you really lose the Undo functionality. You can't even undo selections any more.

The settings in the prefs allow you to set certain boundary conditions on when Blender should forget about what you did. One is the number of steps, the other is the memory limit. Both help you to tailor your personal Blender prefs towards your machine specs. The memory limit is a limit for the Undo Stack itself. So in my case, Blender is allowed to allocate 2 GB of RAM for just the Undo functionality. If I perform a lot of memory intense actions in sequence, this limit could be exceeded, and Blender would start to delete the first element in the stack, then the second, until the stack fits the limit again. Sounds complicated, but bottom line is: Blender will never use more than that, so the constant increasing of RAM consumtion stops at that point.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Thanks I had a feeling it was like that but really I want to know when I export said model into like Unity will it take all the memory usage with it to be used in Unity. I would think Unity would only import the model it self and not the memory that was used for say undo. Am I correct in saying this? I hope so because if not than basically every model you make in blender every time you click a vert makes me have to rethink on how I am modeling the mesh to reduce the memory usage for Unity. i would $\endgroup$ – m.pearsonm90 Sep 11 '16 at 16:59
  • $\begingroup$ @m.pearsonm90 You're right in your assumption, Unity will only import the model as it is, with the textures associated to it (depending on file format, etc.). Each application handles its own Undo Stack, they are not passed on between each other. What matters with Game Engines is a) Polygon Count, and b) Texture Sizes and number of textures. Those are your optimization triggers. $\endgroup$ – aliasguru Sep 11 '16 at 17:07
  • $\begingroup$ Ok thanks for the help. I just started making a pretty big sci fi map and am in the process of making all the assets for it and if you ever have done anything with sci fi modeling and texturing you would know that those types of models use alot of polys and alot of texture maps so I just needed to make sure that blender's memory usage wasnt exactly what would be used in Unity. Hell its hard enough even with normal maps and such to make decent sci fi weapons walls buildings etc etc without using to many polys and texture maps lol. You just saved me alot of rework on models. Thank you again. $\endgroup$ – m.pearsonm90 Sep 11 '16 at 17:12
0
$\begingroup$

Ok so the memory usage in blender just holds the data for undos and even clicks without moving a vert or face or anything. So if you move a vert and than click away to not actually move it blender stills uses up memory. But that memory is only in blender and does not get transferred over into the game engine you are importing your mesh to. A engine like Unity will only use the memory for the polys and texture maps so the memory usage in blender does not effect the memory usage in Unity. Hope this helps someone and thank you to everyone for the help.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.