Skip to content

Adaptive Optimize

This option allows for more fine-tuned optimization of the scene, that maximizes performance while keeping the visual as intact as possible.

adaptive optimize options

Optimizing is non destructive

memsaver works in a way that you won't lose your original setup. Optimized images and meshes can be always returned to the previous state by using the Revert Images to Originals and Revert Meshes to Originals button.

Operator reports what changed

After the optimization finishes, the operator reports how many images and meshes were successfully optimized, how many failed, and how much memory was saved. You can open the Blender info tab to see more details in case something failed.

adaptive optimize log

Optimize Images

adaptive image resize in action

Choose texture resolution based on how big the object appears in the render image!

You can make sure all images are of some size or lower when using Resize Images but what about using smaller images for far away objects but large images for close objects? Adaptive Image Resize can help you choose smaller image sizes for far away or small objects and larger sizes for close objects or objects that are large.

memsaver calculates a 2D rectangle that covers the entire object in the rendered image based on the object's bounding box. Then it takes the larger side (either width or height), multiplies it by the quality factor and uses that for scaling images used on that object.

Reused textures

If a texture is used in multiple objects, memsaver will consider the closest object when choosing the size. It does not make sense to use multiple sizes of the same image as that would just waste memory. Sometimes this ends up with far away objects using large textures because something close to the camera is using the same images.

Example

In this example the first object's bounding box has maximum dimension approximately 800 pixels. We multiply this by our quality factor which we left at 1.0 for this example and then choose the closest power of two size of a texture, which is 1024 pixels.

The second object has a maximum side size of approximately 600 pixels. This again will end up as 1024 pixels, closest power of two size for textures.

estimate 2d bounds of objects

We can use the magnifying glass next to the Adaptive Image Resize operator to preview the changes on all scene objects and see that this is indeed the size of images that the operator would choose. Notice that one texture is larger than what we calculated - that is because the texture is reused by a larger foreground object.

suggested image sizes based on 2d bounds

Objects to preview are selected with the Left Button and preview mode can be exited with Esc.

Active camera

Adaptive optimization is camera dependent - image optimization and mesh decimation is calculated based on your active camera. You can see and change the active camera before starting the optimization.

Info

Preview Adaptive Optimize is pre-calculated based on the Active Camera. If you change the camera position or other settings, exit and restart the Preview Adaptivce Optimize to recalculate the preview values.

Target Images

Resize Images operates on images directly but Adaptive Image Resize operates on objects. That's why we have to choose the target slightly differently.

  • Selected Objects - considers all selected objects and the images used in them
  • Scene Objects - considers all objects in the current scene and their images

Tuning Image Resizing

There are three image resizing values you can tune when using the Adaptive Image Resize operator.

  • Quality Factor: This is what we multiply the 2D bounds dimension to get desired texture size
  • Minimum Image Size: Limit of how small the images may get, we will never go under this value
  • Maximum Image Size: Limit of how large the images may get, we will never go over this value

We advise to play with the quality factor to get a good trade-off for your scene. Values over 1.0 are conservative, you can often get away with lower values such as 0.25.

Comparison with Change Image Size

This operator is similar to the Resize Images operator but chooses texture sizes separately for each object. Let us look at a comparison:

adaptive image resize vs plain image resize

Decimate Meshes

adaptive mesh decimate in action

Choose mesh decimation based on distance and polycount limit!

You can reduce polycount of meshes that are far from active camera and don't benefit from additional detail.

Target Meshes

The options for target meshes are the same as in Decimate Meshes.

  • Selected Objects - considers all selected objects and their meshes
  • Scene Objects - considers all objects in the current scene and their meshes

Tuning Mesh Decimation

There are four mesh decimation values you can tune when using the Adaptive Image Resize operator.

  • Full Quality Max Distance: Meshes that are closer to the camera then given value will not be affected
  • Lowest Quality Distance: All meshes further than this distance will have maximum decimation applied
  • Lowest Quality Decimation Ratio: Ratio of triangles to be reduced at the Lowest Quality Distance. The smaller the value, the larger the decimation
  • Lowest Face Count: Meshes with face count lower than this value will be ignored

Animation Mode

If animation mode is enabled the resulting optimization is based on the keyframe where the object is closest to the camera instead of current frame.