> For the complete documentation index, see [llms.txt](https://bnpr.gitbook.io/bnpr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bnpr.gitbook.io/bnpr/shaders/the-most-basic-npr-shaders.md).

# The most basic NPR shaders

### Basic toon shader (Eevee)

![](/files/-MSeKYRaHKmQ-BFwx1_k)

**How this works:**

1. It takes the grey values from the `diffuse BSDF`,
2. `Shader to RGB` Turns the data (*casting* in programming speak) into RGB colors. \
   Without this we cannot change the colors using a color ramp,
3. The `Color Ramp node` remaps the grey values to the color you want,
4. Finally outputs it.

### Basic shadeless shader (Eevee)

**Method 1:**

![Just color](/files/-MSeMeRmmbHk4amzy6D4)

{% hint style="info" %}
**Note:** Your color node may look different. \
You can change the color picker type in the **Preference > Interface > Editors > Color Picker Type**
{% endhint %}

**Method 2:**

![solid emission color](/files/-MSeMro4y6NodOYEsbY5)

**Method 3:**

![Shadeless texture](/files/-MSf6TeDXUMhs7ns7peA)

### Basic toon shader with texture and alpha (Eevee)

![](/files/-MSeab_osA6HRri0WejX)

**How it works:**

1. This is essentially a masking material.
2. The texture going into the **factor** of the `Mix shader` node is a grey value. It determines the mixing factor of shader 1 and shader 2. White color shows `Shader 2`, black color shows `Shader 1`
3. The `difference node` (a mix node) compares the original texture to `color 2` (the color we want to remove when texture do not have alpha channel, *black* if it has alpha).
4. The `less than node` (a math node) refines the edges of the mask using the threshold value.
5. The `diffuse BSDF node` can be exchanged to `Emission shader` for shadeless texture or a more elaborate setup.
6. Remember to change Blend Mode to either `Alpha Clip, Alpha Blend or Alpha Hatch`. Which of these Blend mode you choose will depend on your use case.
