I love Genshin Impact art style so I decided to study how the character shader is made, I used Unity URP.
Here's a little breakdown that I wanted to share with the community.
The characters and textures are from Hoyoverse company, you can officially download the models here:
https://genshin.hoyoverse.com/ja/news/detail/5885
In my case I am using the models only for educational purposes.
Shader features:
- Custom ligthing for cel shading (support multiple lights, cast shadow).
- Outer shadow.
- Anisotropic hair.
- Face shadow tweak.
- Metallic.
- Outline.
- Special Face Outline.
- Edge Highlight.
- Custom tonemapper.
- Dithering.
- Fog.

Outline
Outline postprocess is better since the traditional method: duplicate, scale and flip the mesh... is less precise.
For custom postprocess we need the blit render feature, I used this:
https://github.com/Cyanilux/URP_BlitRenderFeature

Outline
1- Detect the edges using the Depth Scene Texture And the Normal Scene Texture to do the same.
2- Combine both results for maximum edge coverage.
More info on this article:
https://roystan.net/articles/outline-shader.html

Postprocess Tonemapper
I used Gran Turismo tonemapper (https://www.desmos.com/calculator/gslcdxvipg?lang=es) Since it keeps the color saturation and fixes burned areas. This would be ideal for cartoon style