Are you tired of running out of VRAM while working on big scenes?
Fear not, because memsaver is here!
memsaver saves VRAM while creating big scenes, with the least amount of effort and without compromising on quality. It optimizes textures and reduces VRAM consumption, making it a lifesaver tool for big projects or if your hardware is limiting.
2023/11/20: memsaver 1.2.0, 1.2.1: Support for Blender 4.0.0. Bug fixes: behave correctly when user moves or replaces a resized image, don't fail adaptive optimize preview on non-existent images. Change label of check & regenerate operator based on user feedback. Report packed images in adaptive optimize preview.
How does it work?
To decrease VRAM consumption memsaver's Adaptive Image Resize feature goes through all the objects in the scene and calculates their final size in the resulting render based on camera and render dimensions and downscales their textures where possible - this alone can shave off many GB of VRAM. While Adaptive mesh decimation feature allows you to decimate objects based on camera distance. Both of these features support animations. Alternatively, you can also use the Resize Images feature which now even supports UDIMs & image sequences, and lets you make textures of selected or all objects smaller - in that case memsaver only downscales when the original is bigger than the selected resolution. In any case. the original images are left untouched while the downscaled versions are saved into a cache folder. If you open a scene that has been downscaled with memsaver and you have memsaver installed, it automatically regenerates the cache. Reverting to the original file is a single click operation.
Adaptive Mesh Decimation
There is no point in rendering a 100 000 triangle mesh that has 2 meters and is 20 meters away from the camera, the detail is so small it just gets lost. So, memsaver lets you remove unnecessary geometry and only calculate a fraction of the original size.
Adaptive Image Resize
Adaptive image resize changes the image sizes of objects based on how large the objects appear in the camera view. Larger image size is chosen for objects that are closer to the camera, and images of objects that are small or farther from the camera are resized to a smaller size.
Adaptive texture resizing involves choosing the closest power of two sizes for a texture based on the maximum dimension or side size of an object, for example, choosing a 512-pixel texture size for an object with a maximum dimension of 420 pixels or a maximum side size of 280 pixels.
With animation support the necessary image size is calculated taking all animation frames into account, thus still saving the memory and at the same time making sure the result is still sharp.
memsaver comes with two variants of image resizing. In both cases, memsaver does this smartly and uses caching to store intermediate results of downsampled images. Each unique image is downsampled only once and then reused from the cache. The original file stays untouched at its previous location, which allows reverting the image to the original. Resize Images allows you to quickly downscale (if necessary) images used on Selected Objects, Scene Objects, All Objects or even All Images to a selected resolution.
Support for UDIMs and Sequences
UDIM is an increasingly popular workflow that makes UV map generation easier and assigning textures simpler. Memsaver now supports UDIMs and is able to resize them just as it would with regular textures. Image sequences are useful for displaying pre-generated animations. Now all images in the sequence are taken into account. This feature can be used even for our other product aquatiq that uses sequences for water animations.
Estimate Memory Usage
When working with large .blend files it can be hard to figure out what consumes the most VRAM. With memsaver, you can use Estimate Memory Usage which generates an HTML report listing all images and meshes and how much they take. We use this feature to pinpoint absurdly high-poly meshes or giant images that might be hogging a lot of the VRAM.DOCUMENTATION
What our users say?
Feel free to join our discord channel about memsaver for support, ideas, or a friendly chat - https://polygoniq.com/discord!
Let us know what you think!
Need a specific feature implemented?
We will update memsaver based on your requests and feedback.
2023/11/14: memsaver 1.2.0, 1.2.1: Support for Blender 4.0.0. Bug fixes: behave correctly when user moves or replaces a resized image, don't fail adaptive optimize preview on non-existent images. Change label of check & regenerate operator based on user feedback. Report packed images in adaptive optimize preview.
2023/06/21: memsaver 1.1 - Adaptive mesh decimation, support animations, support UDIM and sequence image types. Add support for .bmp, .exr, .hdr, .tif and .webp formats. Allow selecting all images except HDR/EXR. Handle negative and other invalid values of numeric parameters. Bug fixes; don't fail bounding box computation for point objects, fix bounding box size of objects behind camera, make sure cache folder exist before opening it.
2023/04/29: memsaver 1.0 - Initial release. Resize Images, Adaptive Image Resize, automatic caching. Supports Open Image IO or PIL/Pillow as backends for resizing