I have introduced the concept of scene texture maps resize policy. It allow to resize all the texture maps (i.e. the images used in all texture image map nodes) of scene according some policy. The policy is defined by using few properties in the rendering configuration.
Policy: NONE
The "NONE" policy is the default and it doesn't resize the images at all. It is defined by:
Code: Select all
scene.images.resizepolicy.type = NONE
Texture image maps memory used:
Code: Select all
[LuxRays][0.524] [Device GeForce RTX 2070 SUPER CUDAIntersect] ImageMaps buffer size: 5376Kbytes
Policy: FIXED
The "FIXED" policy allow to apply a fixed scale to all image maps. For instance, to scale down all image maps by a 50%:
Code: Select all
scene.images.resizepolicy.type = FIXED
# The scale to apply to all image maps size
scene.images.resizepolicy.scale = 0.5
# The minimum size of an image map
scene.images.resizepolicy.minsize = 128
This is a test scene with "FIXED" policy and a scale of 0.5:
Texture image maps memory used:
Code: Select all
[LuxRays][0.737] [Device GeForce RTX 2070 SUPER CUDAIntersect] ImageMaps buffer size: 3648Kbytes
More to come
Indeed, this infrastructure was introduced to allow the support of some kind of optimized policy where the image maps are scaled down to the minimum size required by the scene. This will allow, for instance, to have a library of 4K texture maps and use them while it will be up to LuxCore to pick the minimum required resolution for your rendering.