> For the complete documentation index, see [llms.txt](https://qwertystudio.gitbook.io/calysto/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://qwertystudio.gitbook.io/calysto/landscape-texturing-masking/using-massive-world-with-other-landscape-material.-advanced-.-example-brushify.md).

# Using Massive World with other landscape material. (Advanced). Example: Brushify

#### Legacy Documentation — Calysto World 5.7 and Earlier

This workflow is not the current Calysto World 5.8 workflow.

### Important note

This section is for advanced users and Brushify / Dreamscape are here as examples but this does not make me the official customer service for them. If you don't know how to work with materials, I recommend learning it properly before moving forward with this and using MassiveLandscape instead.

Feel free to contact the creator of your material for further integration.

### Integration

This section is a bit more advanced and requires a better understanding of how the material works. Note that you can integrate the landscape material but not use it as a biome mask. To sum up, the main reason is that the biome mask doesn't have access at all to the landscape data and the layer.

I will explain that section with Brushify as an example, and later make another example with Dreamscape.

### Setting up the Runtime Virtual Texture (RVT).

*The following will use Brushify as an example, but the workflow is the same for most Landscape Materials.*

First, go into your copy of DT\_VirtualTexture then add the Brushify RVT that comes with the demo (or any RVT you want to use). Make sure that there are only 2 RVT, one for the color and the other for the height. You can get those RVT inside Brushify/Materials/Landscape/Functions/RVT/VirtualTextures

<figure><img src="https://3223403327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5xsfjHEQXblHDG7WFyoC%2Fuploads%2FNmrVPtDorZSkoHQ3LN4J%2Fimage.png?alt=media&amp;token=eb28bdb4-71a7-47ab-8120-b8e4283f7851" alt="" width="563"><figcaption></figcaption></figure>

To make the RVT work properly with Massive World's mask you will need to switch the Virtual Texture Content to the format *"YCoCg Base Color, Normal, Roughness, Specular, Mask".*

After the switch, the color of your current landscape may look weird, no worries we will fix that later.

<figure><img src="https://3223403327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5xsfjHEQXblHDG7WFyoC%2Fuploads%2F7iSDBa4fRxKJaYaiVjkb%2Fimage.png?alt=media&amp;token=694ff556-464a-4db7-b026-1cdb54bc7109" alt=""><figcaption></figcaption></figure>

Make sure that the 2 Virtual Textures are installed in your scene (with a Runtime Virtual Texture Volume) and that the bound matches the size of your terrain. Also, make sure the RVT is also added to your landscape

### Inside the landscape material

Now let's set up the landscape material of Brushify. First, open Brushify's M\_Landscape and look for the "Runtime Virtual Texture Output".

Set the Specular and Roughness to 0, those data will be used by Massive World's Mask.

Add MF\_GetSlopeData and connect it to the Mask input like the screenshot below.&#x20;

<div data-full-width="true"><figure><img src="https://3223403327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5xsfjHEQXblHDG7WFyoC%2Fuploads%2FdfGGDwn9jyWAdY5xLT7i%2Fimage.png?alt=media&amp;token=07f9cff8-6772-4d4e-b26a-ed9cfd4c42fd" alt=""><figcaption><p>Note that you can also use the slope data calculated by Brushify if you are more comfortable with materials.</p></figcaption></figure></div>

Inside the MF\_RVT\_Landscape function, make the following changes

<div data-full-width="true"><figure><img src="https://3223403327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5xsfjHEQXblHDG7WFyoC%2Fuploads%2FSUr0FwDiqCzMgdVmOvZB%2Fimage.png?alt=media&amp;token=084e34a1-e51a-4373-a68c-11ea18eca834" alt=""><figcaption></figcaption></figure></div>

The Displacement and Remove Grass are named reroute nodes to be used to mask the grass (for example with the roads and beach) and the Displacement can be used for Nanite Displacement.

Finally, be sure to change the Runtime Virtual Texture Sample to *"YCoCg Base Color, Normal, Roughness, Specular, Mask".* This will fix the weird colors.

<figure><img src="https://3223403327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5xsfjHEQXblHDG7WFyoC%2Fuploads%2FGQdAdezuGIuG3v1rkrtt%2Fimage.png?alt=media&amp;token=5b53b370-e2d0-4a99-92c8-520351110602" alt=""><figcaption></figcaption></figure>

At this point, the texturing should already be working and have a behavior similar to this (I changed the texture of the road to use Brushify's forest). Now let's remove the grass

<figure><img src="https://3223403327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5xsfjHEQXblHDG7WFyoC%2Fuploads%2FQdniYqKnA7cb69v4tu0e%2Fimage.png?alt=media&amp;token=8846e715-9bee-4d19-a68d-667cfb850619" alt=""><figcaption></figcaption></figure>

### Removing grass

In the case of Brushify we need to bring back the "Remove Grass" data to the main material. To do this create a Function Output and call it "Remove Grass" then connect your Remove Grass to like the screenshot below

<figure><img src="https://3223403327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5xsfjHEQXblHDG7WFyoC%2Fuploads%2FTEvKqOiGr6sZa6UnDaak%2Fimage.png?alt=media&amp;token=c8c5aeb6-c383-46dd-a473-8446238d7ce4" alt=""><figcaption></figcaption></figure>

We can now go back to M\_Landscape and access the Remove Grass, let's add it back into a Names Reroute node.

<figure><img src="https://3223403327-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5xsfjHEQXblHDG7WFyoC%2Fuploads%2FtiRsh3m1Znq5vfOORVDe%2Fimage.png?alt=media&amp;token=150085c0-e2cc-441f-9bf3-6f0ff1f6717d" alt=""><figcaption></figcaption></figure>

Now let's add them to the grass-removing section, still in M\_Landscape, more to the left.

<figure><img src="https://lh7-us.googleusercontent.com/e5-nKY5MrJFim-WALn63MaAzmn4UrLQ9cYFW4fzQ8sR_Dq327CrZrqduMG5-Pzf-VZmpT0Uje_6w5ZtrJ099fmTNuCBCNZY0LxsFCSAvaWhsO2GDvA27X7I03_p5PLDknvokkGA1-xuB1wfh8E1k-Zo" alt=""><figcaption></figcaption></figure>

And now Massive World is communicating the information back to the landscape (roads and beach).

<figure><img src="https://lh7-us.googleusercontent.com/VfduxICRstIXm3S_9EevPIM_dV0RMXqkK8sRKSsUFuX4m2nL1L9GDa6ctIeGeoQz8tgJSqdMDUL88hngoYs48KZcphTnKA5PICIIP47aVGi-Zi1EyGFJDL3xDF7HaFd7ypmc9429VXM6TJpHtZrCxqc" alt=""><figcaption></figcaption></figure>
