# Shader Requirements

You may follow the [VRM MToon 1 Spec](https://github.com/vrm-c/vrm-specification/tree/master/specification/VRMC_materials_mtoon-1.0) and set up MToon 1 in Unity, or in Blender.

**Notes for Blender:**

### **Must use MToon1 or** [**GLTF Compatible Shader Models**](https://docs.blender.org/manual/en/latest/addons/import_export/scene_gltf2.html)**!** <a href="#must-use-mtoon1-or-gltf-compatible-shader-models" id="must-use-mtoon1-or-gltf-compatible-shader-models"></a>

If you you want to use the UV Transform feature, automatic outlines, or other VRM features, you must use MToon. However, gltf supported shaders (like principled BSDF) are also supported w/o VRM features.

* **DO NOT EDIT MTOON SETTINGS IN THE SHADER GRAPH**; changes won't export.
* Instead, adjust MToon in the "**VRM Material**" section of the material properties panel. NOT the “**Shader**” section.

  **Only changes made here will be exported by the addon:**

| ![](/files/f0cea74d3ea68f674bcccef836dd12cd7706ea0e) | The face should be unlit, no need for custom normals or normal maps Please draw static shadows on the face The body, hair, and other accessories *can be* lit with custom normals, *or* unlit. Up to artist discretion. Most Unity features are supported 1:1 Transparency Render queue offset Shading shift GI Equalization Emission Rim Matcap *(Preview not correct in blender, check in VRM app like VRM Posing desktop)* Outlines *(only World Space Preview in Blender)* UV Animation *(Preview not correct in blender, check in VRM app like VRM Posing desktop)* |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

If you’re using GLTF compatible shaders, double check requirements in [the documentation](https://docs.blender.org/manual/en/latest/addons/import_export/scene_gltf2.html). VRM is built on GLTF, so you can use shader models like Principled BSDF, Emission, and Background.

### **Outlines** <a href="#outlines" id="outlines"></a>

* **We use the MToon shader outline with a width mask where possible to reduce file size.**
  * However, there are some rare occasions where a manual inverted hull needs to be made
  * As an example: the transparent section of Hallway Chan’s hair needs a custom material set for the outline with a special render queue offset. This cannot be done with the basic MToon outline. So we needed to make an inverted hull with a separate outline material there.
* See section **circled in yellow** above in MToon panel
* **Only world space preview works inside blender**, use a VRM app like VRM Posing desktop to preview screen space
  * After you select “Outline Width” mode, a geo nodes modifier will be added to the model for preview
  * With the new viewport compositor, we may add a screen-space preview feature soon
* **Please take advantage of the Outline Width vertex mask to vary line width!**
  * Thinner lines around the eyes and mouth is better.


---

# 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://hallway.gitbook.io/embed/characters-for-embed/3d-custom-avatar-requirements/shader-requirements.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.
