# Shaders

## What are shaders?

Every visual asset in REDengine 3 uses a specific shader, designated by REDengine as W2MG (.w2mg/Witcher 2 material graph) files. Even meshes "without a shader" are in-fact using a debug shader such as debug.w2mg. Shaders are the most basic expression of a surface, ranging from glass, skin, concrete, and steel. Each shader contains a combination of constant hidden-variables, and exposed variables for artists to tweak. For example, all skin exhibits some similar properties such as subsurface scattering so there is no reason to expose this; artists cannot use the skin shader without subsurface scattering. However skin color can vary dramatically, so these parameters are exposed to the artists using textures. Artists are able to create "instances" of shaders called [**Material Instances**](/redengine3-research/assets/shaders/materials.md) which contain localized variations of the textures and properties exposed by the base shader.


---

# 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://wiki.redmodding.org/redengine3-research/assets/shaders.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.
