Table of Contents

This page provides information on the Multi Sub-Object Map.


The VRayMultiSubTex texture allows you to create a single material, which shows randomized textures (or solid colors), on each object, face, material ID, or based on other modes. The random textures are distributed among all the objects using this map. In the image shown here, Get ID from had its type set to Object ID, and each of the Slots are given a different color via a VRayColor texture.


Get ID from – Specifies the meaning of the ID parameters.

Face material ID – Considers the face IDs of the object when feeding the data (color or texture) to the material.
Object ID – Considers the Object IDs of the object when feeding the data (color or texture) to the material.
Random – Randomly chooses IDs (via the Randomization modes) when feeding the data (color or texture) to the material.
ID Generator Tex – VRayMultiSubTex randomizes textures that allow integer input.

Seed – Changes the randomization pattern.

Randomization – (active only when the Random mode is selected) Specifies what elements serve as basis for randomizing the colors.

By name – Generates a color index based on the name of the node that the texture is applied to. This allows the color to remain consistent if the object is merged into another scene, or X-Ref'd etc.
By instance ID
– Assigns random colors based on InstanceID (works for Alembic instances, VRayInstancer source objects, VRayEnmesh, and Chaos Scatter).
By object ID
– Assigns random colors based on object's ID.
By face MtlID – Assigns random colors based on material IDs of the object's faces.
By element
 – Assigns random colors based on element (e.g. teapot lid, etc.) IDs of the object.
By particle ID
– Assigns random colors based on ParticleID (works for VRayInstancer source objects and Thinking Particles).
By node handle – Each node in 3ds Max is assigned a unique number (a handle) when it is created. This option generates the color index based on that node ID. It is useful because the node handle survives through scene editing - e.g. if you add/remove other objects, or rename them, you still get the same colors.

By render ID – Assigns random colors based on RenderIDs.

By user ID – Assigns random colors based on user's ID. The user ID is defined through the By user ID settings button, and then from Object Properties > User Defined, where a value for it is selected.
By user ID settings – Active, when By user ID mode is enabled. It defines the user ID (int, float, string).
By tile – Assigns random colors/textures for the tiles generated by the BerconTile plugin.

Currently, the By tile option is not supported on V-Ray GPU.

When using the By element option to randomize the elements of a VRayPoxy, Optimize for instancing in the V-Ray mesh export dialog needs to be turned on before exporting. The V-Ray mesh export menu can be accessed from V-Ray menu > .vrmesh exporter.

Random Hue/Saturation/Gamma – These three parameters control post-process randomization of output color. Input value is percentage of the HSV/gamma range and specifies the maximum random deviation, where gamma range is fixed to [1/10,10]. See the Random Hue/Sat/Gamma example below.

ID generator tex. – A slot for a texture when the Get ID from is set to ID generator tex. A VRaySamplerInfoTex could be wired here.

VRaySamplerInfoTex could be set to Transparency level. When it is wired to the ID Generator tex slot, the Color swatch in the Default slot has to be set to black if the user wants to produce full transparency.

Slots – Sets the number of sub-textures.

Delete Unused – Deletes disabled slots from the list.

Batch load – Opens a browser window for loading multiple bitmaps at once. The number of loaded textures sets the Slots number automatically. See the Batch Loading of Textures example below.

Loop through textures – (works with Face material ID and Object ID modes) When the objects assigned with VRayMultiSubTex map have IDs outside the interval of valid sub-texture IDs, the Loop through textures option calculates a wrapped version of these IDs that fit in the interval. Then it picks the corresponding sub-texture. For example, if an object with an ID 5 is assigned a VRayMultiSubTex and the interval of valid sub-texture IDs is [1:4], it is looped and is rendered with some of the sub-textures. See the Loop Through Texture example below.

Blend color and texture – Uses the alpha of the sub-textures to blend between the color for the respective material ID and the texture color. When disabled, the texture alpha is returned directly and the color specified in the VRayMultiSubTex texture itself for the given material ID is ignored.

Default slot – (works only in Face material ID and Object ID modes) A default color or texture for objects whose IDs cannot be matched with a sub-texture ID (with or without looping).

ID (1-20) – Specifies a color or a texture to be assigned to the material when it is assigned on an object with the current ID.

Batch loading options

Add – Opens a file browse window for file selection and adds the selection to the list.

Remove – Removes the selected map from the list.

Move up – Moves the selected map up in the list.

Move down – Moves the selected map down in the list.

ID reassign – Reassigns the IDs of the whole list, i.e. renumbers the maps in order.

Id from file – Uses the IDs given in the file name when adding new maps. The ID number can be specified anywhere in the map file name and must be separated with underscores, hyphens, or full stops. Examples: id6-example.png, text_ID12.jpg, pic.Id03.version.tx

Example: Batch Loading of Textures

The following video shows how to work with the Batch Load feature.

Example: Random Hue/Sat/Gamma

The following example shows how the Random Hue/Saturation/Gamma changes the scene. Each example uses the maximum value of 100.

No Random Hue/Sat/Gamma applied

Hue = 100.0

Saturation = 100.0

Gamma = 100.0

Hue/Sat/Gamma= 100.0

Example: Loop Through Texture

The following example shows how the Loop through textures option affects the distribution of a texture applied to five geometries with different IDs.

Here, you have a MultiSubTex map with four sub-textures whose interval of valid IDs is [1 - 4]. You also have five geometries whose IDs range from 1 to 6. The IDs of the first four geometries fall within the texture's interval. The fifth geometry's ID (6) is outside that interval. You also have a default color - red.

When the Loop through textures option is disabled, the geometries with valid IDs get a texture of equal ID number. The texture whose ID is 6 gets a default color.

When the Loop through textures option is enabled, the geometry with ID = 6 is looped and gets the texture with ID = 2.

If you uncheck one of the textures, for example texture with ID = 2, V-Ray detects that there is no valid texture for the geometries with IDs = 2 and 6, and it assigns them a default color.

MaxScript Access

The VRayMultiSubTex texmaps list can be managed through several exported functions:

addSubtex – Adds the specified number of sub-textures.
deleteSubtex – Deletes one or more sub-textures. The first parameter is always the index of the first texture slot to delete, the second is the number of textures to delete (if omitted defaults to 1).
deleteUnused – Deletes all sub-textures which are disabled from their respective UI button.
texmap_num – Returns the value of the Num IDs parameter.

<void>addSubtex <integer>count
   count Validated by Range: 1 to 255
<void>deleteSubtex <integer> start <integer> count
   deleteSubtex has variable number of arguments
   start Validated by Range: 0 to 254
   count Validated by Range: 1 to texmap_num-start