This commit is contained in:
배정훈_yebb 2026-02-04 14:55:44 +09:00
parent ed8a1594e7
commit cd9de4cad0
3438 changed files with 804808 additions and 0 deletions

74
BJH/.gitignore vendored Normal file
View File

@ -0,0 +1,74 @@
# ---> Unity
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore
#
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/
# Recordings can get excessive in size
/[Rr]ecordings/
# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*
# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*
# Visual Studio cache directory
.vs/
# Gradle cache directory
.gradle/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta
# Unity3D generated file on crash reports
sysinfo.txt
# Builds
*.apk
*.aab
*.unitypackage
*.app
# Crashlytics generated file
crashlytics-build.properties
# Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
# Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/*

6
BJH/.vsconfig Normal file
View File

@ -0,0 +1,6 @@
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Workload.ManagedGame"
]
}

8
BJH/Assets/BJH.meta Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c90e99fa3f9ea9c4f8441887d5f0478c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3c376e8ea335c7a429fde4d52503ce52
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,456 @@
# Changelog
## [0.13.1-preview] - 2025-12-22
* fix: shader compile error when screen space shadow is enabled in URP
* fix: check property existence before when converting materials
## [0.13.0-preview] - 2025-12-04
## Added
* feat: add Toon 3D as 2D shader
* feat: assign material props when switching a material to Toon3Das2D
* license: add explicit reference to the Unity-chan license
* doc: add rendering paths section in the feature model doc
## Changed
* package: raise minimum Unity version requirement to 6.0
* deps: use com.unity.film-internal-utilities@0.20.0-preview
* sample: replace Unity-chan assets package-wide
* sample: mention Unity-chan license inside sample description
* sample: rename "Sample" scene to KageBall
* sample: move UVCheckGrid texture into the common folder
* sample: rename ToonShader scenes to UnityChan
* sample: rename sample description and displayName strings
* sample: update Built-in RP / URP / HDRP scenes
* sample: disable CameraController while running tests
* sample: reorganize floor materials grouping
* sample: stop auto-generating materials for the Unity-chan model
* doc: clean up Getting Started guide
* doc: clean up Highlight documentation
* doc: clean up Outline documentation
* doc: clean up AngelRing documentation
* doc: clean up Matcap documentation
* doc: tidy the Samples documentation
* doc: clean up Feature Difference documentation
* doc: move MaterialConverter lower in the TOC
* doc: put Render Pipeline Compatibility on the index page
* doc: use "With Additional Control Maps" term in Modes page
* doc: drop the word "Settings" from TOC entries
* doc: lower Outline doc heading levels
* doc: use emoji markers for feature availability
* doc: improve grammar and clarity
* doc: relocate HDRP box light entry under HDRP features
## Fixed
* fix: share the same cbuffer for the Universal2D pass
* fix: workaround to prevent Built-in RP code from being executed in URP/HDRP
* fix: correct inspector documentation URLs
* fix: drop duplicate/unused Toon and Toon(Tessellation) shader properties
* fix: resolve deprecated UxmlFactory warnings
* fix: warnings - FindFirstObjectByType(), GetScriptingDefineSymbols(), SetScriptingDefineSymbols()
## Removed
* sample: delete unused materials
* sample: remove unnecessary meta files
* sample: delete unused Unity-chan materials for URP
* doc: remove unused images
* doc: remove the “Whats New” documentation pages
* remove: strip all Raytraced Hard Shadow references
## [0.12.0-preview] - 2025-07-28
### Added
* feat: make toon URP work show basic colors/texture and outline in 2D light environment
### Changed
* doc: improve documentation accessibility
### Fixed
* fix: errors when unlit mode is selected in the SceneView
* fix: undefined punctual shadow keywords for HDRP in Unity 6000.0 or later
* fix: dark areas instead of outlines in WebGL and OpenGL
## [0.11.1-preview] - 2025-06-12
### Added
* sample: add metaverse materials and prefabs of Unity-chan in the HDRP sample
### Fixed
* fix: calling InitializeBakedGIData() is necessary for Unity newer than 6000.0.12
* doc: fix incorrect table layout documentation in sections under Inspector Window Settings
## [0.11.0-preview] - 2024-12-11
### Changed:
* api: change the accessor of internal test classes to internal
* api: change the accessor of UTS3MaterialHeaderScope to internal
* api: change the accessor of UTS3MaterialHeaderScopeList to internal
* api: change the accessor of UTS3MaterialEditorExtension and MaterialEditorExtension to internal
* docs: update Unity Editor Compatibility
* deps: use com.unity.film-internal-utilities@0.19.2-preview
### Removed:
* api: remove unused empty UniversalToonShaderInfo class
## [0.10.2-preview] - 2024-08-20
### Fixed:
* Plane objects can not be chosen from their front face in SceneViews.
* Wrong include path for Linux systems.
## [0.10.1-preview] - 2024-07-08
### Fixed:
* URP Shader Eroors on newer then Unity 6000.0.9.
* HDRP Shder Erorrs on Unity 6. (Thanks to riina)
* SceneView Flickers when Light probe on HDRP shaders.
## [0.10.0-preview] - 2024-04-14
### Updated:
* URP shader is compatible with DOTS instancing. (Thanks to Hum9183)
### Fixed:
* Base Map/1st Shade Map/2nd Shade Map missing Tiling & Offset values are applied to Clipping Masks.
* Undoing/Redoing Tiling & Offset won't be reflected on the screen until slection is changed.(Thanks to Hum9183)
## [0.9.7-preview] - 2024-03-20
### Updated
* URP Shader is comaptible with Light Layer. (Thanks to Hum9183)
* Fixed:Base Map/1st Shade Map/2nd Shade Map missing Tiling & Offset controls for all the render pipelines. (Thanks to Hum9183)
## [0.9.6-preview] - 2023-09-24
### Updated
* URP Shader is comaptible with DECAL. (Thanks to Hum9183Hum9183)
* Installation manual is suitable for new than Unity 2021.
### Fixed:
* A invalid reqnder queue when when Clipping is "On" or "Clip Transparency". (Thanks to TakeshiMiyakawaCR)
## [0.9.5-preview] - 2023-08-25
### Fixed
* A URP Shader error when using newer than 2023.1.3.
* A Null Reference Exception error with HDRP tesslation shader.
## [0.9.4-preview] - 2023-05-01
* Added a exlanation for URP line issue into Kown Issues.
## [0.9.3-preview] - 2023-04-18
* Deleted warnings when creating materials with URP and Built-in shaders.
## [0.9.2-preview] - 2023-04-12
### Fixed
* URP shader doesn't recieve shadows in player builds.
## [0.9.1-preview] - 2023-03-30
### Fixed
* Some wrong information for shader path in docs.
* Errors caused by mishandling for analytics.
## [0.9.0-preview] - 2023-03-16
### Updated
* Minimum Unity version is 2020.3.45, 2021.3.19,2022.2.11.
* Compatiblity with Universal RP Forward+.
## [0.8.5-preview] - 2023-02-13
### Fixed:
* Some wrong information in docs.
## [0.8.4-preview] - 2023-01-19
### Updated:
* Shaders are compatible with some console platforms.
## [0.8.3-preview] - 2023-01-11
### Fixed:
* URP Shader doesn't work with Unity 2022.2.2f1.
* Warrnings in HDRP shaders.
## [0.8.2-preview] - 2022-09-09
### Updated:
* Updated some documents.
### Fixed:
* Deleted some warinings.
* The converter ignores custom render queue in Unitychan Toon Shader ver 2 materials.
* The converter sometimes misidentified materials older than 0.7.x in Built-in UTS3 as older materials in Unitychan Toon Shader Ver 2.0.7.
* URP shader was not working for WebGL/GLES 3.0.
## [0.8.1-preview] - 2022-08-24
### Updated:
* Updated some docs.
### Fixed:
* TOC didn't include the link to Material Converter page.
* A image in index.md wasn't displayed in doc web site.
## [0.8.0-preview] - 2022-08-02
### Updated:
* All the render pipeline shaders are integrated.
* Added material converter to above which is capable of Unity-Chan Toon Shader V2, Universal Toon and UTS3 older than 0.7.x.
* The package is compatible with 2020.3, 2021.3, 2022.1 and 2022.2. 2019.4 is no longer supported.
## [0.7.5-preview] - 2022-06-27
* Improved the logic for blending outlines into a scene when there are no directional lights in the scene.
## [0.7.4-preview] - 2022-06-25
### Fixed:
* HDRP:Metaverse light was not working properly.
### Updated:
* Added `Getting Started` to the documentation.
* Added more description to Outline doc.
* Added more description to RimLight doc.
* Mended Meteverse doc to use property, insted of indented menus.
* Mended SceneLightSetting doc to use property instead of indented menus.
* Re-wrote the doc to install samples.
* Updated some images in docs.
* Improved some wording in documentation.
## [0.7.3-preview] - 2022-06-15
### Updated:
* HDRP shader is compatible with 2022.2.0 a16.
* Attribute class for Mono-behaviors for UTS3.
* Mac Graphics Tests use rsync instead of scp.
* New retry count to several commands in Mac graphics tests.
* 3 basic color is now Three basic colors.
* `NormalMap Settings` is now an independent block.
* Updated docs.
## [0.7.2-preview] - 2022-05-30
### Fixed:
* Dead links for Toon EV adjustment HELP URL Buttons.
* Some classes are accessible from outside.
## [0.7.1-preview] - 2022-05-26
### Updated:
* Polished docs.
## [0.7.0-preview] - 2022-05-23
### Updated:
* Shader version properties in all the render pipeline shaders.
* Updated installation.md.
* The inspector window is significantly reorganized.
* Renamed `Double Shade with Feather` to `Standard`.
* Renamed `Shading Grade map` to `With Additional Control Maps`.
* Replaced toggle buttons Off/Active UI to Unity standard toggles.
* Renamed `Basic Shader Settings` to `Shader Setting`.
* Replaced some toggle buttons, such as `Emissive UV Coord`, `Specular Mode`, to dropdown menus
* Specular mode name are not just `Off`/`On` but `Soft`/`Hard`.
* Made everything in the inspector hidden when disabled to be shown but grayed out.
* Folder headers use Unity standard style in the inspector window when SRP core newer than 12 is not installed.
* Folder headers use SRP style in the inspector window when SRP core newer than 12 is installed.
* Renamed `【DX11 Phong Tessellation Settings】` to `Legacy Pipeline: Phong Tessellation Settings` as it works on Mac too.
* Renamed term, `Technique`, to `Mode`.
* Renamed term, `Contribution`, to `Effectiveness`.
* Renamed foldout name `Light Color Contribution` to `Scene Light Effectiveness Settings`
* Moved `Gi Intensity` and `Scene Light hi cut filter` to bellow it.
* Renamed `Scene Hi-cut filter` to `Limit Light Intensity` .
* Renamed term, `High Color`, to `Highlight`.
* Renamed `Settings for PointLights in ForwardAdd Pass` to `Point Light Settings`.
* Renamed `Point Light High Cut Filter` to `Filter Point Light Hight Light`.
* Re-organized Stencil and Clipping settings in the inspector window.
* Renamed `Stencil Out` to `Draw If Not Equal to`.
* Renamed `Stencil Mask` to `Replace Stencil Buffer with`.
* Renamed `Stencil No.` to `Stencil Value`.
* The above used to be a number field. Now it is editable with IntSlider.
* Renamed `Inverse MatCap Mask` to `Invert MatCap Mask`.
* Renamed `Trans Clipping Mode` to `Clip Transparency`.
* Renamed `Unlit Intensity` to `Metaverse Light Intensity` and `Buiilt-in light settings` are moved into `Metaverse Settings` foldout header in the inspector so that users can understand setting them is not necessary for usual uses.The setting works only when no directional lights are on the scenes like some VRChat ones.
* _Unlit_Intensity ranges defined in all the shaders are from 0 to 4. originally they were from 0.001 to 4.
* Changed built-in light default brightness from 1 to 0.
* Renamed `Basic Look Dev` to `Shading Step and Feather Settings`.
* `Advanced settings` in Outline foldout header are always shown.
* Renamed `Outline Sampler` in Ontline foldout header to `Outline Width Map`.
* Renamed `Outline-tex` in Ontline foldout header to `Outline Color Map`.
* Renamed Culling mode itemes from `CullingOff`, `FrontCulling` and `BackCulling` to `Off`, `Frontface` and `Backface`.
* Renamed `Receive System Shadows` to `Receive Shadows`.
* Renamed `Shadow Mask on High Color` to `Highlight Blending on Shadows`.
* Renamed `Highlight Power on Shadows` to `Blending Level`.
* Renamed `Camera Rolling Stabilizer` to `Stabilize Camera Rolling`.
* Renamed `ViewShift of Color` to `Color Shifting with View Angle`.
* Renamed `ViewShift` to `Shifting Target Color`.
* Renamed `Use Outline Texture` to `Outline Color Map`.
* Renamed `Use Baked Normal for Outline` to `Baked Normalmap`.
* Renamed `HighColor Power on Shadow` to `Brightness on Shadows`.
* Renamed `MatCap Power on Shadow` to `MatCap Blending on Shadows`.
* Renamed `Color Shift Speed` to `Color Shifting Speed`.
* Renamed `Blur Level of ShadingGradeMap` to `ShadingGradeMap Blur Level`.
* Renamed `MatCap Sampler` to `MatCap Map`.
* Renamed `Blur Level of MatCap Sampler` to `MatCap Blur Level`.
* Renamed `Rim Light Power` to `Rim Light Level`.
* Renamed `RimLight Inside Mask` to `Adjust Rim Light Area`.
* Renamed `Light Direction Mask` under Rim Light Settings to `Light Dreiction Mode`.
* Renamed `Light Direction Mask Level` to `Light Direction Rim Light Level`.
* Renamed `Antipodean(Ap)_RimLight` to `Inversed Direciton Rim Light`.
* Renamed `AP_RimLgiht Power` to `Inversed Rim Light Level`.
* Renamed `Color Blend Mode` to `Color Bleinding Mode`.
* Renamed `GI Intesity` to `Light Probe Intensity`
.
### Added:
* Legacy: Compatibility with Single Pass Stereo Rendering.
* Legacy: Graphics Test 2022.2.
* Universal RP: Graphics Test 2022.2.
* HDRP: Graphics Test 2022.2.
* Project Settings, but quite simple yet.
* Help buttons to foldout headers in the inspector window, which work newer than Unity 2021.1.
* Unity-Chan Toon Shader 2 Converter window opens when old shaders are in projects on start up or right after the package is installed.
* Dependency to srp core take advantege of its help system.
* Added Tips to Culling Mode popup menu in the inspector window.
* Added Tips to GUI Toggles in the inspector window.
* Added Tips to Range Properties in the inspector window.
### Removed:
* Removed `● Additional Settings` in the Inspector window.
* Removed Simple UI.
* Removed Japanese and English manual link buttons.
* Removed Game Recommendation window and changed the default values of shader variables.
* Removed 【】in the Inspector window.
* Removed ● in the Inspector window.
* Removed unnecessary labels in the inspector such as `System Shadows:`
* `RTHS(Realtime Hard Shadow` is deprecated now as it will not be Unity official package.
* RTHS is not shown unless `Show deprecated features in the inspector` is checked in the `Project Settings Window`.
### Fixed:
* Undo/Redo was not working on some items in the inspector window.
* Fixed Indent in NoramMap Settings in the inspector window.
* `Point Light High Cut Filter` Side Effects. It just shows or hides the point lights' highlight.
* Unify the notation in the converter with Unity-Chan Toon Shader 2.
* Fixed some popups in the inspector window not to use connected names without spaces. Each name is separated by a space.
* `Rimlight Mask` on URP and HDRP version were not working well.
* Single pass stereo rendering was not working with legacy(built-in) tessellation shaders.
* URP shader errors when used with Unity 2022.2.
## [0.6.1-preview] - 2022-02-24
### Fixed:
* typo in inspector.
* removed .sample.json under Samples~ folder
* Some unnecessary classes were public.
* Unnatural expression `Multiply or Additive` to `Multiply or Add`.
## [0.6.0-preview] - 2022-02-22
### Updated:
* Replaced test VM to use gtx1080
* Updated README.md
* Added LICENSE.md under the project folder.
* Shader version properties in all the render pipeline shaders.
### Fixed:
* Some unnecessary classes were public.
* URP: a depth output issue later then 10.0.x. (Thanks to riina)
* Typos in README.md
* promotion test issues.
* no .sample.json files under each render-pileline sample folder.
## [0.5.0-preview] - 2022-01-20
### Updated:
* Updated documentation and folder structure in order to make the package structure friendly to Unity official package.
* Tentatively deleted Japanese documentation before making the package ready for Unity standard translation system.
* HDRP: made UTS compatible with HDRP AOV. Capable of outputting Albedo, Normal and so on using AOV Image Sequence Recorder newer than 3.0.
* More effective and strict internal tests.
### Fixed:
* HDRP:reduced shader variants by disabling some debug pragmas.
* URP:UTS materials don't receive shadows when using newer than Unity 2021.1.
* Legacy:Unable to disable Outline.
* AutoRenderQueue is disabled when material inspector is unfocused.
### Known Issues:
* HDRP: When outputting AOV images, UTS Outline is also put into the images. In such cases, please disable OUTLINE in Material Inspectors.
## [0.4.1-preview] - 2021-10-20
### Added
* HDRP:Something similar to HDRP exposure compensation.
### Fixed:
* typo in documents.
* missing mono behaviors in sample scenes.
* HDRP:BoxLightAdjustment script. some flags are not updated properly when some checkboxes are clicked.
* HDRP:Shader compile errors when used with HDRP 12.1
## [0.4.0-preview] - 2021-10-13
### Added
* HDRP: Compatibility with Box Light, a spot light variation, as main lights.
* HDRP: BoxLightAdjustment mono-behavior
### Fixed:
* URP: Unstable SRP Compatibility. Thanks to tangx246.
* URP: Outline pass is not compatible with VR when Single Pass Instanced rendering is chosen. Thanks to tangx246 again.
* URP: Some warnings.
### Updated:
* Documentation~/en/FeatureModel_en.md. Thanks to riina.
* Platforms in documentation.
## [0.3.2-preview] - 2021-09-28
### Added
* doc: HDRP: description for ray-trace shadow.
### Fixed
* HDRP: fix Gaps between self-shadow and ray-trace shadow.
## [0.3.1-preview] - 2021-09-27
* description is above.
## [0.3.0-preview] - 2021-09-16
* HDRP: Fixed weird steps when more than 3 point lights are in a scene.
* HDRP: Added Toon EV Adjustment per Model.
* HDRP: Compatible with Raytraced Hardshadow when DX12 is chosen as API.
* Legacy: Applied a fix for outline flicker in VR chat.
## [0.2.2-preview] - 2021-08-24
* Modified Toon EV Adjustment Curve inspector.
* Excluded unnecessary files from release zip.
* Improved folder structure in order not to cause long file name errors when included in other packages.
* Added documentation for Toon EV Adjustment Curve.
## [0.2.1-preview] - 2021-08-18
* HDRP: Fixed: Multiple instances of Toon EV adjustment curve can exist in one scene.
## [0.2.0-preview] - 2021-08-17
* HDRP: Toon EV adjustment curve as a Mono-behavior.
* Legacy, Universal and HDRP: Some texture samplers,such as _MainTex, _NormalMap, _1st_ShadeMap and _2nd_ShadeMap, are shared by 1 sampler, sampler_MainTex, in order to avoid sampler number exceeding errors.
* Integrated Textures feature is removed from all the render pipeline versions instead of above.
* HDRP and URP are compatible with SRP Batcher.
* Legacy, Universal and HDRP: Added image comparison tests for Windows Vulkan API.
* HDRP: Added light probe compatibility.
* Added a material converter from Unity-chan Toon Shader newer than 2.0.7 to Unity Toon Shader. (Experimental)
## [0.1.0-preview] - 2021-07-07
* HDRP: Emission started to work.
* HDRP: Improved exposure.
* HDRP: Implemented tessellation to the outline pass.
* deleted ValidationConfig.json.
## [0.0.7-preview] - 2021-06-14
* Made samples installable.
## [0.0.6-preview] - 2021-06-04
* Modified documents
## [0.0.5-preview] - 2021-05-12
* Channel Mask rendering feature put the results into alpha channel.
## [0.0.4-preview] - 2021-05-09
* Universal RP shaders are compatible with SRP 12.
## [0.0.3-preview] - 2021-05-05
* Universal RP and HDRP shaders are compatible with SRP 10.
* HDRP shaders' DepthOnly path is replaced to DepthForwardOnly path.
* Internal tests are compatible with not only 2019.4 but also 2020.x now.
## [0.0.2-preview] - 2021-03-30
* Legacy shaders are integrated into two shaders.
* The number of textures is reduced experimental
* Added Clipping Matte feature for HDRP.
* Removed almost all the warnings when compiling shaders.
* Grafted graphics tests from Scriptable Render Pipelines.
* Reorganized documents.
* Reorganized repository folder structure.
* Added feature model list FeatureModel_en.md
## [0.0.1-preview] - 2021-03-11
* Reorganized Unity-chan/Universal Toon Shader as Unity Toon shader.

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2c2487b337be842428cd282ca300a522
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
# Contributing
## If you are interested in contributing, here are some ground rules:
* ... Define guidelines & rules for what contributors need to know to successfully make Pull requests against your repo ...
## All contributions are subject to the [Unity Contribution Agreement(UCA)](https://unity3d.com/legal/licenses/Unity_Contribution_Agreement)
By making a pull request, you are confirming agreement to the terms and conditions of the UCA, including that your Contributions are your original creation and that you have complete right and authority to make your Contributions.
## Once you have a change ready following these ground rules. Simply make a pull request

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d6964b21905e5cf4c9bad823e15bc7a6
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,44 @@
# Angel Ring Projection Settings
The Angel Ring effect for UTS expresses shine or luster in hair.
This effect always appears in a fixed position as seen from the camera.
Angel Ring requires:
1. [Unity Toon Shader mode](Modes.md) set to **With Additional Control Maps**.
2. 2nd UV in the model.
![The head of a chibi-style character with feathered hair and cat ears. The head is oriented from three angles: side, front, and back. In each angle, two bright highlights appear in the same place on the left and right.](images/AR_Image.png)
- [Angel Ring Projection](#angel-ring-projection)
- [Angel Ring](#angel-ring)
- [Offset U and V](#offset-u-and-v)
- [Alpha Channel as Clipping Mask](#alpha-channel-as-clipping-mask)
## Angel Ring Projection
Enable the Angel Ring effect for UTS, which expresses shine or luster in hair.
### Angel Ring
Angel Ring: Texture(sRGB) × Color(RGB). Default: Black.
**Unity Toon Shader** adds the color to the lighting results, and
you can also clip the effect using the alpha of the texture.
See [Alpha Channel as Clipping Mask](#alpha-channel-as-clipping-mask) for details.
![A dark square texture, with lighter v-shaped areas at the left and right edges.](images/para_height2.png)<br/>
Angel Ring Texture Example
### Offset U and V
* Offset U: Adjusts the Angel Ring's shape in the horizontal direction.
* Offset V: Adjusts the Angel Rings shape in the vertical direction.
<video title="The head of a chibi-style character, oriented face-on. The v-shaped highlights in the hair grow and shrink vertically, and move up and down." src="images/AngelRingOffsetUV_1.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
### Alpha Channel as Clipping Mask
The texture's alpha channel acts as a clipping mask. When disabled, alpha has no effect.
![The head of a chibi-style character, with the v-shaped highlights on the left and right of their hair. This uses a 1024 x 1024 RGBA Compressed DXT5|BC3 Norm transparent square texture with white v-shaped areas at the left and right edges.](images/AngelRingWithAlpha_Output.png)<br/>
Left: The alpha of the Angel Ring texture. Right: Output with **Alpha Channel as Clipping Mask** enabled.

View File

@ -0,0 +1,81 @@
# Three Color Map and Control Map Settings
**Three Color Map and Control Map Settings** provide basic cel-shading settings in the **Unity Toon Shader**. These settings allow you to control the rendering of light and shadow areas independently from the actual light color. UTS provides detailed control over whether the directional light color affects materials. Please refer to [Scene Light Effectiveness Settings](SceneLight.md) for more information.
* [Three Basic Color Maps](#Three-basic-color-maps)
* [Base Map](#base-map)
* [Apply to 1st Shading Map](#apply-to-1st-shading-map)
* [1st Shading map](#1st-shading-map)
* [Apply to 2nd Shading Map](#apply-to-2nd-shading-map)
* [2nd Shading Map](#2nd-shading-map)
* [Example of Three Color Map Operation](#example-of-Three-color-map-operation)
<br><br>
* [Shadow Control Maps](#shadow-control-maps)
* [1st Shading Position Map](#1st-shading-map)
* [2nd Shading Position Map](#2nd-shading-map)
* [Example of Shadow Control Map Application](#example-of-shadow-control-map-application)
<br><br>
## Three Basic Color Maps
## Base Map
Base Color: Texture(sRGB) × Color(RGB). The default color is white. The base color represents the color of the unshaded areas of objects or characters.
| Base Color Map (Face) | (Hair) | Result |
| ---- | ---- |---- |
| <img alt="A yellow texture map with different-colored areas for skin, ears, eyes, cheeks, and other parts of a face." src="images/yuko_face3_main.png" height="256"> | <img alt="A grey texture map with two brown areas for cat-like ears, and lighter grey brushstrokes for parts of the hair." src="images/yuko_hair.png" height="256"> |<img alt="A chibi-style face with yellow skin, grey hair, brown cat ears, large eyes, and rosy cheeks." src="images/YukoFace.png" height="256"> |
### Apply to 1st Shading Map
Apply **Base Map** to the **1st Shading Map**. When you check **Apply to 1st Shading Map**, the texture map in **1st Shading Map** is not applied for rendering and the Inspector window disables its texture UI.
## 1st Shading Map
The map used for the brighter portions of the shadow. Texture(sRGB) × Color(RGB). The default color is white.
| **1st Shading Map** (Face) | (Hair) | Result |
| ---- | ---- | ---- |
| <img alt="A similar texture map to the base map, but the background is now tan." src="images/yuko_face3_B.png" height="256"> | <img alt="A similar hair map to the base map, but the background is darker, and the brushstrokes have a blue gradient." src="images/yuko_hairB.png" height="256"> |<img alt="The chibi-style face, now with shadows at the bottom of the hair and face, and over the eyes." src="images/YukoFace1stShadingMap.png" height="256"> |
### Apply to 2nd Shading Map
Apply **Base Map** or the **1st Shading Map** to the **2nd Shading Map**. When you check **Apply to 2nd Shading Map**, the texture map in **2nd Shading Map** is not applied for rendering and the Inspector window disables its texture UI.
### 2nd Shading Map
The map used for the darker portions of the shadow. Texture(sRGB) × Color(RGB). The default color is white.
| **2nd Shading Map** (Face) | (Hair) | Result |
| ---- | ---- | ---- |
| <img alt="A similar texture map to the base map, but the background is now a dark orange." src="images/yuko_face3_C.png" height="256"> | <img alt="A similar hair map to the base map, but the background is even darker." src="images/yuko_hairC.png" height="256"> |<img alt="The chibi-style face, now with darker shadows at the edges of the hair." src="images/YukoFace2ndShadingMap.png" height="256"> |
## Shadow Control Maps
Textures that dictate the fixed shadows of the material.
### 1st Shading Position Map
Specifies the position of fixed shadows that fall in 1st shade color areas in UV coordinates. **1st Position Map**: Texture(linear).
### 2nd Shading Position Map
Specifies the position of fixed shadows that fall in 2nd shade color areas in UV coordinates. **2nd Position Map**: Texture(linear).
<br><br>
## Example of Shadow Control Map Application
| Base Map | 1st Shading Map | Shading Position Map |
| ---- | ---- | ---- |
| <img alt="A UV map texture that contains all the parts of a chibi-style character model." src="images/utc_all2_light.png" height="256"> |<img alt="The same UV map but some areas have a darker color." src="images/utc_all2_dark.png" height="256"> |<img alt="A mostly white texture, with 3 black hair shapes." src="images/utc_all2_offsetdark.png" height="256"> |
No Shadow Control Maps:
![A chibi-style character model with rabbit ears. In the Inspector window, the 1st Shading Position Map and 2nd Shading Position Map properties are empty.](images/ShadowControlMap0.png)
1st Shading Position Map:
![The same model. In the Inspector window, the 1st Shading Position Map property is set to the shading position map texture.](images/ShadowControlMap1.png)
2nd Shading Position Map:
![The same model. In the Inspector window, the 2nd Shading Position Map property is set to the shading position map texture.](images/ShadowControlMap2.png)
Both:
![The same model. In the Inspector window, both the 1st Shading Position Map and 2nd Shading Position Map properties are set to the shading position map texture. ](images/ShadowControlMap3.png)

View File

@ -0,0 +1,91 @@
# Emission Settings
Emission controls the color and intensity of light emitted from the surface. When you use an emissive material in your scene, it appears as a visible source of light. The meshes appear to be self-illuminated.
[A chibi-style model standing between two red cubes, which light the model with emissive light.](images/EmissiveAnimation.png)
* [Emission Map](#emission-map)
* [Emission Map Animation](#emission-map-animation)
* [Base Speed (Time)](#base-speed-time)
* [Animation Mode](#animation-mode)
* [Scroll U/X direction](#scroll-ux-direction)
* [Scroll V/Y direction](#scroll-vy-direction)
* [Rotate around UV center](#rotate-around-uv-center)
* [Ping-pong moves for base](#ping-pong-moves-for-base)
* [Color Shifting with Time](#color-shifting-speed-time)
* [Destination Color](#destination-color)
* [Color Shifting Speed (Time)](#color-shifting-speed-time)
* [Color Shifting with View Angle](#color-shifting-with-view-angle)
* [Shifting Target Color](#shifting-target-color)
## Emission Map
Primarily used with the Bloom Post Effect and represents luminous objects.
![The Unity logo against a transparent background. The color fades from bright white at the center to black at the edges. The texture dimensions are 1024 x 1024, the texture size is 1.3MB, and the texture type is RBGA Compressed DXT5|BC3 UNorm.](images/EmissionMapSample.png)
## Emission Map Animation
When enabled, the UV and color of the **Emission Map** animate.
<video title="A cube with the Unity logo on each face. The logo loops through the color spectrum, and vertical black bars scroll horizontally across the face." src="images/EmissionAnimation.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
### Base Speed (Time)
Specifies the base update speed of scroll animation. If the value is 1, it will scroll in 1 second. Specifying a value of 2 results in twice the speed of a value of 1, so it will scroll in 0.5 seconds.
Base Speed = 0.5:
<video title="A cube with a pink Unity logo on each face. Vertical black bars scroll horizontally across each face." src="images/EmissionMapBaseSpeedHalf.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
Base Speed = 1.5:
<video title="The same cube. The black bars scroll faster." src="images/EmissionMapBaseSpeedOneAndHalf.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
### Animation Mode
Controls the animated scrolling of the emissive texture.
UV Coordinate Scroll:
<video title="A cube with a pink Unity logo on each face. Vertical black bars scroll horizontally across each face." src="images/EmissionMapBaseSpeedHalf.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
View Coordinate Scroll:
<video title="The same cube. A black horizontal wipe effect occurs across the left and front faces." src="images/EmissionMapViewCoordinateScroll.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
### Scroll U/X direction
Specifies how much the Emissive texture should scroll in the U-direction (x-axis direction) when updating the animation. Base Speed (Time) x Scroll U Direction x Scroll V Direction determine the animation speed.
### Scroll V/Y direction
Specifies how much the Emissive texture should scroll in the V-direction (y-axis direction) when updating the animation. Base Speed (Time) x Scroll U Direction x Scroll V Direction determine the animation speed.
### Rotate around UV center
When Base Speed=1, the Emissive texture will rotate clockwise by 1. When combined with scrolling, rotation will occur after scrolling.
<video title="A cube with the Unity logo on each face. The logo is visible through black bars that rotate." src="images/RotateAroundUVCenter3.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
### Ping-pong moves for base
When enabled, you can set PingPong (back and forth) in the direction of the animation.
<video title="A cube with a pink Unity logo on each face. Vertical black bars scroll back-and-forth horizontally across each face." src="images/PingPongMove.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
### Color Shifting with Time
The color multiplied by the Emissive texture changes by linear interpolation (Lerp) toward the Destination Color.
#### Destination Color
Target color for [Color Shifting with Time](#color-shifting-with-time), must be in HDR.
#### Color Shifting Speed (Time)
Sets the reference speed for color shift. When the value is 1, one cycle should take around 6 seconds.
<video title="A cube with the Unity logo on each face. The logo loops through the color spectrum, and vertical black bars scroll horizontally across the face." src="images/ColorShiftingWithTime.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
### Color Shifting with View Angle
Emissive color shifts consistent with view angle. The further out from the front of the camera, the more it changes to [Shifting Target Color](#shifting-target-color).
#### Shifting Target Color
Target color for [Color Shifting with View Angle](#color-shifting-with-view-angle) which must be in HDR.
<video title="A cube with the Unity logo on each face. Vertical black bars scroll horizontally across the face. The front face is pink and the left and lower faces are purple." src="images/ColorShiftingWithView.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>

View File

@ -0,0 +1,101 @@
## Feature Differences in Each Render Pipeline
| Function | Built-In | URP | HDRP |
|--------------------------------------------------------------------------------------------|------------------------|--------------------|------------------------|
| ***1. Modes*** | | | |
| &ensp; Standard | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; With Advanced Control Map | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| ***2. Shader Settings*** | | | |
| &ensp; Culling | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Stencil | :heavy_check_mark: | :heavy_check_mark: | :x: |
| &ensp; Stencil Value | :heavy_check_mark: | :heavy_check_mark: | :x: |
| &ensp; Clipping | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Clipping Mask | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Invert Clipping Mask | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Use Base Map Alpha as Clipping Mask | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| ***3. Three Color Map and Control Map Settings*** | | | |
| &ensp; Base Map | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; 1st Shading Map | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; 2nd Shading Map | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Normal Map | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Shadow Control Maps | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| ***4. Shading Steps and Feather Settings*** | | | |
| &ensp; Base Color Step | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Base Shading Feather | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Shading Color Step | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Point Light Step Offset | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Filter Point Light Highlights | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| ***5. Highlight Settings*** | | | |
| &ensp; Highlight Power | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Specular Mode | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Color Blending Mode | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Highlight Blending on Shadows | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Highlight Mask | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Highlight Mask Level | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| ***6. Rim Light Settings*** | | | |
| &ensp; Rim Light Color | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Rim Light Level | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Adjust Rim Light Area | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Inverted Light Direction Rim Light | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Rim Light Mask | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| ***7. Material Capture(MatCap) Settings*** | | | |
| &ensp; MatCap Map | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; MatCap Blur Level | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Color Blending Mode | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Scale MatCap UV | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Rotate MatCap UV | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Stabilize Camera Rolling | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Normal Map | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Rotate Normal Map UV | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; MatCap Blending on Shadows | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; MatCap Camera Mode | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; MatCap Mask | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; MatCap Mask Level | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Invert MatCap Mask | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| ***8. Emission Settings*** | | | |
| &ensp; Emission Map | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Use the alpha channel of Emissive Map as a Clipping mask | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Emission Map Animation | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Base Speed (Time) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Animation Mode | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Scroll U/X direction | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Scroll V/Y direction | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Rotate around UV center | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Ping-pong moves for base | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Color Shifting with Time | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Color Shifting with View Angle | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| ***9. Angel Ring Projection Settings*** | | | |
| &ensp; Angel Ring | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Offset U/V | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Alpha Channel as Clipping Mask | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| ***10. [Scene Light Effectiveness Settings](SceneLight.md) for all UTS color properties*** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| ***11. Metaverse Settings*** | | | |
| &ensp; Metaverse Light | :heavy_check_mark: | :heavy_check_mark: | :x: |
| &ensp; Metaverse Light Intensity | :heavy_check_mark: | :heavy_check_mark: | :x: |
| &ensp; Metaverse Light Direction | :heavy_check_mark: | :heavy_check_mark: | :x: |
| ***12. Outline Settings*** | | | |
| &ensp; Outline Mode | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Outline Width | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Outline Color | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Blend Base Color to Outline | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Offset Outline with Camera Z-axis | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Camera Distance for Outline Width | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Outline Color Map | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Rotate around UV center | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Ping-pong moves for base | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Color Shifting with Time | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Color Shifting with View Angle | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| ***13.Tessellation Settings*** | DX11/DX12/Vulkan/Metal | :no_entry_sign: | DX11/DX12/Vulkan/Metal |
| ***14. EV Adjustment in high intensity light scenes*** | :no_entry_sign: | :no_entry_sign: | :heavy_check_mark: |
| ***15. DXR (ray-traced) shadows*** | :no_entry_sign: | :no_entry_sign: | :heavy_check_mark: |
| ***16. [Box Light](HDRPBoxLight.md)*** | :no_entry_sign: | :no_entry_sign: | :heavy_check_mark: |
| ***17. Rendering Paths*** | | | |
| &ensp; Forward | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| &ensp; Forward+ | :no_entry_sign: | :heavy_check_mark: | :no_entry_sign: |
| &ensp; Deferred | :x: | :x: | :heavy_check_mark: |
| &ensp; Deferred+ | :no_entry_sign: | :x: | :no_entry_sign: |
Notes:
* :heavy_check_mark: : Supported
* :no_entry_sign: : Not supported (e.g. limitations in the render pipeline, etc)
* :x: : Currently not available

View File

@ -0,0 +1,115 @@
# Getting Started with Unity Toon Shader
The **Unity Toon Shader (UTS)** provides extensive controls
for professional cel-shading across the Built-in Render Pipeline, URP, and HDRP.
This page walks through the key concepts of cel-shading step by step.
Follow these steps for simple cel-shading:
1. [Put a directional light in the scene](#put-a-directional-light-in-the-scene).
2. [Create materials for cel-shading and set the appropriate shader](#creating-a-new-material-and-applying-unity-toon-shader).
3. [Set up three basic colors](#setting-up-three-basic-colors).
4. [Determine the character's visual style](#adjusting-the-edges-of-the-three-basic-color-regions).
5. [Set up the outline](#set-up-the-outline).
After mastering the basics, explore:
- [Advanced techniques](#advanced-techniques) such as:
* [Eliminating outlines around eyes](#eliminating-outlines-around-eyes).
* [Adding luster to hair](#adding-luster-to-hair).
- [More options for stunning professional cel-shading](#more-options-for-stunning-professional-cel-shading) to push the look further.
## Put a directional light in the scene
To make cel-shading work, you need to place at least one [directional light](https://docs.unity3d.com/2022.2/Documentation/Manual/Lighting.html) in the scene.
Start with a neutral white light so you can see how UTS-specific settings influence the shading
without additional color shifts.
## Creating a new material and applying Unity Toon Shader
Start by [creating a material](https://docs.unity3d.com/6000.0/Documentation/Manual/materials-introduction.html) for your mesh and then assign the UTS shader:
1. Create a new material and assign it to the mesh you plan to shade.
2. In the Inspector, choose **Toon > Toon** or **Toon > Toon (Tessellation)** from the Shader drop-down.
These shaders work on all supported render pipelines: Built-in Render Pipeline, URP, and HDRP.
3. Once assigned, the model will render as a flat silhouette until
you provide the texture maps that define the cel-shaded look.
![The same character model with the Toon shader selected in the Inspector window. The model is now a flat white silhouette.](images/AppliedUTS.png)
The directional light will no longer control shading in the usual way because UTS overrides the lighting response according to artist-driven parameters. UTS also allows you to decide whether and how the directional light color influences materials. See [Scene Light Effectiveness Settings](SceneLight.md) for guidance.
## Setting up three basic colors
UTS renders meshes in three conceptual regions:
1. **Base Map** for lit areas
2. **1st Shading Map** for lighter shadows, and
3. **2nd Shading Map** for the darkest tones.
For basic cel-shading you can focus on the Base Map and 1st Shading Map.
The [Three Color Map and Control Map Settings](Basic.md) page explains the controls in depth.
![The same character model with the same shader selected. The Base Map property and the 1st Shading Map properties in the Inspector window are set to UV texture maps that have the shapes and colors for the model. The character is now fully textured.](images/AppliedTextures.png)
Follow these steps:
1. Author or import textures for the Base Map and 1st Shading Map. They can be separate textures or the same texture colored differently.
2. Assign the Base Map to define the fully lit colors.
3. Assign the 1st Shading Map to introduce a darker tone that UTS will show based on your shading step settings.
![UV map textures of a chibi-style model for lit and lighter shadows areas](images/UnityChanTextures.png)<br/>
Left: an example Base Map. Right: an example 1st Shading Map.
## Adjusting the edges of the three basic color regions
The borders between your color regions drive the perceived style of the character.
[Shading Steps and Feather Settings](ShadingStepAndFeather.md) let you adjust the position of those borders
and whether they are sharp or blended.
Follow these steps:
1. Increase **Base Color Step** so the **1st Shading Map** becomes visible and the contrast between lit and shadowed regions matches your intent.
2. Use **Base Shading Feather** to control how crisply the regions transition. Lower values create graphic, posterized shading, while higher values blend the regions.
![The same character model. In the Inspector window of the Toon shader, the Base Color Step property is set to 0.609. The shadows on the model are more prominent.](images/WithoutOutline.png)
![The same character model. In the Inspector window of the Toon shader, the Base Shading Feather property is set to 0.279. The shadows on the model are more blended.](images/AdjustingFeather.png)
## Set up the outline
Outline is another important factor that determines the animation style.
Consider the outline color relative to your background and adjust the thickness to reinforce the style.
The [Outline Settings](Outline.md) page details every property.
<canvas class="image-comparison" role="img" aria-label="The same character model. In the Inspector window of the Toon shader, the Outline Color property is set to gray, and the Outline Width property is set to 4, then 6.44.">
<img src="images/ThinOutline2.png" title="Outline Width: 4">
<img src="images/BoldOutline2.png" title="Outline Width: 6.44">
</canvas>
<br />Drag the slider to compare the images.
## Advanced techniques
Now that you've learned basic cel-shading, you can refine specific features of the character.
The following examples illustrate how UTS helps solve common cel-shading challenges.
### Eliminating outlines around eyes
Outlines around delicate facial features can be distracting.
Apply an [Outline Width Map](Outline.md#outline-width-map) to control outline thickness per texel so you can taper or remove the stroke where needed.
![The same character model. In the Inspector window of the Toon shader, the Outline Width Map property is set to a texture. There's no longer an outline around the eyes of the character.](images/OutlineWidthMap3.png)
### Adding luster to hair
Flat lighting can make hair feel lifeless.
Combine the [Highlight](Highlight.md), [Angel Ring](AngelRing.md), and [Material Capture (MatCap)](MatCap.md) features to add dimensionality.
In this example, we'll apply a [MatCap map](MatCap.md#matcap-map) onto the hair.
![The same character model. In the Inspector window of the Toon shader, the MatCap Map property is set to a texture. The shadows and outlines on the hair look more three-dimensional.](images/Luster3.png)
## More options for stunning professional cel-shading
Once you're comfortable with the steps above, experiment with these additional features to push the look even further:
- [Emission](Emission.md) for glowing elements such as eyes, screens, or weapons.
- [Normal Map](NormalMap.md) to control the bumpiness of the material.
- [Rim Light](Rimlight.md) to highlight the edges of meshes.

View File

@ -0,0 +1,17 @@
<a id="BoxLight"></a>
## HDRP Box Light
In HDRP, [only one directional light can cast shadow at a time](https://docs.unity3d.com/Manual/render-pipelines-feature-comparison.html).
This can be undesirable when we need lighting that differs from the scene's main directional light,
such as brightening a character's face or adding idealized shadows.
The [Box Light](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@14.0/manual/Light-Component.html#Shape)
offers a practical workaround, and Unity Toon Shader supports it.
<canvas class="image-comparison" role="img" aria-label="The Scene view with a cube representing a box light, and the Game view with a chibi-style character model. When the box light is rotated, the shadows on the face of the model change.">
<img src="images/BoxLight0.png" title="Box light">
<img src="images/BoxLight1.png" title="Box light rotated">
</canvas>
<br />
Drag the slider to compare the images.
<small>Box light applied to a character's face. Note that editing the angle of the box changes the shadows falling on the face, but not on the body and the ground.</small>

View File

@ -0,0 +1,81 @@
# Highlight Settings
The ability to display specular highlights in a cel-animation-like manner is essential for toon shaders. The **Unity Toon Shader** provides a wide variety of expressions with controllable illumination that works independently of light color and intensity for impressive cel-shading.
Settings:
* [Highlight](#highlight)
* [Highlight Power](#highlight-power)
* [Specular Mode](#specular-mode)
* [Color Blending Mode](#color-blending-mode)
* [Highlight Blending on Shadows](#highlight-blending-on-shadows)
* [Blending Level](#blending-level)
* [Highlight Mask](#highlight-mask)
* [Highlight Mask Level](#highlight-mask-level)
## Highlight
Highlight: Texture(sRGB) × Color(RGB). Defines the pattern and tint of the specular highlight.
Default: white.
<canvas class="image-comparison" role="img" aria-label="A toon-shaded sphere in a room textured with graphs. The sphere has green and purple bands of color, and a bright white specular highlight. Then the same sphere, with the color picker window open and the color #FF0000 selected. The specular highlight on the sphere is now orange and yellow.">
<img src="images/Highlight0.png" title="The default color.">
<img src="images/Highlight1.png" title="A different light color applied.">
</canvas>
<br />Drag the slider to compare the images.
## Highlight Power
The highlight size is controlled by the **Highlight Power** slider.
<video title="Tweaking the highlight power." src="images/SpecularPower.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
## Specular Mode
UTS provides two modes for the highlight for different occasions and effect. The hard mode provides a crisp and solid edge to the highlight while the soft mode provides a blended blurred effect.
<canvas class="image-comparison" role="img" aria-label="A close-up of a white specular highlight on a green sphere. The highlight is a clear white disc with a hard edge. Then the same close-up. The specular highlight is now a blurred white disc.">
<img src="images/SpecularHard.png" title="Mode: Hard.">
<img src="images/SpecularSoft.png" title="Mode: Soft.">
</canvas>
<br />Drag the slider to compare the images.
<br><br>
### Color Blending Mode
Specular color blending mode allows the user to control the hardness of the colour applied to the highlight.
Users have two options: Multiply or Add.
Note that **Color Blending Mode** is disabled when **Specular** Mode is set to **Soft**.
<canvas class="image-comparison" role="img" aria-label="A close-up of a yellow specular highlight on a green sphere. The highlight is a clear yellow disc with a hard edge. Then the same close-up. The specular highlight is now a blurred yellow disc.">
<img src="images/SpecularMultiply.png" title="Multiply">
<img src="images/SpecularAdd.png" title="Add">
</canvas>
<br />Drag the slider to compare the images.
## Highlight Blending on Shadows
Control the blending for the highlights in shadows. Please refer to the image at [Blending Level](#blending-level).
### Blending Level
Adjusts the intensity of highlight applied to shadow areas.
<video title="A specular highlight on a green sphere. Part of the highlight is in shadow, and fades in and out." src="images/HighlightBlendingLevel.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
## Highlight Mask
A gray scale texture which utilises its brightness to control highlight intensity. Applying the highlight mask allows to fine-tune the reflectivity on the material.
![A square texture with a black and grey checkerboard pattern. Each square has a small plus symbol in its center.](images/UVCheckGrid.png)<br/>
An example of a grayscale texture highlight mask.
<canvas class="image-comparison" role="img" aria-label="A toon-shaded sphere in a room textured with graphs. The sphere has green and purple bands of color, and circular green, white, and purple specular highlights. Then the same sphere. The specular highlights now reflect the checkerboard pattern.">
<img src="images/HighlightMaskOff.png" title="Highlight Mask disabled">
<img src="images/HighlightMaskOn.png" title="Highlight Mask enabled">
</canvas>
<br />Drag the slider to compare the images.
## Highlight Mask Level
Highlight mask texture blending level to highlights.
<video title="A toon-shaded sphere in a room textured with graphs. The specular highlights fade in and out." src="images/HighlightMaskLevel.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>

View File

@ -0,0 +1,14 @@
# Known Issues
## When using AOV Image Sequence Recorder
The **Unity Toon Shader** [Outline](Outline.md) is not automatically disabled when recording with the [AOV Image Sequence Recorder](https://docs.unity3d.com/Packages/com.unity.recorder@4.0/manual/RecorderAOV.html). Please disable [Outline](Outline.md#outline) in the Material Inspector when outputting AOV images.
## When using Universal Render Pipeline
When using the [Universal Render Pipeline](https://docs.unity3d.com/Manual/com.unity.render-pipelines.universal.html), you need to set [Depth Priming Mode](https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@16.0/manual/urp-universal-renderer.html#rendering) to **Disabled** to show the [outline](Outline.md).
<canvas class="image-comparison" role="img" aria-label="A chibi-style character model, and the Inspector window for the Univeral Renderer Data asset. On the left, Depth Priming is set to Auto and the model has no outline. When Depth Priming is set to Disabled, the model has an outline.">
<img src="images/DepthPrimingModeAuto.png" title="Depth Priming Mode set to Auto">
<img src="images/DepthPrimingModeDisabled.png" title="Depth Priming Mode set to Disabled">
</canvas>
<br />Drag the slider to compare the images.

View File

@ -0,0 +1,137 @@
# Material Capture (MatCap) Settings
MatCap is a method of light expression using pre-rendered images.
This technique uses a image of a sphere that represents the material and light to simulate lighting.
<video title="A camera pan over the head of a chibi-style character model with long hair and rabbit ears. The specular highlights on the ears and hair move with the camera." src="images/MatCap.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
* [MatCap Map](#matcap-map)
* [MatCap Blur Level](#matcap-blur-level)
* [Color Blending Mode](#color-blending-mode)
* [Scale MatCap UV](#scale-matcap-uv)
* [Rotate MatCap UV](#rotate-matcap-uv)
* [Stabilize Camera rolling](#stabilize-camera-rolling)
* [Normal Map Specular Mask for MatCap](#normal-map-specular-mask-for-matcap)
* [Normal Map](#normal-map)
* [Rotate Normal Map UV](#rotate-normal-map-uv)
* [MatCap Blending on Shadows](#matcap-blending-on-shadows)
* [Blending Level](#blending-level)
* [MatCap Camera Mode](#matcap-camera-mode)
* [MatCap Mask](#matcap-mask)
* [MatCap Mask Level](#matcap-mask-level)
* [Invert MatCap Mask](#invert-matcap-mask)
## MatCap Map
MatCap Color: Texture(sRGB) × Color(RGB).
Default: White
![A square black texture, with an upwards-curving yellow shape with soft edges.](images/HiLight_Matcap.png)<br/>
An example of a MatCap Map texture.
<video title="A camera pan over the head of a chibi-style character model with long hair and rabbit ears." src="images/WithOutMatCap.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video><br/>
MatCap Map disabled.
<video title="The same camera pan, but the blonde hair of the model now has a brighter yellow specular highlight." src="images/WithMatCap.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video><br/>
MatCap Map enabled.
## MatCap Blur Level
Blur MatCap Map using the Mip Map feature.
To enable Mip Map, activate Advanced > Generate Mip Maps in the [Texture Import Settings](https://docs.unity3d.com/Manual/class-TextureImporter.html).
<video title="A close-up on the blonde hair of a chibi-style character model. The brighter yellow specular highlight changes from sharp to blurred." src="images/MatCapBlurLebel.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
## Color Blending Mode
MatCap color blending mode. Multiply or Add.
## Scale MatCap UV
Scaling UV of MatCap Map.
<video title="A close-up on the blonde hair of a chibi-style character model. The brighter yellow specular highlight changes from a thin line to a wider highlight." src="images/ScaleMatCapUV.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
## Rotate MatCap UV
Rotating UV of MatCap Map.
<video title="A close-up on the blonde hair of a chibi-style character model. The yellow specular highlight rotates from left to right and back." src="images/RotateMatCapUV.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
## Stabilize Camera Rolling
Stabilize Camera rolling when capturing materials with camera.
<video title="A close-up on the face of a chibi-style character model. When the camera rotates, the specular highlights stay in the same place in the camera view." src="images/StabilizerOff.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video><br/>
Stabilize Camera Rolling disabled.
<video title="The same close-up. When the camera rotates, the specular highlights stay in the same place on the hair." src="images/StabilizerOn.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video><br/>
Stabilize Camera Rolling enabled.
## Normal Map Specular Mask for MatCap
When enabled, uses a dedicated normal map for MatCap.
If MatCap is used as specular lighting, this normal map can serve as a specular mask.
<canvas class="image-comparison" role="img" aria-label="A view from above a chibi-style character model with blonde hair and brighter yellow specular highlights. Then the same view. The individual hairs now have highlights. ">
<img src="images/MatCapNormalMapOff.png" title="Normal Map Specular Mask disabled.">
<img src="images/MatCapNormalMapOn.png" title="Normal Map Specular Mask enabled">
</canvas>
<br />Drag the slider to compare the images.
### Normal Map
A texture that dictates the bumpiness of the material.
![A grayscale texture of fine hair.](images/HairNormalMask.png)<br/>
An example of a Normal Map texture.
### Rotate Normal Map UV
Rotates the MatCap normal map UV based on its center.
<video title="A view from above a chibi-style character model with blonde hair and brighter yellow specular highlights on individual hairs. The highlights rotate." src="images/RotateMatCapNormalMapUV.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
## MatCap Blending on Shadows
Enables the blending rate of the MatCap range in shadows.
<canvas class="image-comparison" role="img" aria-label="A view from above a chibi-style character model with blonde hair. With MatCap Blending on Shadows on, the bright highlights on individual hairs are less visible.">
<img src="images/MatCapBlendingOnShadowOff.png" title="MatCap Blending on Shadows disabled.">
<img src="images/MatCapBlendingOnShadowOn.png" title="MapCap Blending on Shadows enabled.">
</canvas>
<br />Drag the slider to compare the images.
## Blending Level
Adjusts the intensity of MatCap applied to shadow areas.
<video title="Adjusts the intensity of MatCap applied to shadow areas." src="images/MatCapOnShadowLevel.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video><br/>
## MatCap Camera Mode
Control how the MatCap Map is rendered based on the camera type.
## MatCap Mask
The MatCap mask aligns with the meshs UVs used for the MatCap projection.
Pixels in black (0) regions of the mask are fully hidden.
![A view from above a chibi-style character model with blonde hair. Her hair has yellow highlights in the shape of the Unity logo.](images/MatCapMaskSample.png)
## MatCap Mask Level
Adjusts the level of the MatCap Mask. When the value is:
* 1: MatCap represents 100% irrespective of mask.
* -1: MatCap won't be displayed at all and MatCap will be the same as in the off state.
<video title="Specular highlights on hair fade in and out." src="images/MatCapMaskLevel.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
## Invert MatCap Mask
When enabled, inverts **MatCap Mask** Texture colors.
![A view from above a chibi-style character model with blonde hair. Her hair has a bow-shaped brighter yellow specular highlight, with Unity logos cut out in the unlit hair color.](images/InvertMatCapMask.png)

View File

@ -0,0 +1,46 @@
# Material Converter
## Capability
**Unity Toon Shader Material Converter** handles not only the **Unity Toon Shader** materials, but also [Unity-chan Toon Shader materials](https://github.com/unity3d-jp/UnityChanToonShaderVer2_Project) and [Univeral Toon Shader materials](https://github.com/unity3d-jp/UnityChanToonShaderVer2_Project/tree/release/urp/2.5.1).
Note: Unity-Chan Toon Shader materials saved with older than 2.0.6 have to be re-saved using 2.0.7 or newer.
## How to convert
All you have to do to convert toon shader materials to the **Unity Toon Shader materials** are:
* [Launch converter](#launching-converter)
* [Select render pipeline and shaders in your project](#selecting-the-converter)
* [Press **Scan** button](#pressing-scan-button).
* [Press **Convert** button](#pressing-convert-button).
Please make sure to back up the project since this converting process is irreversible.
## Launching Converter
Launch the converter from menu.
Window -> Rendering -> Unity Toon Shader Converter
![MaterialConverterMenu](images/MaterialConverterMenu.png)
Here is the converter screen.
![ConverterScreen](images/ConverterScreen.png)
## Selecting the converter
You see five options to convert materials in the project. Choose the shader used in the project.
![MaterialConverterMenu](images/ConverterWindowOption.png)
## Pressing Scan Button
![MaterialConverterScanButton](images/ConverterScanButton.png)
If you choose **Unity-chan Toon Shader 2** and the materials are saved with older than 2.0.6. The converter shows errors. In such case, you should save the materials using **Unity-chan Toon Shader** 2.0.7 or later.
![MaterialConverterScanButton](images/ConverterError.png)
## Pressing Convert Button
If there is no error, just press convert button.

View File

@ -0,0 +1,24 @@
# Metaverse Settings (Experimental)
The **Unity Toon Shader** requires one directional light to work, though, often there are no directional lights in Metaverse scenes. In such cases, Metaverse light works as virtual directional light for cel-shading.
* [Metaverse Light](#metaverse-light)
* [Metaverse Light Intensity](#metaverse-light-intensity)
* [Metaverse Light Direction](#metaverse-light-direction)
<br/><br/>
## Metaverse Light
A checkbox to enable Metaverse light, which enables the use of UTS to work appropriately without any directional lights in the scene.
<br/><br/>
### Metaverse Light Intensity
Control the intensity of the supplementary lighting for UTS in the scene.
<br/><br/>
### Metaverse Light Direction
A checkbox to enable Metaverse Light direction, which Controls the direction of the supplementary lighting for UTS in the scene.
| Property | Description |
| -- | -- |
| Offset X-Axis Direction | Moves Metaverse light horizontally. |
| Offset Y-Axis Direction | Moves Metaverse light vertically. |
| Invert Z-Axis Direction | Invert Metaverse light Z-Axis Direction.|

View File

@ -0,0 +1,10 @@
# Mode
The **Unity Toon Shader** mode that controls which workflow to apply in the shader.
<img alt="The Mode dropdown with Standard and With Advanced Control Map options." src="images/InspectorMode.png" >
| Mode | Description | Image |
| ---- | ---- | ---- |
| **Standard** | Standard provides basic cel-shading techniques. | <img alt="A toon-shaded sphere with three blue color bands and a light blue specular highlight." src="images/SphereStandard.png"> |
| **With Additional Control Maps** | **With Additional Control Maps** provides more complex cel-shading techniques with several additional control maps. | <img alt="A toon-shaded sphere with a jagged repeating pattern of three blue color bands." src="images/SphereWithAdvanced.png"> |

View File

@ -0,0 +1,41 @@
# Normal Map Settings
A Normal Map is a texture that dictates the bumpiness of the material. The **Unity Toon Shader** allows control over **Normal Map** strength and which areas it applies to.
* [Normal Map](#normal-map)
* [Normal Map Effectiveness](#normal-map-effectiveness)
* [Example of Normal Map Effectiveness Operation](#example-of-normal-map-effectiveness-operation)
<br><br>
## Normal Map
A Normal Map texture and its strength.
![An example of a normal map. A square surface with 16 small raised squares in a regular layout. The edges of the raised squares use a different color for each normal direction.](images/DecoPlane_Nromal.png)
Examples of a normal map with a strength of 1.0, 0.3, and 0.0:
![The example normal map applied to a plane using the URP/Lit shader on the left side and the UTS shader on the right side, with a strength of 1.0. The raised squares are clearly visible on both halves.](images/NormalMapStrength1.png)<br/>
Strength: 1.0.
![The same example with a strength of 0.3. The raised squares are less visible on the UTS side.](images/NormalMapStrength03.png)<br/>
Strength: 0.3.
![The same example with a strength of 0.0. The raised squares are not visible on the UTS side.](images/NormalMapStrength00.png)<br/>
Strength: 0.0.
## Normal Map Effectiveness
|Properties| Description |
| ---- | ---- |
| Three Basic Colors | The effectiveness of the Normal Map on Three Basic color areas, lit, the 1st shading and the 2nd. |
| Highlight | Normal map effectiveness to high lit areas. |
| Rim Light | Normal map effectiveness to rim lit areas. |
<br/><br/>
## Example of Normal Map Effectiveness Operation
<video title="The example normal map applied to a plane using the URP/Lit shader on the left side and the UTS shader on the right side. When Three Basic Colors is selected in the Inspector window, the raised squares appear. When Highlight is also selected, the raised squares have a higher contrast. When Rim Light is also selected, the edges of the squares are much brighter." src="images/NormalmapEffectiveness.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>

View File

@ -0,0 +1,98 @@
# Outline Settings
Outlines are one of the most important elements that affect the impression of cel-animated images.
You can control the outline thickness numerically, and refine it in more detail using an Outline Width Map.
Outline color can be set directly or blended with the character's base colors.
<canvas class="image-comparison" role="img" aria-label="A chibi-style character model with rabbit ears. The first image has no outline. The second image has an outline.">
<img src="images/OutlineOff.png" title="Outline disabled">
<img src="images/OutlineOn.png" title="Outline enabled">
</canvas>
<br/>Drag the slider to compare the images.<br/>
UTS provides two methods to generate outlines:
1. Extrude polygons along the mesh normals.
2. Scale the mesh uniformly to create an outline.
Settings:
* [Outline Mode](#outline-mode)
* [Outline Width](#outline-width)
* [Outline Color](#outline-color)
* [Blend Base Color to Outline](#blend-base-color-to-outline)
* [Outline Width Map](#outline-width-map)
* [Offset Outline with Camera Z-axis](#offset-outline-with-camera-z-axis)
* [Camera Distance for Outline Width](#camera-distance-for-outline-width)
* [Farthest Distance to vanish](#farthest-distance-to-vanish)
* [Nearest Distance to draw with Outline Width](#nearest-distance-to-draw-with-outline-width)
* [Outline Color Map](#outline-color-map)
* [Baked Normal Map](#baked-normal-map)
## Outline Mode
Specifies how the inverted-outline objects spawn.
| Outline Mode | Description |
| -- | -- |
| Normal Direction | Stretches polygons in the normal direction. |
| Position Scaling | Applies a scale value to the mesh. |
## Outline Width
Specifies the width of the outline. This value depends on the scale when importing the model to Unity.
## Outline Color
Specifies the color of the outline.
## Blend Base Color to Outline
Blends **Base Color** into the outline color.
<canvas class="image-comparison" role="img" aria-label="A chibi-style character model with a thick outline. With Blend Base Color to Outline disabled, the outline is black. With Blend Base Color to Outline enabled, the outline matches the colors of the adjacent texture.">
<img src="images/BlendBaseColorToOutlineOff.png" title="Blend Base Color to Outline disabled">
<img src="images/BlendBaseColorToOutlineOn.png" title="Blend Base Color to Outline enabled">
</canvas>
<br />
Drag the slider to compare the images.
## Outline Width Map
Outline Width Map as grayscale texture: Texture(linear).
UTS provides a detailed control solution for outline thickness using a texture map.
Let's take a look at an example.
![The UV map that contains all the parts of the model, and a square grayscale texture as the Outline Width Map. Most of the Outline Width Map uses a uniform light gray, while the face, legs, and hands are in a darker gray.](images/OutlineWidthMapSources.png)<br/>
Left: a Base Map example. Right: an Outline Width Map example.
With the above maps applied, regions that are white in the Outline Width Map produce thicker outlines.
This is especially noticeable around the character's eyes and face.
<canvas class="image-comparison" role="img" aria-label="A chibi-style character model with rabbit ears. The model has outlining which becomes thinner, and the outlines around the eyes of the character disappear.">
<img src="images/OutlineWidthMapOff.png" title="Without Outline Width Map">
<img src="images/OutlineWidthMapOn.png" title="With Outline Width Map">
</canvas>
<br />
Drag the slider to compare the images.
## Offset Outline with Camera Z-axis
Offsets the outline in the depth (Z) direction of the camera. UTS outline is implemented by either extending polygons in the normal direction or applying a scale value. Sometimes, offsetting the position of the generated polygons in the Z (depth) direction can improve their appearance.
<canvas class="image-comparison" role="img" aria-label="A spiky pink ball. In the first image, the outline is a consistent thickness. In the second image, the outline is only visible at the edges.">
<img src="images/OffsetZ02.png" title="Without z-axis offset">
<img src="images/OffsetZ03.png" title="With z-axis offset">
</canvas>
<br />
Drag the slider to compare the images.
## Camera Distance for Outline Width
### Farthest Distance to vanish
Specifies the furthest distance where the outline width changes with the distance between the camera and the object. The outline will be zero at this distance.
### Nearest Distance to draw with Outline Width
Specifies the closest distance where the outline width changes with the distance between the camera and the object. At this distance, the outline will be the maximum width set by Outline_Width.
## Outline Color Map
Apply a texture as the outline color map.
## Baked Normal Map
Normal maps with vertex normals baked in from other models can be loaded as an addition when setting up normal inversion outlines.

View File

@ -0,0 +1,19 @@
# Shader Settings in the Inspector Window
The following are all the **Unity Toon Shader** settings in the Inspector window.
* [Modes](Modes.md)
* [Shader Settings](Shader.md)
* [Three Color Map and Control Map Settings](Basic.md)
* [Shading Step and Feather Settings](ShadingStepAndFeather.md)
* [Normal Map Settings](NormalMap.md)
* [Highlight Settings](Highlight.md)
* [Rim Light Settings](Rimlight.md)
* [Material Capture (MatCap) Settings](MatCap.md)
* [Emission Settings](Emission.md)
* [Angel Ring Projection Settings](AngelRing.md)
* [Scene Light Effectiveness Settings](SceneLight.md)
* [Metaverse Settings(Experimental)](Metaverse.md)
* [Outline Settings](Outline.md)
* [Tessellation Settings(the Built-in Render Pipeline)](TessellationLegacy.md)
* [Tessellation Settings(HDRP)](TessellationHDRP.md)

View File

@ -0,0 +1,115 @@
# Rim Light Settings
Rim Light highlights the edges of meshes. Rim Light is based on the angle between the surface normal and view direction. The **Unity Toon Shader** provides a variety of options for Rim Light.
* [Rim Light](#rim-light)
* [Rim Light Color](#rim-light-color)
* [Rim Light Level](#rim-light-level)
* [Adjust Rim Light Area](#adjust-rim-light-area)
* [Rim Light Feather Off](#rim-light-feather-off)
* [Light Direction](#light-direction)
* [Light Direction Rim Light Level](#light-direction-rim-light-level)
* [Inverted Light Direction Rim Light](#inverted-light-direction-rim-light)
* [Inverted Rim Light Color](#inverted-light-direction-rim-light)
* [Inverted Rim Light Level](#inverted-rim-light-level)
* [Inverted Rim Light Feather Off](#inverted-rim-light-level)
* [Rim Light Mask](#rim-light-mask)
* [Rim Light Mask Level](#rim-light-mask-level)
## Rim Light
A checkbox to enable **Rim Light** that hits the 3D model from behind and emphasizes the contours of the model from the front.
<canvas class="image-comparison" role="img" aria-label="A toon-shaded sphere in a room textured with graphs. The sphere has green and purple bands of color, and specular highlights. With Rim Light enabled, the sphere is bright at the edge.">
<img src="images/RimLightOff.png" title="Rim Light disabled">
<img src="images/RimLightOn.png" title="Rim Light enabled">
</canvas>
<br />
Drag the slider to compare the images.
### Rim Light Color
Specifies the color of **Rim Light**.
### Rim Light Level
Specifies **Rim Light** intensity.
<video title="The same sphere. The intensity of the bright edge grows and shrinks, affecting almost the whole sphere." src="images/RimLightLevel.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
<br>
### Adjust Rim Light Area
Increasing this value narrows the area of influence of **Rim Light**.
<video title="The same sphere. The bright light appears at the edge, then the sphere becomes lighter as a whole." src="images/AdjustRimLightArea.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
<br>
### Rim Light Feather Off
A check box to disable **Rim Light** feather.
<canvas class="image-comparison" role="img" aria-label="A toon-shaded sphere in a room textured with graphs. With Rim Light Feather disabled, the bright edge appears thicker and sharper.">
<img src="images/RimLightFeatherOn.png" title="Rim Light Feather Off disabled">
<img src="images/RimLightFeatherOff.png" title="Rim Light Feather Off enabled">
</canvas>
<br />
Drag the slider to compare the images.
### Light Direction
A Checkbox to enable light direction. When Enabled, generates **Rim Light** in the direction of the light source.
<canvas class="image-comparison" role="img" aria-label="A toon-shaded sphere in a room textured with graphs. The light direction changes as Light Direction is disabled and enabled.">
<img src="images/RimLightDirectionOff.png" title="Light Direction disabled">
<img src="images/RimLightDirectionOn.png" title="Light Direction enabled">
</canvas>
<br />
Drag the slider to compare the images.
### Light Direction Rim Light Level
Specifies intensity of **Rim Light** in the light source direction.
### Inverted Light Direction Rim Light
Light color effectiveness to inverted direction rim lit areas.
<canvas class="image-comparison" role="img" aria-label="A toon-shaded sphere in a room textured with graphs. With Inverted Light Direction Rim Light disabled, the sphere has bright edges on both sides.">
<img src="images/InversedLightDirectionRimLightOff.png" title="Inverted Light Direction Rim Light disabled">
<img src="images/InversedLightDirectionRimLightOn.png" title="Inverted Light Direction Rim Light enabled">
</canvas>
<br />
Drag the slider to compare the images.
#### Inverted Rim Light Color
Specifies the color of inverted/antipodean **Rim Light**.
#### Inverted Rim Light Level
Specifies Inverted/Antipodean **Rim Light** Level.
#### Inverted Rim Light Feather Off
Disable Inverted **Rim Light** feather.
<canvas class="image-comparison" role="img" aria-label="A toon-shaded sphere in a room textured with graphs. With Inverted Rim Light Feather disabled, the sphere has a thick ring of red, orange and purple.">
<img src="images/InversedRimLightFeathterOff.png" title="Inverted Rim Light Feather enabled">
<img src="images/InversedRimLightFeathterOn.png" title="Inverted Rim Light Feather disabled">
</canvas>
<br />
Drag the slider to compare the images.
### Rim Light Mask
Rim Light Mask : a gray scale texture(linear). The white part of the texture represents **Rim Light**, and the black part masks.
![A square checkerboard pattern of black and gray squares. Each square has a plus symbol at its center.](images/UVCheckGrid.png)<br/>
Grayscale texture example.
<canvas class="image-comparison" role="img" aria-label="A toon-shaded sphere in a room textured with graphs. With Rim Light Mask enabled, the edge of the sphere reflects the room.">
<img src="images/RimLightMaskOff.png" title="Rim Light Mask disabled">
<img src="images/RimLightMaskOn.png" title="Rim Light Mask enabled">
</canvas>
<br />
Drag the slider to compare the images.
### Rim Light Mask Level
-1 gives 0% for the Rim Light effect, 0 gives 100% for the Rim Light and Mask effect, 1 gives 100% for the Rim Light and 0% for the Mask effect.
<video title="Rim light fades in and out." src="images/RimLightMaskLevel.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>

View File

@ -0,0 +1,54 @@
# Installing the sample scenes
The **Unity Toon Shader (UTS)** package provides
sample scenes for every supported render pipeline.
Import the sample set that matches the render pipeline currently assigned to your project.
## Before you import
- Confirm that the [render pipeline](https://docs.unity3d.com/6000.0/Documentation/Manual/render-pipelines.html) you intend to use is installed and active.
## Import samples through Package Manager
1. Open the [Package Manager](https://docs.unity3d.com/6000.0/Documentation/Manual/Packages.html).
2. Select **Unity Toon Shader** from the package list.
3. In the **Samples** section, choose the collection that matches your render pipeline.
4. Click **Import**. Unity creates an `Assets/Samples/Unity Toon Shader/<version>/...` folder containing the selected samples.
> Tip: You can re-import the samples at any time. Unity prompts you before overwriting existing files.
## Sample scene overview
### Universal Render Pipeline
`Assets/Samples/Unity Toon Shader/<version>/URP`
- `AngelRing/AngelRing.unity` &mdash; Setup for the [Angel Ring](AngelRing.md) feature.
- `Cube_HardEdge/Cube_HardEdge.unity` &mdash; Reference for baked normals.
- `BoxProjection/BoxProjection.unity` &mdash; Dark room lighting with box projection probes.
- `EmissiveAnimation/EmissiveAnimation.unity` &mdash; Animated [Emission](Emission.md) sequences.
- `LightAndShadows/LightAndShadows.unity` &mdash; Comparison between the PBR shader and UTS.
- `MatCapMask/MatCapMask.unity` &mdash; Using [MatCap](MatCap.md) masks.
- `Mirror/MirrorTest.unity` &mdash; Mirror material setup and testing.
- `NormalMap/NormalMap.unity` &mdash; Normal map techniques tuned with UTS.
- `PointLightTest/PointLightTest.unity` &mdash; Cel-shading examples using point lights.
- `KageBall/KageBall.unity` &mdash; The basics.
- `UnityChan/UnityChan.unity` &mdash; SD Unity-chan model showcasing illustration-style shading.
- `UnityChan_CelLook/UnityChan_CelLook.unity` &mdash; SD Unity-chan model with classic cel-look settings for characters.
- `UnityChan_Emissive/UnityChan_Emissive.unity` &mdash; SD Unity-chan model showing the [Emission](Emission.md) feature.
- `UnityChan_Firefly/UnityChan_Firefly.unity` &mdash; SD Unity-chan model with multiple point lights.
> Unity-chan assets are licensed under the [Unity-Chan License](http://unity-chan.com/contents/guideline_en/)
### Built-in Render Pipeline
`Assets/Samples/Unity Toon Shader/<version>/Built-In RP`
- Mirrors the URP scenes but configured for built-in render pipeline.
### High Definition Render Pipeline
`Assets/Samples/Unity Toon Shader/<version>/HDRP`
- Mirrors the URP scenes but configured for HDRP.

View File

@ -0,0 +1,51 @@
# Scene Light Effectiveness Settings
The **Unity Toon Shader** provides a way to control the effectiveness of lights in the scene per material. There are times when you want to eliminate or limit the effect of lighting on a material type.
UTS allows you to control each area color regardless of the actual light color. While this feature is fundamental to professional cel-shading, sometimes it's necessary to apply actual light colors.
UTS provides a way to determine whether the actual light color affects the material or not.
* [Light Color Effectiveness Settings](#light-color-effectiveness)
* [Light Probe Intensity](#light-probe-intensity)
* [Limit Light Intensity](#limit-light-intensity)
<br/><br/>
## Light Color Effectiveness
If the setting for each color is off, the color is always illuminated with a light intensity of 1 and a light color of white regardless of the intensity of the lights in the scene.
| Property | Description |
| --| --|
| Base Color | Light color effect in the base color areas. |
| 1st Shading Color | Light color effect in the 1st shading color areas. |
| 2nd Shading Color | Light color effect in the 2nd shading color areas. |
| Highlight | Light color effect in high lit areas. |
| Rim Light | Light color effect in rim lit areas. |
| Inverted Light Direction Rim Light | Light color effect in inverted direction rim lit areas. |
| Angel Ring | Light color effect in angel ring areas. Angel Ring is exclusive to **With Additional Control Maps** mode.|
| MatCap | Light color effect in MatCap areas. |
| Outline | Light color effect in outlines. |
Light Color Effectiveness example: A red light on the face. Unchecked areas on the face material are not affected by the light color.
<canvas class="image-comparison" role="img" aria-label="A Chibi-style character model. The face of the model is unaffected by red light. Then the same model, with Light Color Effectiveness enabled. The face of the model is bright red.">
<img src="images/SceneLightColorEffectivenessOn.png" title="Light Color Effectiveness On">
<img src="images/SceneLightColorEffectivenessOff.png" title="Light Color Effectiveness Off">
</canvas>
<br />Drag the slider to compare the images.
## Light Probe Intensity
Adds the light probe color to the material color according to the **Light Probe Intensity** value.
## Limit Light Intensity
Limit the brightness of the light to 1 to avoid white-out.
Example: When a intensive directional light is on the character.
<canvas class="image-comparison" role="img" aria-label="A chibi-style character model. Limit Light Intensity is disabled. The model is brightly lit by a white light that washes out the colors. Then the same model, with Limit Light Intensity enabled. The model is lit less brightly and more naturally.">
<img src="images/LimitLightIntensityOff.png" title="Limit Light Intensity Off">
<img src="images/LimitLightIntensityOn.png" title="Limit Light Intensity On">
</canvas>
<br />Drag the slider to compare the images.

View File

@ -0,0 +1,69 @@
# Shader Settings
The Shader Settings provide basic settings that aren't specific to cel-shading but are necessary for general computer graphics.
* [Culling Mode](#culling-Mode)
* [Auto Render Queue](#auto-render-queue)
* [Render Queue](#render-queue)
* [Transparency](#transparency)
* [Stencil](#stencil)
* [Stencil Value](#stencil-value)
* [Clipping](#clipping)
* [Clipping Mask](#clipping-mask)
* [Invert Clipping Mask](#invert-clipping-mask)
* [Clipping Level](#clipping-level)
* [Transparency Level](#transparency-level)
* [Use Base Map Alpha as Clipping Mask](#use-base-map-alpha-as-clipping-mask)
## Culling Mode
| Culling Mode | Description |
| ---- | ---- |
| Back | Don't render polygons that are facing away from the viewer (default), i.e., back-facing polygons are culled. |
| Front | Don't render polygons that are facing towards the viewer. Used for turning objects inside-out. |
| Off | Disables culling—all faces are drawn. Used for special effects. |
## Auto Render Queue
When enabled, the system automatically determines rendering order.
### Render Queue
Rendering order in the scene.
## Transparency
Enables different modes that allow the simulation of a variety of transparent objects.
## Stencil
Control the stencil buffer which manipulates pixel drawing.
| Stencil | Description |
| ---- | ---- |
| Replace Stencil Buffer with | Replaces a pixel value in stencil buffer with [Stencil Value](#stencil-value) when drawing.|
| Draw If Not Equal to | Draw a pixel when the number in stencil buffer isn't equal to [Stencil Value](#stencil-value).|
| Off | Nothing is written to stencil buffer and [Stencil Value](#stencil-value) doesn't affect at all when drawing.|
### Stencil Value
Stencil value that's submitted to the stencil buffer for controlling the per-pixel drawing. Min is 0. Max is 255. The default is 0.
## Clipping
Allow for the use of a texture to control the transparency of the shader.
| Clipping | Description |
| ---- | ---- |
| Off | Disable clipping. |
| On | Enable clipping. |
| Clip Transparency | [Enable clipping with Transparency Level](#transparency-level). |
### Clipping Mask
A gray scale texture which utilises its brightness to control transparency.
### Invert Clipping Mask
Invert clipping mask results.
### Clipping Level
Specifies the strength of the clipping mask.
### Transparency Level
Adjusts the transparency by considering the gray scale level of the clipping mask as an alpha value.
### Use Base Map Alpha as Clipping Mask
Use Base Map Alpha as Clipping Mask instead of Clipping mask texture.

View File

@ -0,0 +1,64 @@
# Shading Steps and Feather Settings
The **Unity Toon Shader** allows you to control the position of area boundaries, to clearly demarcate the boundaries, or to blur or blend them.
* [Base Color Step](#base-color-step)
* [Base Shading Feather](#base-shading-feather)
* [Shading Color Step](#shading-color-step)
* [1st/2nd Shading Feather](#1st2nd-shading-feather)
* [Receive Shadows](#receive-shadows)
* [System Shadow Level](#system-shadow-level)
* [Point Light Settings](#point-light-settings)
* [Step Offset](#step-offset)
* [Filter Point Light Highlights](#filter-point-light-highlights)
### Base Color Step
Sets the boundary between the Base Color and the Shade Colors.
<video title="The head of a chibi-style character model with feathered hair and cat ears. The shadow on the chin of the character grows more visible and sharper-edged." src="images/ColorStep.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
## Base Shading Feather
Feathers the boundary between the Base Color and the Shade Colors.
<video title="The same chibi-style character. The visibility of the shadow on the chin changes, but the shadow doesn't disappear entirely." src="images/BaseShadingFeather.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
## Shading Color Step
Sets the boundary between the 1st and 2nd Shade Colors. Set this to 0 if the 2nd Shade Color is unnecessary.
<video title="The same chibi-style character. The lighter-colored shadow on the chin is gradually replaced with a darker shadow." src="images/ShadingColorStep.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
### 1st/2nd Shading Feather
Feathers the boundary between the 1st and 2nd Shade Colors.
<video title="The same chibi-style character. The lighter-colored shadow on the chin is gradually replaced with a darker feathered shadow." src="images/1st2ndShadeFeather.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
### Receive Shadows
Determine if the material reflects shadows.
<video title="The same chibi-style character. Shadows from the hair onto the face and eyes appear and disappear." src="images/RecieveSystemShadow.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
#### System Shadow Level
Define the appearance of self-shadows and other received shadows that blend with the Too Shader.
<video title="The same chibi-style character. The face starts with only a shadow on the chin, then the shadows grow. The hair casts shadows onto the face, then the whole face is in shadow." src="images/SystemShadowLevel.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
## Point Light Settings
### Step Offset
Fine tunes light steps (boundaries) added in the ForwardAdd pass, such as real-time point lights.
<video title="The same chibi-style character. Bands of red, orange, and yellow light grow and shrink on the hair." src="images/PointLightStepOffset.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
<video title="A toon-shaded sphere in a room textured with graphs. The sphere has green and purple bands of color, which grow and shrink." src="images/PointLightStepOffset-Ball3.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
### Filter Point Light Highlights
Show or hide highlight of point lights.
<video title="The head of a chibi-style character model with feathered hair and cat ears. The face is lit with a purple light, and small bright specular highlights appear and disappear." src="images/FilterHilightOnPointLight-2.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>
<video title="A toon-shaded sphere in a room textured with graphs. The sphere has green and purple bands of color, and bright circular highlights which appear and disappear." src="images/FilterPointLightHighlight-Ball.mp4" width="auto" height="auto" autoplay="true" loop="true" controls></video>

View File

@ -0,0 +1,29 @@
* [Unity Toon Shader](index.md)
* [Installation](installation.md)
* [Getting started](GettingStarted.md)
* [Inspector Window Settings](Parameter-Settings.md)
* [Modes](Modes.md)
* [Shader](Shader.md)
* [Three Color Map and Control Map](Basic.md)
* [Shading Step and Feather](ShadingStepAndFeather.md)
* [Normal Map](NormalMap.md)
* [Highlight](Highlight.md)
* [Rim Light](Rimlight.md)
* [Material Capture (MatCap)](MatCap.md)
* [Angel Ring Projection](AngelRing.md)
* [Emission](Emission.md)
* [Outline](Outline.md)
* Tessellation
* [HDRP](TessellationHDRP.md)
* [Built-in Render Pipeline](TessellationLegacy.md)
* [Tessellation (HDRP)](TessellationHDRP.md)
* [Scene Light Effectiveness](SceneLight.md)
* [Metaverse (Experimental)](Metaverse.md)
* Additional features for HDRP
* [Box Light](HDRPBoxLight.md)
* [Toon EV Adjustment](ToonEVAdjustment.md)
* [Material Converter](MaterialConverter.md)
* [Samples](SampleInstallation.md)
* [Feature Difference](FeatureModel_en.md)
* [Known Issues](Known-issue.md)

View File

@ -0,0 +1,14 @@
# Tessellation Settings (HDRP)
## Properties
| Property| Description |
|-------------------|-------------------|
|Tessellation Mode| Controls the Phong tessellation. It smooths the result of displacement.|
|Tessellation Factor| Controls the strength of the tessellation effect. Higher values result in more tessellation. Max tessellation factor is 15 on the Xbox One and PS4.|
|Start Fade Distance| Sets the distance (in meter) at which tessellation begins to fade out.|
|End Fade Distance| Sets the maximum distance (in meter) to the Camera where HDRP tessellates triangle.|
|Triangle Size| Sets the desired screen space size of triangles (in pixels). Smaller values result in smaller triangle.|
|Shape Factor| Controls the strength of Phong tessellation shape (lerp factor).|
|Triangle Culling Epsilon| Controls triangle culling. A value of -1.0 disables back face culling for tessellation, higher values produce more aggressive culling and better performance.|

View File

@ -0,0 +1,12 @@
# Tessellation Settings (the Built-in Render Pipeline)
## Properties
| Property| Description |
|-------------------|-------------------|
| Edge Length| Divides the tessellation according to the camera's distance. The smaller the value, the smaller the tiles become. |
| Phong Strength| Adjusts the pulling strength of the surfaces divided by tessellation. |
| Extrusion Amount| Scales the expanded parts due to tessellation. |

View File

@ -0,0 +1,28 @@
# Toon EV Adjustment
![Three examples of a chibi-style character model in front of a golden globe with the Unity logo. In the first, the model is under a very bright light. In the second, the model is under more natural light. In the third, the model is under a moderately bright light.](images/TooEvAdjustmenEfficiency2.png)
**Toon EV Adjustment** is only available for HDRP. When combined with post-effects, such as the Exposure Volume Profile, is designed to render optically correct images without collapsing even in bright environments as intense as 130,000 lux. But, because the **Unity Toon Shader** uses a totally different logic to render toons, the automatic correction built in HDRP isn't enough to get the picture the artist wants. **Toon EV Adjustment** supports artists' corrections in two ways.
## Scene Toon EV Adjustment
Over the scene, **Scene Toon EV Adjustment** can control exposure level by applying EV curve for **Unity Toon Shader**.
### The way to enable **Scene Toon EV Adjustment**
1. `GameObject/Toon Shader/Scene Toon EV Adjustment` from the Unity Editor menu to create **Scene Toon EV Adjustment Component** component.
2. Put models you want to control exposure to its inspector.
Just one **Scene Toon EV Adjustment Component** can be placed in a scene.
## Model Toon EV Adjustment
**Toon EV Adjustment** can works to a certain model by choosing `GameObject/Toon Shader/Attatch Model Toon EV Adjustment` when the model is selected.
## Properties
| Property| Description |
|:-------------------|:-------------------|
| Ignore Volume Exposure | Ignore the automatic corrections built into HDRP. If this checkbox is On, lights brighter than 1 will result in more blown whites and a much more exaggerated Bloom. But, this method is suitable if you are using Light Culling or similar to shine independent lights of 1 lux or less on your character.|
| Light High Cut Filter | Clips up to 1 lux of light hitting objects with Toon Shader materials.|
| Toon EV adjustment curve | The correction applied with an editable curve; since it would be impossible for an artist to draw a curve that controls from 0 lux to 130000 lux, **Toon EV Adjustment** adopted EV to express the brightness unit in this screen. The default curve ranges from 10 EV to 1.32 EV.|

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 KiB

Some files were not shown because too many files have changed in this diff Show More