Skip to content

brianlin1992/UnityURPToonLitShaderExample

 
 

Repository files navigation

About this repository

This repository does NOT contain the full version of NiloToonURP.
Instead, it includes a simple, short and easy-to-read URP toon shader example for Unity2022.3LTS, which is intended for shader coding tutorial purposes. The shader example is licensed under the MIT license, giving you the freedom to use the code as you wish. If you'd like to retain the current tutorial shader, we recommend forking it or downloading a copy now, as it may be removed in the future.

*this README also shows photos and information about the NiloToonURP(full version)

NiloToonURP(full version)'s rendering

screenshot screenshot shader ON screenshot shader OFF screenshot shader ON screenshot shader OFF screenshot shader ON screenshot shader OFF screenshot

screenshot Outline options(1/2/3)
screenshot screenshot screenshot screenshot screenshot shader ON screenshot shader OFF screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

We are now developing an 'easy-to-use, high-performance, and cross-platform (including mobile, VR, and WebGL)' closed-source toon shader package—NiloToonURP—to assist Unity URP users in achieving high-quality anime/toon-like rendering.

NiloToonURP is supporting:

  • Unity 2021.3LTS(URP 12.x)
  • Unity 2022.3LTS(URP 14.x)
  • Unity 2023.2 (URP 16.x)
  • Unity6 (URP 17.x)

Download NiloToonURP PC .exe demo (2021.3.17LTS build):

Download NiloToonURP Android .apk demo (2021.3.17LTS build):

NiloToonURP's demo runtime video:

NiloToonURP's UI preview:

How to get NiloToonURP full source code?

If you or your company/organization/team needs:

  • latest full source code (with all detail comments and notes, NOT Obfuscated code, NOT .dll)
  • latest user document
  • perpetual royalty-free commercial license
  • every future update
  • NiloToon's tech support
  • (optional) we set up your character models's rendering in the best way possible for you, using NiloToonURP
  • (optional) your project-specific customization and support

of NiloToonURP for your URP project, please send the following info to nilotoon@gmail.com

  • name (your personal name or your company/organization/team's name)
  • a google account email for gaining permission to download all NiloToonURP files in google drive
  • any public website that shows your/your company/organization/team's work or public media (e.g. personal website/company website/youtube/bilibili/twitter...)

NiloToonURP user's creations (public media, not NDA content)

*we only provided NiloToonURP's download permission + tech support, we didn't work on these creations directly

Genshin Impact MV - When The Stars Align (Genshin Impact website -> http://genshin.hoyoverse.com)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

キラッとプリ⭐︎チャン (https://twitter.com/pretty_vlive)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Suisei Channel - hololive (https://www.youtube.com/@HoshimachiSuisei)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

VSPO!(ぶいすぽっ!) - 胡桃のあ (https://www.youtube.com/@963Noah)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

VVV MUSIC LIVE 公式(ブイスリー) (https://twitter.com/VVVMusicLive)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

hololive ホロライブ - VTuber Group (https://www.youtube.com/@hololive)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

杏仁ミル Annin Miru Channel (https://www.youtube.com/@AnninMiru)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

ISEGYE IDOL (이세계아이돌) - 주르르 JURURU (https://www.youtube.com/@JU_RURU)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

ぶいごまチャンネル V後藤真希 (https://www.youtube.com/@V_GOTO_MAKI)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

VSPO!(ぶいすぽっ!) - 小森めと (https://www.youtube.com/@Met_Komori)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Starseed:Asnia Trigger / 스타시드: 아스니아 트리거 (starseed.com2us.com)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Neo-Porte(ネオポルテ)- 天帝フォルテ / Tentei Forte (https://www.youtube.com/@tenteiforte4631)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

VirtuaReal / Nijisanji CN - 七海Nana7mi (https://space.bilibili.com/434334701)

screenshot screenshot screenshot screenshot

Neo-Porte(ネオポルテ)- 夜絆ニウ / yozuna niu (https://www.youtube.com/@niu_yozuna)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Stargazer Official @ 스타게이저 @ スターゲイザー (https://twitter.com/StargazerCoLtd)

screenshot

VSPO!(ぶいすぽっ!) - 花芽すみれ (https://www.youtube.com/@KagaSumire)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

VirtuaReal Star - hanser (https://space.bilibili.com/11073)

screenshot screenshot screenshot screenshot

Gawr Gura Ch. hololive-EN (https://www.youtube.com/@GawrGura):

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Neo-Porte(ネオポルテ)- 緋月ゆい / Hizuki Yui

screenshot screenshot screenshot screenshot screenshot screenshot screenshot

VSPO!(ぶいすぽっ!【公式】) (https://www.youtube.com/@Vspo77)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Takanashi Kiara Ch. hololive-EN (https://www.youtube.com/@TakanashiKiara)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

VSPO!(ぶいすぽっ!【公式】) (https://www.youtube.com/@Vspo77)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

阿梓从小就很可爱 (https://space.bilibili.com/7706705/)

screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

hololive - Shion Ch. 紫咲シオン (https://www.youtube.com/@MurasakiShion)

screenshot screenshot screenshot screenshot

  • 【holo27 MV】紫咲シオン x ラプラス・ダークネス - リップシンク【ホロライブ x DECO27】 -> https://youtu.be/NjtIAuZQN_E

VSPO!(ぶいすぽっ!【公式】) (https://www.youtube.com/@Vspo77)

screenshot screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot

VSPO!(ぶいすぽっ!) - 八雲べに (https://www.youtube.com/@yakumo_beni)

screenshot screenshot screenshot screenshot screenshot

Moona Hoshinova hololive-ID (https://www.youtube.com/@MoonaHoshinova):

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

AIChannel中国绊爱 (https://space.bilibili.com/484322035)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Nijisanji & bilibili - VirtuaReal (https://www.nijisanji.jp/talents?filter=virtuareal):

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

ISEGYE IDOL (이세계아이돌) - 비챤 VIichan (https://www.youtube.com/@viichan116)

screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot screenshot screenshot

崩坏学园2-灵依娘desu (https://space.bilibili.com/133934):

screenshot screenshot screenshot screenshot screenshot screenshot

懶貓子 & 杏仁ミル

screenshot screenshot

Rumi ch. 懶貓子 (https://youtu.be/Zlef92wDMnA):

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot screenshot screenshot

screenshot

screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot

screenshot screenshot screenshot screenshot

screenshot screenshot

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Warudo on Steam(supporting NiloToonURP) (https://store.steampowered.com/app/2079120/Warudo/)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot screenshot

screenshot

  • Kanauru MV | CapSule - Mori Calliope x Hoshimachi Suisei

screenshot screenshot screenshot

screenshot

screenshot screenshot screenshot screenshot screenshot

VSPO!(ぶいすぽっ!) - 英リサ.Hanabusa Lisa (https://www.youtube.com/@lisahanabusa)

screenshot screenshot screenshot screenshot

myer gugu(崩坏的栗子_108番) (https://www.artstation.com/myergugu)

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Nijisanji & bilibili - VirtuaReal (https://www.nijisanji.jp/talents?filter=virtuareal):

screenshot screenshot screenshot screenshot

screenshot screenshot screenshot screenshot screenshot (after clicking the link below, it will require you to press enter on the link again in your browser)

screenshot (after clicking the link below, it will require you to press enter on the link again in your browser)

screenshot screenshot screenshot screenshot screenshot

screenshot screenshot

screenshot screenshot screenshot

screenshot screenshot screenshot

screenshot

screenshot

screenshot

screenshot screenshot screenshot screenshot

screenshot screenshot screenshot

screenshot

screenshot

screenshot

screenshot screenshot screenshot screenshot screenshot screenshot

VirtuaReal Star - hanser (https://space.bilibili.com/11073)

screenshot screenshot

screenshot

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot

screenshot screenshot screenshot

screenshot screenshot

screenshot screenshot screenshot screenshot

screenshot screenshot screenshot (you need to enter the link to the browser again in order to play it)

Other NiloToonURP's images (gallery)

screenshot

shader ON screenshot shader OFF screenshot

screenshot

shader ON screenshot normal debug screenshot shader OFF screenshot

screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot screenshot


SHADER ON screenshot screenshot BEFORE screenshot AFTER: screenshot see it in motion-> https://youtu.be/D9ocVzGJfI8


3D enviroment model TEST
screenshot screenshot see it in motion-> https://youtu.be/GcW0pNo-zus

湊 あくあ(みなと あくあ,Minato Aqua) model TEST screenshot screenshot screenshot see it in motion-> https://youtu.be/7zICgzdxuGg

see it in motion-> https://youtu.be/X3XoYMTleJ0

Auto Phong tessellation

(shader off, no tessellation) screenshot (shader on, no tessellation) screenshot (shader on, enable tessellation! Phong tessellation can make your model smooth without changing your .fbx) screenshot see it in motion-> https://youtu.be/D-MxyBa0nJE

Kawaii model TEST (@ganbaru_sisters) screenshot screenshot

SHADER ON screenshot SHADER OFF screenshot HD screenshot

shader ON screenshot shader OFF screenshot


BEFORE screenshot AFTER screenshot see it in motion-> https://youtu.be/KpRkxPnHuK0

BEFORE screenshot AFTER screenshot (more shadow from trees) screenshot

BEFORE screenshot AFTER: screenshot see it in motion-> https://youtu.be/hUWacEQH6js

BEFORE

screenshot

AFTER:

screenshot

BEFORE

screenshot

AFTER:

screenshot

add 2D hair shadow & rim light

screenshot

see it in motion-> https://youtu.be/S67GlGAnvWA


BEFORE screenshot AFTER: screenshot

see it in motion-> https://youtu.be/M6FKoEiOAzU


BEFORE screenshot AFTER: Sunny + StreetLight ON screenshot Sunny + StreetLight OFF screenshot Night + StreetLight ON screenshot Night + StreetLight OFF screenshot see it in motion -> https://youtu.be/jDSnJmZrKPw

BEFORE screenshot AFTER screenshot

BEFORE screenshot AFTER screenshot see it in motion -> https://youtu.be/ZfSZOHTBypc

BEFORE screenshot AFTER screenshot see it in motion -> https://youtu.be/EgxiWPk-vaE


BEFORE screenshot AFTER screenshot see it in motion -> https://youtu.be/Ty4DXLFqqDo

BEFORE screenshot AFTER screenshot see it in motion -> https://youtu.be/cebGl_MaWnI

BEFORE screenshot AFTER screenshot see it in motion ->https://youtu.be/nl5z0r8a9vk

screenshot screenshot screenshot see it in motion -> https://youtu.be/uVI_QOioER4

Fake Skin SSS & specular screenshot screenshot

BEFORE screenshot AFTER screenshot

What is included in this simplified tutorial example toon-lit shader repository?

This repository only contains a very simple toon-lit URP tutorial shader example, to help people write their first custom toon-lit shader in URP.

This example shader's default result(without editing material params) = the following picture screenshot

Because this example toon lit shader aims to help people learn shader writing in URP, it is an extremely simplified version. This repository only contains ~3% of the NiloToonURP(full version)'s code, which only contains the most basic & easily understandable sections, to make sure everyone can understand the shader code easily.

It is actually a "How to write your first custom toon-lit shader in URP?" example, instead of a good-looking toon-lit shader (lots of toon-lit tricks are not included in this example shader, for tutorial reasons).

Why create this "simplified version" toon lit shader?

Lots of my shader friends are looking for a toon-lit example shader in URP (not Shader Graph), I want them to switch to URP(instead of still staying in built-in RP), so I decided to provide a simple enough URP toon-lit shader example in URP.

How to try this simplified toon-lit example shader in my URP project?

  1. Clone all .shader & .hlsl files into your URP project.
  2. Put these files inside the same folder.
  3. Change your character's material's shader to "SimpleURPToonLitExample(With Outline)"
  4. make sure at least _BaseMap(albedo) is assigned
  5. setup DONE, you can now test your character with light probe/directional light/point light/spot light
  6. edit the material properties to see how the render result changes
  7. Most important: open these shader files, and spend some time reading them, you will understand how to write custom lit shaders in URP very quickly
  8. Most important: open "SimpleURPToonLitOutlineExample_LightingEquation.hlsl", edit it, and experiment with your own toon lighting equation ideas, which is the key part of toon lit shader!

I see the shader is working now, but the outline is broken?

For this tutorial shader, you can let Unity calculate smoothed normal for you, which can produce a better outline, but doing this will make the lighting slightly incorrect.

  1. click your character's .fbx
  2. In the model tab
  3. edit "Normals" to Calculate
  4. edit "Smoothing Angle" to 180

screenshot
before calculating smooth normal (print screen of the tutorial shader, not NiloToonURP)
screenshot
after calculating smooth normal (print screen of the tutorial shader, not NiloToonURP) screenshot

*NiloToonURP(full version) contains many editor/runtime C# scripts, some of them are for producing correct lighting and perfect outline together automatically.

What is NOT included in this simplified tutorial shader?

For simplicity reasons, most of the features from the NiloToonURP(full version) are removed, or else for beginners, this simple tutorial example shader will be way too complex for reading & learning. Some of the removed features are:

  • face anime lighting (auto-fix face ugly lighting due to vertex normal without modifying .fbx, very important)
  • smooth outline normal auto baking (auto-fix ugly outlines without modifying .fbx and lighting normal, very important)
  • auto 2D hair shadow on the face (very important, it is very difficult to produce good-looking shadow results on the face using URP's shadow map)
  • constant width rim light (similar to the method of Blue Protocol / Genshin Impact)
  • tricks to render eye/eyebrow over hair (ZOffset, stencil, and renderer redraw helpers)
  • PBR specular lighting (GGX)
  • all kinds of MatCap features(additive/multiply/shadow/replace...)
  • "HSV,tint,texture tint,texture override" shadow & outline color control
  • almost all the extra texture input options like roughness, specular, normal map, detail map, parallax, occlusion, emission...
  • LOTS of sliders to control lighting style, shadow color, final color, outline, rim light...
  • per character "dither fade inout / rim light / color control / extra outline / dissolve / ..." control script
  • volume override control of global "rim light / shadow / color control..."
  • special bloom post-process volume that can control the param of character/non-character area separately. Usually to prevent character over-bloom, or make the character emitting bloom on allowed areas only
  • anime postprocessing volume
  • shadow control volume
  • perspective removal per character, to avoid character's 3D distorted by high FOV camera
  • shader stripping editor script, to keep runtime shader memory usage and build time lower
  • (lots of other features)
  • just too much for me to write all the removed features here, the NiloToonURP(full version) and this simple tutorial shader example are two totally different products already

How to get a test character model?

The easiest way to get a character model is by downloading Unity-Chan in the Unity AssetStore.

Also, here are some websites where you can download models(If the creator allows it)

if you downloaded a .pmx file, use MMD4Mecanim to convert it to .fbx & prefab directly inside unity http://stereoarts.jp/

if you downloaded a .vrm file, use UniVRM to convert it to prefab directly inside Unity https://github.com/vrm-c/UniVRM

Editor version requirement

  • Unity 2022.3

Apply our shader to another model (2020-2 early version screenshots) https://youtu.be/uVI_QOioER4

screenshot screenshot screenshot screenshot screenshot screenshot

More old screenshots from the Full version shader:

screenshot https://youtu.be/IP293mAmBCk

screenshot screenshot screenshot

screenshot screenshot

different Background image TEST screenshot screenshot screenshot screenshot screenshot

Credits

model's creator in shader demo image/video:

About

A very simple toon lit shader example, for you to learn writing custom lit shader in Unity URP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • ShaderLab 52.5%
  • HLSL 47.5%