> For the complete documentation index, see [llms.txt](https://nodecrafted.gitbook.io/floor-generator-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nodecrafted.gitbook.io/floor-generator-manual/sections/materials/multitexture.md).

# MultiTexture

MultiTexture Material explained.

**MultiTexture** is a shader Node which was developed exclusively for [Floor Generator](https://blendermarket.com/products/floor-generator). It allows to distribute randomly up to 16 textures on every board/tile.

<figure><img src="https://2060991786-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT6K5uFa14MW4NhuBfWUB%2Fuploads%2FBhU6wRK5mNLJB8Ycl3dv%2F006_MultiTexture.jpg?alt=media&amp;token=dd7c74eb-d05e-44bc-8dc3-d3d7fe6e0b89" alt=""><figcaption></figcaption></figure>

The easiest way to create a MultiTexture Material is to take the one you get with the Floor Generator and edit it.

## Step 1

Create a new Material and add a MultiTexture Node to it. If you connect one of the output of the MultiTexture Node to Base Color you will already see how inputs of the MultiTexture Node are distributing between boards/tiles.

<figure><img src="https://2060991786-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT6K5uFa14MW4NhuBfWUB%2Fuploads%2FKsMDWKOrwalkz5itHitt%2F007_MultiTexture_Step_1.jpg?alt=media&amp;token=2f0d149f-82ba-4e07-b62b-86151f63b465" alt=""><figcaption></figcaption></figure>

<mark style="background-color:red;">For next steps it is necessary to have</mark> [<mark style="background-color:red;">Node Wrangler</mark>](https://docs.blender.org/manual/en/latest/addons/node/node_wrangler.html) <mark style="background-color:red;">add-on enabled!</mark>

## Step 2

Add your board/tile textures to the Shader Editor (<mark style="color:red;">`Shift-A`</mark> *-> Texture -> Multiple Images*).

<figure><img src="https://2060991786-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT6K5uFa14MW4NhuBfWUB%2Fuploads%2FiTJsnIl6fe2826y9JqdY%2F008_MultipleImages.gif?alt=media&amp;token=1907236a-8047-4423-86b4-7b7b72963c4e" alt=""><figcaption></figcaption></figure>

## Step 3

Add **Mapping** Nodes to the textures.

Select one of the texture and press [Ctrl-T](https://docs.blender.org/manual/en/latest/addons/node/node_wrangler.html#add-texture-setup) or just add a [Mapping Node](https://docs.blender.org/manual/en/latest/render/shader_nodes/vector/mapping.html). Select all textures and Mapping Node so that it stays active (last selected) - press [K](https://docs.blender.org/manual/en/latest/addons/node/node_wrangler.html#link-active-to-selected) - that will connect all textures vector inputs to the Mapping Node output.

<figure><img src="https://2060991786-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT6K5uFa14MW4NhuBfWUB%2Fuploads%2F0MrXSx32hSWkIKMtFknr%2F009_ConnectMapping.gif?alt=media&amp;token=2492bfbe-9265-40ab-ba52-3b3a6b0192e2" alt=""><figcaption></figcaption></figure>

## Step 4

Now it is necessary to link an [Attribute Node](https://docs.blender.org/manual/en/latest/render/shader_nodes/input/attribute.html) to the Mapping Node Vector input. **Attribute Name** should be "*uv\_map*".

<figure><img src="https://2060991786-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT6K5uFa14MW4NhuBfWUB%2Fuploads%2FvUKMPmGs6RlgBQqhmzcP%2F009_Attribute_uv_map.jpg?alt=media&amp;token=88809e79-75dd-4068-9a64-b0767f6bd465" alt=""><figcaption></figcaption></figure>

## Step 5

Connect all textures to the inputs of the **MultiTexture** Node. Use [Lazy Connect](https://docs.blender.org/manual/en/latest/addons/node/node_wrangler.html#lazy-connect) (<mark style="color:red;">`Alt-RMB`</mark>-drag) to speed up the process. It is OK if some inputs of the MultiTexture are empty, just use then the correct output.

<figure><img src="https://2060991786-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT6K5uFa14MW4NhuBfWUB%2Fuploads%2F5zAme6M6LRd5oedTAmXg%2F010_LazyConnect.gif?alt=media&amp;token=92eab592-b3bf-4c0d-ac96-11866179628a" alt=""><figcaption></figcaption></figure>

## Step 6

It is also possible to randomize boards using "*Col*" Attribute. In this example boards are randomly darkened using Mix Corol Node. You can use "*Col*" Attribute as a Factor Input to Mask boards randomly.

<figure><img src="https://2060991786-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT6K5uFa14MW4NhuBfWUB%2Fuploads%2Ftd6erJMCyqfTmYHhRAWu%2F010_RandomDarken.jpg?alt=media&amp;token=533c5d8f-05c8-4705-8d71-d85929dbaf28" alt=""><figcaption></figcaption></figure>

## Step 7

If you also have boards *Normal Maps* you can link them to the duplicated **MultiTexture**. They will match *Base Color* Maps.

<figure><img src="https://2060991786-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FT6K5uFa14MW4NhuBfWUB%2Fuploads%2FEgHMSWiiTO37leCi6H4a%2F011_NormalMaps.jpg?alt=media&amp;token=141a7b99-97b4-43c3-9750-7e8d2cf98903" alt=""><figcaption></figcaption></figure>

Don't forget that Normal Maps should have *Non-Color* Color Space to work correct.

## Step 8

Set [Grout Material](/floor-generator-manual/sections/materials/grout-material.md).
