# MultiTexture

**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&#x26;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&#x26;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&#x26;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&#x26;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&#x26;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&#x26;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&#x26;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&#x26;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](https://nodecrafted.gitbook.io/floor-generator-manual/sections/materials/grout-material).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nodecrafted.gitbook.io/floor-generator-manual/sections/materials/multitexture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
