Skip to content

Adaptive Optimize

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

adaptive optimize options

Target Objects

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
  • All Objects - considers all objects in the entire blend and their images
  • All Images except HDR and EXR - all images loaded to a current blend except HDR and EXR
  • All HDR and EXR images - all HDR and EXR images
  • All Images - same behavior as All Objects

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. 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 has maximum dimension of the 2D rectangle of 420 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 512 pixels.

The second object has a maximum side size of 280 pixels. This again will end up as 512 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 and see that this is indeed the size of images that the operator would choose.

suggested image sizes based on 2d bounds

Tuning the Operator

There are three 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.

adaptive mesh decimate options

Full Quality Max Distance

Meshes that are closer to the camera then given value will not be affected.

Lowest Quality Distance

All meshes farther 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.