> For the complete documentation index, see [llms.txt](https://universgen.gitbook.io/shader-world/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://universgen.gitbook.io/shader-world/fundamentals/kick-start/creating-a-new-world.md).

# Creating a new world

### Add a Shader World Actor in your scene

First step is simply to drag and drop a shader world actor your scene, eventually setting its position to the origin, and being sure it has no rotation.

By default it will have the blank terrain setup, which generate a flat surface.

## Create a generator material

Simply create a traditional basic material and configure it to be **Default Surface, Opaque**, **Unlit. and enable the usage Used with Virtual Heightfield Mesh.**

**Any Material used in ShaderWorld to do computation should have those settings**

ShaderWorld provides various noises, heightmap texture reading and filtering in different quality, layer inputs, layer samples etc...&#x20;

Copying the provided layers from the demo maps locally in your content browser is a good starting point.

<figure><img src="/files/OTnz9tcYKNMq6R2ENh77" alt=""><figcaption></figcaption></figure>

This newly created generator material will be your own canvas to test things and iterate in ShaderWorld, you can find libraries of Material Function within Shader World folders, as well as in the provided demo maps: Noises, how to simply read an external heightmap... !

## Make your surface material Compatible

Inside your surface material, *not the generator material* but the material being applied to the generated surface, be sure to toggle **Used with Virtual Heighfield Mesh** within its detail panel. By making this simple switch mandatory, we prevent unecessary shader compilation when you're enabling the plugin.

\
&#x20;      &#x20;

<figure><img src="/files/Tt5kiil3I4m4lo1kYOeD" alt=""><figcaption></figcaption></figure>

Inside the various MF\_Define\_\* from the demo map you can find the available premade nodes, noise, functions, from reading heightmaps, packed 16 bits heightmaps, noises, terracing, crater…

The LODs are defined by your vertical distance to the land/ocean: when collision is enabled we’re using the collision mesh grids to accurately know the viewer altitude to the ground, otherwise we’re using the altitude to the reference plane of the world.

<figure><img src="/files/BeYfXDlsJ9lcmsUINhf1" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://universgen.gitbook.io/shader-world/fundamentals/kick-start/creating-a-new-world.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
