This commit is contained in:
2026-04-30 20:58:59 +07:00
parent 8e524790d3
commit 30d914d3a5
604 changed files with 98040 additions and 531 deletions

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 658e403a0a86079459a910d6eb1ee150
folderAsset: yes
timeCreated: 1535732565
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,130 @@
//RealToon Shader Cache
//MJQStudioWorks
//©2025
using UnityEngine;
using UnityEditor;
using System.IO;
namespace RealToon.Tools
{
public class RealToonShaderCache : EditorWindow
{
#region Variables
static float WinHig = 300;
static EditorWindow EdiWin;
static int countsha = 0;
static string shaderCachePath = Directory.GetParent(Application.dataPath).ToString() + "/Library/ShaderCache/shader";
static string infospace = null;
static string[] rt_shaders =
{ "D_Default"
, "D_Fade_Transparency"
, "D_Refraction"
, "L_Default"
, "L_Fade_Transparency"
, "T_Default"
, "T_Fade_Transparency"
, "T_Refraction"
, "D_Default_URP"
, "D_Default_HDRP"
, "RealToon_Sobel_Outline_FX"
, "DeNorSobOutline"};
#endregion
[MenuItem("Window/RealToon/RealToon Shader Cache")]
static void Init()
{
EdiWin = GetWindow<RealToonShaderCache>(true);
EdiWin.titleContent = new GUIContent("RealToon Shader Cache");
WinHig = 200;
EdiWin.minSize = new Vector2(440, WinHig);
EdiWin.maxSize = new Vector2(440, WinHig);
CountRTCache();
infospace = "There are " + countsha + " RealToon Shaders & Effects cached.";
}
void OnGUI()
{
var lblcenstyle = new GUIStyle(GUI.skin.label) { alignment = TextAnchor.MiddleCenter };
GUILayout.Space(10);
EditorGUILayout.BeginVertical();
GUILayout.Label(infospace, lblcenstyle);
CountRTCache();
infospace = "There are " + countsha + " RealToon Shaders cached.";
GUILayout.Space(10);
EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);
if (GUILayout.Button("Reduce/Clean Cached RealToon Shader"))
{
foreach (string rt_sha in rt_shaders)
{
string[] direc = Directory.GetDirectories(@shaderCachePath, rt_sha + "*");
foreach (string dir in direc)
{
if (direc.Length == 1)
{
Debug.Log("RealToon Shader Cache: " + rt_sha + " Shader Cache removed.");
Directory.Delete(dir.ToString(), true);
}
}
if (direc.Length == 0)
{
Debug.LogWarning("RealToon Shader Cache: " + rt_sha + " Shader already removed or not present.");
}
}
}
if (GUILayout.Button("Re-import RealToon Shader"))
{
AssetDatabase.ImportAsset("Assets/RealToon", ImportAssetOptions.ImportRecursive);
}
EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);
GUILayout.Label("Note:");
GUILayout.Label("*This will reduce or clear cached RealToon Shaders.\n" +
"*Useful for after update RealToon Shader or Re-import RealToon Shader.\n" +
"*'Re-import RealToon Shader', will cache RealToon Shaders again.");
EditorGUILayout.EndVertical();
}
static void CountRTCache()
{
countsha = 0;
foreach (string rt_sha in rt_shaders)
{
string[] direc = Directory.GetDirectories(@shaderCachePath, rt_sha + "*");
foreach (string dir in direc)
{
++countsha;
}
}
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: b57f4820f70afb6469f99f2a6e73e607

View File

@@ -0,0 +1,20 @@
For VRoid|VRM Users
===============================================================
There is a Swap Shader To RealToon Shader included.
This tool is Swap shader materials from
VRoid|VRM shader and Unity Shaders to RealToon shader.
It is really easy to use, just select the materials,
select from what shader is the material/s then click swap.
================================================================
*How to Use*
1. Click "Window" on the menu above beside "Help" then go to "RealToon -> Swap Shader To RealToon".
2. Select the "Materials" on your project window/panel.
3. Select from what Shader.
4. Select the options you need if available.
5. Click "Click To Swap To RealToon Shader".
6. All materials shader are now swap to RealToon Shader.
================================================================

View File

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

View File

@@ -0,0 +1,153 @@
===========================================================================
Important - ReadMe - Quick User Guide
===========================================================================
===========================================================================
For users who first time use Unity
===========================================================================
Note:
*Install the latest unity version or latest LTS version.
If your project is 3D or Built-In RP:
1.Go to folder "RealToon Shader Packages -> Built-In RP [3D]"
2.Double click "RealToon Built-In RP [3D]", the latest one with the 'Later' word on it.
3.Click "Import".
If your project is Universal Render Pipeline or High Definition RP:
1.Go to folder "RealToon Shader Packages -> SRP (LWRP - URP - HDRP)".
2.Open the folder that correspond to your project render pipeline.
3.Double click the latest one with the 'Later' word on it.
4.Click "Import".
To use RealToon:
1.Create a material by press mouse button "Right" on the "Project" window/panel.
2.Go to "Create -> Material".
3.Name your material then press keyboard key "Enter".
4.Click your created material.
5.Go to "Inspector" window/panel then change the "Shader" by left mouse button - click that drop down menu.
6-a.For 3D/Built-In: Go to "RealToon -> Default" and select "Default".
6-b.For Universal Render Pipeline: Go to "Universal Render Pipeline -> Default" and select "Default".
6-c.For High Definition RP: Go to "HDRP -> Default" and select "Default".
7.Drag your created material to the object you want to apply it.
Note:
Unity Built-In RP or 3D is the old unity render pipeline.
Unity SRP/Scriptable Render Pipeline (LWRP,URP and HDRP) are the new unity render pipeline, made using the Unity Scriptable Render Pipeline.
===========================================================================
===========================================================================
Import/Unpack RealToon Shaders Packages
===========================================================================
If your project is Unity Built-In RP/3D:
1.Go to folder "RealToon Shader Packages -> Built-In RP"
2.Double click the RealToon Built-In version package you want to use.
===========================================================================
If your project is Unity SRP:
1.Go to folder "RealToon Shader Packages -> SRP (LWRP - URP - HDRP)"
For LWRP:
1.Open the folder "LWRP".
2.Double click the RealToon LWRP version package you want to use.
3.Click "Import".
For URP:
1.Open the folder "URP".
2.Double click the RealToon LWRP version package you want to use.
3.Click "Import".
For HDRP:
1.Open the folder "HDRP".
2.Double click the RealToon LWRP version package you want to use.
3.Click "Import".
Note:
'Below' means older verion.
'Later' means Current and later future version.
There are 2 folder each SRP(URP & HDRP):
*Unity 6 folder is for Unity 6.0 to later/latest unity version.
*Unity 2023 and Below folder is for Unity 2023,2022,2021 and 2019
===========================================================================
Accessing the shader:
[RealToon Built-In RP/3D] The shaders are in "RealToon" folder.
[RealToon LWRP] The shaders are in "Lightweight Render Pipeline" folder.
[RealToon URP] The shader is in "Universal Render Pipeline" folder.
[RealToon HDRP] The shader is in "HDRP" folder.
===========================================================================
Recommended Unity and SRP Versions:
[RealToon LWRP] - Unity 2018 and LWRP V4.0.0 or latest version.
[RealToon URP] - Unity 2020.3.0 to newer versions and URP 10 or latest version.
[RealToon HDRP] - Unity 2020.2.0 to newer versions and HDRP 10 or latest version.
Unity and SRP(URP and HDRP) Versions:
[URP]
Unity 6.0 to Later - URP
Unity 2023.1.0 to before 2023.2.20 - URP 15 to 16
Unity 2021.3.0 to before 2022.2.0 - URP 14
Unity 2021.2.0 to before 2021.3.0 - URP 12 to 13
[HDRP]
Unity 6.0 to Later - HDRP
Unity 2023.2.0 to before 2023.2.20 - HDRP 16
Unity 2022.2.0 to before 2022.3.0 - HDRP 14 to 15
Unity 2021.2.0 to before 2022.2.0 - HDRP 12 to 13
Recommended Unity versions for Built-In RP/3D:
From Unity 5 to current latest unity version.
===========================================================================
===========================================================================
For Demo/Example Scenes
===========================================================================
1.Go to folder "RealToon Examples"
2.Open the folder.
*For RealToon Built-In RP/3D: Built-In RP [3D] folder
*For RealToon LWRP - URP - HDRP: SRP folder
** For more info about the example/demo,
read the "Read Me First [About the Example - Demos].txt"
===========================================================================
===========================================================================
Notes
===========================================================================
*For VRoid model users, read the "For VRoid model users.txt".
*For documentation or user guide, read "RealToon (User Guide).pdf" pdf/printed document file.
*To know previous or current version, read "Change - Fix Log.txt" text file.
*To know what's new, read the "What's New.txt" text file.
===========================================================================
===========================================================================
Video Tutorials
===========================================================================
*How to download, import and unpack RealToon (URP,HDRP and BiRP) Shader Packages (For Beginners and Others levels):
https://www.youtube.com/watch?v=JVlbOYi2V3M
*RealToon Tutorials:
https://www.youtube.com/playlist?list=PL0M1m9smMVPJ4qEkJnZObqJE5mU9uz6SY
===========================================================================

View File

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

Binary file not shown.

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,322 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 10
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 1
m_PVRFilteringGaussRadiusAO: 1
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &372682534
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 372682537}
- component: {fileID: 372682536}
- component: {fileID: 372682535}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &372682535
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 372682534}
m_Enabled: 1
--- !u!20 &372682536
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 372682534}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &372682537
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 372682534}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1271353357
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1271353360}
- component: {fileID: 1271353359}
- component: {fileID: 1271353358}
m_Layer: 0
m_Name: Read Me
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!102 &1271353358
TextMesh:
serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1271353357}
m_Text: 'Read the text file "Read Me First [About the Example - Demos].txt"
before
you open the example/demo packages.'
m_OffsetZ: 0
m_CharacterSize: 1
m_LineSpacing: 1
m_Anchor: 0
m_Alignment: 0
m_TabSize: 4
m_FontSize: 0
m_FontStyle: 0
m_RichText: 1
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_Color:
serializedVersion: 2
rgba: 4294967295
--- !u!23 &1271353359
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1271353357}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!4 &1271353360
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1271353357}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -19.23, y: 1.83, z: 12.29}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 372682537}
- {fileID: 1271353360}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 62515c27a4e5faa44840ab5658f1e4a4
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,22 @@
================================================
RealToon Examples/Demos
================================================
Before you open an example/demo, unpack first a
RealToon Shader you need,
See the "ReadMe - Important - Guide.txt" for more info.
This folder contains example/demos of RealToon Shader.
Take note of this, only open the example scene that corresponds
to your Rendering Pipeline.
If you don't need anymore the example/demos, just delete it.
================================================
For Built-In RP/ the old rendering pipeline:
"Build-In RP" folder
For SRP [URP and HDRP] rendering pipeline:
"SRP" folder
================================================

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,72 @@
RealToon V5.0.11 (HDRP)
===========================================================
Requirements/Recommendations
===========================================================
RealToon HDRP packages:
Unity 2023 and below:
*(HDRP 12 and 13) is for unity 2021.2.0 to 2022.1.X
*(HDRP 14 and 15) is for unity 2022.2.0 to 2022.3.X
*(HDRP 15 and 16) is for unity 2022.3.0 to 2023.2.X
Unity 6:
*HDRP - Unity 6.0 to Later
===========================================================
Note:
===========================================================
*How to download, import and unpack RealToon (HDRP) Shader Packages Video Tutorial:
https://www.youtube.com/watch?v=JVlbOYi2V3M&t=157s
===========================================================
*DXR/Raytracing is supported.
- Unity uses DXR and it will work on all GPUs that supports raytracing.
*Tessellation version is still in development.
*All lights are supported: Direction, Point, Spot and Arealight.
*Light layers is possible to use.
*Use RealToon + Unity's HDRP shaders is possible too.
*Hover your mouse to an option or feature name for
option description and infos.
*There's a RealToon HDRP user guide or documentation included as text file.
*If you encounter any errors/problems or something just email me.
===========================================================
Note and reminder about Raytracing
===========================================================
*Raytracing Shadow and Raytracing Global Illumination does not yet reflect to Raytraced Reflection surface. (HDRP 8 and HDRP 7)
*Only non raytraced shadow and non raytraced global illumination can reflect to Raytraced Reflection surface at the moment.
(HDRP 8 and HDRP 7)
*Fade Transparency or Transparent does not yet reflect to Raytraced Reflection surface.
*Opaque objects and transparent type Alpha clip or Cutout transparent can reflect to Raytraced Reflection surface and can bounce light at the moment.
*In recursive rendering, transparency can be visible to reflective object but can't receive raytraced global illumination.
===========================================================
RealToon HDRP current issues
===========================================================
[For Outline] [Traditional]
*In normal or opaque state, far fog will overlap but if there is an opaque object behind, far fog will not overlap.
*In 'Transparent Mode' far fog will not overlap."
*Currently, there is no HDRP line code or function to mask this.
*Currently in raytracing mode, outline will not reflect to Raytraced Relfection surface, to have an outline in a Raytraced Relfection surface, use "Rimlight" as an alternative outline, just changed the "Power" value to negative 1 then enable "Rim Light in Light".
[For Arealight (HDRP 15 and Below]
*If the size of a Rect type arealight is too un-even like 'X:30 | Y:1' the light falloff will cause some noise.
*Current arealight light falloff is just a temporary solution.
*"Tube Light Falloff" option is a temporary option for Arealight Tube Type light falloff.
*These current issues only applies when "Area Light Smooth Look" option disabled.
*Arealight currently in beta, if you want or planned to use it just enable "Enable Area Light" under the category "Lighting".

View File

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

View File

@@ -0,0 +1,114 @@
RealToon V5.0.11 (HDRP) (Quick Guide)
===========================================================
===========================================================
How to use RealToon Effect - DeNorSob Outline
===========================================================
1. Go to "GameObject" > "Volume" then click "Global Volume".
2. Then next click "Global Volume" in the "Hierarchy" or in the scene.
3. Click "New", this will create a "Global Volume Profile".
4. Click "Add Override" then go to "Post-Processing" > "RealToon" > "DeNorSob Outline".
* Then next we will add that effect in the "Custom Post Process Order" so that the effect will work.
5. To add Go to "Edit" > "Project Settings" > "HDRP Default Settings" then scroll down to "Custom Post Process Order".
6-b. Next click the "+" sign under the "AfterOpaqueAndSky " then click "RealToon.Effects.DeNorSobOutline". (This one is for HDRP 10 to later versions)
* Now the effect works.
###########################################################
If you are planning to use the effect in making games or make a build.
###########################################################
1.Go to "Edit" > "Project Settings" then "Graphics".
2.After that add 1 to the "Size" under "Always Included Shaders", now it adds another element.
3.Click the last element then search for "DeNorSob Outline" then click it.
*Now the effect will be included in a build.
===========================================================
If you want to color shadow using texture and want to just color shadow without the main/base texture.
===========================================================
1. Enable "Shadow Color Texture".
2. Go to "Shadow" > "Shadow Color Texture".
3. Search click the property "Shadow Color Texture".
4. Search for the texture you want to use to color the shadow.
*Just empty the "Shadow Color Texture" if you want to only color it using these properties,
"Overall Shadow Color", "Self Shadow - Color" or "ShadowT - Color".
===========================================================
How to properly use RealToon's "Reduce Shadow" option in HDRP
===========================================================
*The Directional lights in HDRP don't have bias option, means no requirements.
*For Punctual lights {Point and Spot lights} and Arealight do have "Near Plane" option, it is somewhat the same as "Bias".
still no requirements but adjust "Near Plane" if needed to balance.
1. Just change the "Reduce Shadow" option value, thats it.
===========================================================
[Unity HDRP] How to add fogs, shadows, skies and other features in the scene
===========================================================
1. Go to "GameObject" > "Volume" then click "Global Volume".
2. Then next click "Global Volume" in the "Hierarchy" or in the scene.
3. Click "New", this will create a "Global Volume Profile". or just click "Profile" and choose the other profile you've created.
4. Click "Add Override" to add those features you want.
===========================================================
[Unity HDRP] How to change and adjust the default global volume profile
===========================================================
1.Go to "Edit" > "Project Settings" then "HDRP Default Settings".
2.Go to "Volume Components" then change,add or remove the features you want.
3.Click "New" if you want to create another "Default Volume Profile Asset" or just click it then search for other profiles.
*This is global means it will apply in all scenes with or without the "Global Volume" game object.
===========================================================
[Unity HDRP] How to setup and enable DXR/Raytracing
===========================================================
1.Go to "Window > Render Pipeline > HD Render Pipeline Wizard".
2.Click "HDRP + DXR" tab under "Configuration Checking".
3.Click "Fix All"
4.After that it will enable all the necessary features.
5.It will ask you to restart the editor, just click "Restart" or "Ok".
6.Done.
*Unity uses DXR and it will work on all GPUs that supports raytracing.
===========================================================
[Unity HDRP] How to create your own Raytracing Override Volume
===========================================================
1.Delete "DXR Settings Volume" in the "Hierarchy" window.
2.Go to "Game Object > Volume > Global Volume".
3.Rename your newly created volume.
4.Click "New", this will create a new Volume Profile.
5.Click "Add Override".
6.Go to "Ray Tracing" and then select the raytracing features you want to use.
7.Done.
*For "Raytracing Reflection" go to "Lighting > Screen Space Reflection".
===========================================================
[Unity HDRP] To access the HDRP main settings (Mostly for beginners)
===========================================================
1.Go to "Edit" > "Project Settings" then click "Scriptable Render Pipeline Settings".
* It will highlight that asset in the "Project Window".
2.Click that asset.
*This asset you can adjust the quality of the shadow and size of the shadow map, the number of lights and other advance options/features.
*To know more about this, check the Unity's manual or watch some tutorial videos on youtube about HDRP.
===========================================================
For other option descriptions and uses, read the included
"RealToon (User Guide).pdf" or click the "User Guide" under RealToon inspector.
===========================================================

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,17 @@
RealToon V5.0.8 (LWRP)
===========================================================
Note:
===========================================================
RealToon LWRP will not be updated anymore.
===========================================================
===========================================================
(To use this you need):
*Unity 2018 with LWRP version 4.0.0 or latest Unity & LWRP Version.
How To Update LWRP:
1.Go to Window > Package Manager.
2.Select "All" then select "Lightweight Render" and select "Version 4.0.0" or latest.
3.Click "Update" or "Update To".

View File

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

View File

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

View File

@@ -0,0 +1,13 @@
RealToon V5.0.11 (URP)
===========================================================
Note:
===========================================================
URP is universal, from mobile, console to high end.
Shadow for Pointlight is not available on older URP versions.
Tessellation will be coming soon.
===========================================================
*How to download, import and unpack RealToon (URP) Shader Packages Video Tutorial:
https://www.youtube.com/watch?v=JVlbOYi2V3M&t=83s
===========================================================

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,312 @@
//RealToon - Perspective Adjustment [Helper]
//MJQStudioWorks
//©2025
using UnityEngine;
namespace RealToon.Script
{
[ExecuteAlways]
[AddComponentMenu("RealToon/Tools/Perspective Adjustment - Controller")]
public class PerspectiveAdjustmentController : MonoBehaviour
{
[HideInInspector]
[SerializeField]
Transform[] SubTran;
[HideInInspector]
[SerializeField]
Material[] Mat;
[HideInInspector]
[SerializeField]
Transform[] attac;
[Header("Note: Perspective Adjustment feature will be automatically enable\nOn the materials of the object/model that uses RealToon Shader.")]
[Header("It is recommend to set the Clipping Planes - Near of the camera\nto 0.01 to prevent slicing when near.")]
[Space(25)]
[SerializeField]
[Tooltip("This will change the perspective of an object to 2D or 3D or FOV stretch look.\nFor 2d toon/anime look, set it to 0.5 or 0.")]
public float Perspective = 1;
[SerializeField]
[Tooltip("This will change the clipping on the object.\nChange this if the object is overlapping front or back.")]
public float Clip = 1;
[Space(15)]
[SerializeField]
[Tooltip("This will adjust the size of the object when the camera is closer.")]
public float CloseUpSize = 0;
[SerializeField]
[Tooltip("How smooth the transition of the sizing.")]
public float CloseUpSizeSmoothTransition = 1;
[SerializeField]
[Tooltip("Distance transition from the camera to the object.")]
public float CloseUpSizeDistance = 0;
[Space(15)]
[SerializeField]
[Tooltip("Can animate the values/properties or create keyframe.")]
public bool CanAnimateIt = true;
int coun_obj_wi_ralsha = 0;
int coun_obj_mat = 0;
int coun_obj_mat_arr = 0;
string RT_Sha_Nam_URP = "Universal Render Pipeline/RealToon/Version 5/Default/Default";
string RT_Sha_Nam_HDRP = "HDRP/RealToon/Version 5/Default";
[HideInInspector]
[SerializeField]
bool checkstart = true;
void Start()
{
if (checkstart == true)
{
InitStart();
checkstart = false;
}
}
void LateUpdate()
{
if (Mat != null)
{
if (CanAnimateIt == true)
{
foreach (Material Mate in Mat)
{
if (Mate != null)
{
if (Mate.shader.name == RT_Sha_Nam_URP || Mate.shader.name == RT_Sha_Nam_HDRP)
{
Set_Shad_Prop(Mate);
}
}
}
}
}
}
void OnValidate()
{
if (Mat != null)
{
foreach (Material Mate in Mat)
{
if (Mate != null)
{
if (Mate.shader.name == RT_Sha_Nam_URP || Mate.shader.name == RT_Sha_Nam_HDRP)
{
Set_Shad_Prop(Mate);
}
}
}
}
}
/* Remove Later
void OnDestroy()
{
Res_Shad_Prop();
foreach (Material Mate in Mat)
{
if (Mate != null)
{
if (Mate.shader.name == RT_Sha_Nam_URP || Mate.shader.name == RT_Sha_Nam_HDRP)
{
Mate.SetFloat("_N_F_PA", 0.0f);
Mate.DisableKeyword("N_F_PA_ON");
}
}
}
}
*/
void Reset()
{
if (Mat != null)
{
checkstart = true;
Res_Shad_Prop();
foreach (Material Mate in Mat)
{
if (Mate != null)
{
if (Mate.shader.name == RT_Sha_Nam_URP || Mate.shader.name == RT_Sha_Nam_HDRP)
{
Set_Shad_Prop(Mate);
}
}
}
coun_obj_wi_ralsha = 0;
coun_obj_mat = 0;
coun_obj_mat_arr = 0;
InitStart();
}
}
#region Init
void InitStart()
{
if (attac == null || attac.Length == 0)
{
attac = this.gameObject.GetComponentsInChildren<Transform>();
}
int x = 0;
foreach (Transform Trans in attac)
{
if (Trans.GetComponent<SkinnedMeshRenderer>() == true)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
coun_obj_wi_ralsha++;
coun_obj_mat += Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterials.Length;
}
}
}
if (Trans.GetComponent<MeshRenderer>() == true)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
coun_obj_wi_ralsha++;
coun_obj_mat += Trans.GetComponent<MeshRenderer>().sharedMaterials.Length;
}
}
}
}
SubTran = new Transform[coun_obj_wi_ralsha];
foreach (Transform Trans in attac)
{
if (Trans.GetComponent<SkinnedMeshRenderer>() == true)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
SubTran[x] = Trans;
x++;
}
}
}
if (Trans.GetComponent<MeshRenderer>() == true)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
SubTran[x] = Trans;
x++;
}
}
}
}
Mat = new Material[coun_obj_mat];
foreach (Transform Trans in SubTran)
{
if (Trans.GetComponent<SkinnedMeshRenderer>() == true)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
for (int i = 0; i < Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterials.Length; i++)
{
Mat[coun_obj_mat_arr] = Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterials[i];
coun_obj_mat_arr++;
}
}
}
}
if (Trans.GetComponent<MeshRenderer>() == true)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
for (int i = 0; i < Trans.GetComponent<MeshRenderer>().sharedMaterials.Length; i++)
{
Mat[coun_obj_mat_arr] = Trans.GetComponent<MeshRenderer>().sharedMaterials[i];
coun_obj_mat_arr++;
}
}
}
}
}
foreach (Material Mat in Mat)
{
if (Mat != null)
{
Set_Shad_Prop(Mat);
}
}
}
#endregion
void Set_Shad_Prop(Material Mat)
{
if (Mat.IsKeywordEnabled("N_F_PA_ON") == true)
{
Mat.SetFloat("_PresAdju", Perspective);
Mat.SetFloat("_ClipAdju", Clip);
Mat.SetFloat("_PASize", CloseUpSize);
Mat.SetFloat("_PASmooTrans", CloseUpSizeSmoothTransition);
Mat.SetFloat("_PADist", CloseUpSizeDistance);
}
else if (Mat.IsKeywordEnabled("N_F_PA_ON") != true)
{
Mat.EnableKeyword("N_F_PA_ON");
Mat.SetInt("_N_F_PA", 1);
}
}
void Res_Shad_Prop()
{
Perspective = 1.0f;
Clip = 1.0f;
CloseUpSize = 0.0f;
CloseUpSizeSmoothTransition = 1.0f;
CloseUpSizeDistance = 0.0f;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 257798aae5c4052419047b7e5983c391

View File

@@ -0,0 +1,142 @@
//RealToon - ShadowT SDF Mode [Helper]
//MJQStudioWorks
//©2025
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace RealToon.Script
{
[ExecuteAlways]
[AddComponentMenu("RealToon/Tools/ShadowT SDF Mode - Helper")]
public class ShadowTSDFModeHelper : MonoBehaviour
{
[Header("Note: ShadowT feature and SDF Mode will be automatically enable\nWhen you put a material that uses RealToon Shader on the Material slot.")]
[Space(25)]
[Space(10)]
[SerializeField]
[Tooltip("A material that uses 'RealToon - ShadowT' feature and enabled 'SDF Mode'.")]
public Material Material = null;
[SerializeField]
[Tooltip("An object to follow the position.")]
public Transform ObjectToFollow = null;
[Space(10)]
[SerializeField]
[Tooltip("The amount of light.")]
float LightThreshold = 200.0f;
[Space(10)]
[SerializeField]
[Tooltip("Invert the Foward/Front position of the object.")]
bool ForwardInverted = false;
[Tooltip("Invert the Right position of the object.")]
[SerializeField]
bool RightInverted = false;
[HideInInspector]
[SerializeField]
bool checkstart = true;
string RT_Sha_Nam_URP = "Universal Render Pipeline/RealToon/Version 5/Default/Default";
string RT_Sha_Nam_HDRP = "HDRP/RealToon/Version 5/Default";
string RT_Sha_Nam_BiRP_DD = "RealToon/Version 5/Default/Default";
string RT_Sha_Nam_BiRP_DFT = "RealToon/Version 5/Default/Fade Transparency";
string RT_Sha_Nam_BiRP_DR = "RealToon/Version 5/Default/Refraction";
string RT_Sha_Nam_BiRP_TDD = "RealToon/Version 5/Tessellation/Default";
string RT_Sha_Nam_BiRP_TDFT = "RealToon/Version 5/Tessellation/Fade Transparency";
string RT_Sha_Nam_BiRP_TDR = "RealToon/Version 5/Tessellation/Refraction";
void LateUpdate()
{
if (Material == null || ObjectToFollow == null)
{ }
else
{
if (Material.shader.name == RT_Sha_Nam_URP ||
Material.shader.name == RT_Sha_Nam_HDRP ||
Material.shader.name == RT_Sha_Nam_BiRP_DD ||
Material.shader.name == RT_Sha_Nam_BiRP_DFT ||
Material.shader.name == RT_Sha_Nam_BiRP_DR ||
Material.shader.name == RT_Sha_Nam_BiRP_TDD ||
Material.shader.name == RT_Sha_Nam_BiRP_TDFT ||
Material.shader.name == RT_Sha_Nam_BiRP_TDR)
{
Material.SetFloat("_ShadowTLightThreshold", LightThreshold);
if (ForwardInverted != true)
{
Material.SetVector("_ObjectForward", ObjectToFollow.transform.forward);
}
else
{
Material.SetVector("_ObjectForward", -ObjectToFollow.transform.forward);
}
if (RightInverted != true)
{
Material.SetVector("_ObjectRight", ObjectToFollow.transform.right);
}
else
{
Material.SetVector("_ObjectRight", -ObjectToFollow.transform.right);
}
}
}
}
void OnValidate()
{
if (Material == null)
{
checkstart = true;
}
else if (Material != null)
{
if (Material.shader.name == RT_Sha_Nam_URP ||
Material.shader.name == RT_Sha_Nam_HDRP ||
Material.shader.name == RT_Sha_Nam_BiRP_DD ||
Material.shader.name == RT_Sha_Nam_BiRP_DFT ||
Material.shader.name == RT_Sha_Nam_BiRP_DR ||
Material.shader.name == RT_Sha_Nam_BiRP_TDD ||
Material.shader.name == RT_Sha_Nam_BiRP_TDFT ||
Material.shader.name == RT_Sha_Nam_BiRP_TDR)
{
if (checkstart == true)
{
if ( (Material.IsKeywordEnabled("N_F_ST_ON") == false && Material.IsKeywordEnabled("N_F_STSDFM_ON") == false) ||
(Material.IsKeywordEnabled("N_F_ST_ON") == true && Material.IsKeywordEnabled("N_F_STSDFM_ON") == false) ||
(Material.IsKeywordEnabled("N_F_ST_ON") == false && Material.IsKeywordEnabled("N_F_STSDFM_ON") == true) )
{
Material.EnableKeyword("N_F_ST_ON");
Material.SetFloat("_N_F_ST", 1.0f);
Material.EnableKeyword("N_F_STSDFM_ON");
Material.SetFloat("_N_F_STSDFM", 1.0f);
checkstart = false;
}
}
}
}
}
void Reset()
{
Material = null;
ObjectToFollow = null;
checkstart = true;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 94b1292d6eecd6b489a2afd078000520

View File

@@ -0,0 +1,315 @@
//RealToon - Smear Effect [Helper]
//MJQStudioWorks
//©2025
using UnityEngine;
using System.Collections.Generic;
namespace RealToon.Script
{
[ExecuteAlways]
[AddComponentMenu("RealToon/Tools/Smear Effect - Helper")]
public class SmearEffectHelper : MonoBehaviour
{
Queue<Vector3> recentPositions = new Queue<Vector3>();
[HideInInspector]
[SerializeField]
Transform[] SubTran;
[HideInInspector]
[SerializeField]
Material[] Mat;
[HideInInspector]
[SerializeField]
Transform[] attac;
[Header("Note: Smear Effect feature will be automatically enable\nOn the materials of the object/model that uses RealToon Shader.")]
[Space(25)]
[SerializeField]
[Tooltip("An object to control the smear effect.")]
public Transform SmearController;
[Space(10)]
[SerializeField]
[Tooltip("How long the distorted line trails stays on the previous position.")]
int Delay = 15;
[SerializeField]
[Tooltip("How large/small the trailing noise.")]
float NoiseSize = 100;
[SerializeField]
[Tooltip("How tall/short the trailing noise.")]
float TrailSize = 1.5f;
[Space(10)]
[SerializeField]
[Tooltip("Pause the current smear effect.")]
bool PauseSmear = false;
int coun_obj_wi_ralsha = 0;
int coun_obj_mat = 0;
int coun_obj_mat_arr = 0;
[HideInInspector]
[SerializeField]
bool checkstart = true;
string RT_Sha_Nam_URP = "Universal Render Pipeline/RealToon/Version 5/Default/Default";
string RT_Sha_Nam_HDRP = "HDRP/RealToon/Version 5/Default";
void Start()
{
if (checkstart == true)
{
InitStart();
checkstart = false;
}
}
void LateUpdate()
{
if (SmearController != null)
{
if (PauseSmear != true)
{
if (Mat != null)
{
foreach (Material mate in Mat)
{
if (mate != null)
{
mate.SetVector("_ObjPosi", SmearController.position);
recentPositions.Enqueue(SmearController.position);
if (recentPositions.Count > Delay)
mate.SetVector("_PrevPosition", recentPositions.Dequeue());
Set_Shad_Prop(mate);
}
}
}
}
}
}
void Reset()
{
if (Mat != null)
{
foreach (Material mate in Mat)
{
if (mate != null)
{
mate.SetVector("_ObjPosi", new Vector4(0, 0, 0, 0));
mate.SetVector("_PrevPosition", new Vector4(0, 0, 0, 0));
}
}
recentPositions.Dequeue();
recentPositions.Clear();
checkstart = true;
coun_obj_wi_ralsha = 0;
coun_obj_mat = 0;
coun_obj_mat_arr = 0;
Res_Shad_Prop();
InitStart();
checkstart = false;
}
}
void OnDisable()
{
recentPositions.Dequeue();
foreach (Material mate in Mat)
{
if (mate != null)
{
mate.SetVector("_ObjPosi", new Vector4(0, 0, 0, 0));
mate.SetVector("_PrevPosition", new Vector4(0, 0, 0, 0));
}
}
}
/* Remove Later
void OnDestroy()
{
recentPositions.Clear();
Res_Shad_Prop();
foreach (Material Mate in Mat)
{
if (Mate != null)
{
if (Mate.shader.name == RT_Sha_Nam_URP || Mate.shader.name == RT_Sha_Nam_HDRP)
{
Mate.SetVector("_ObjPosi", new Vector4(0, 0, 0, 0));
Mate.SetVector("_PrevPosition", new Vector4(0, 0, 0, 0));
Mate.SetFloat("_N_F_SE", 0.0f);
Mate.DisableKeyword("N_F_SE_ON");
}
}
}
}
*/
#region Init
void InitStart()
{
if (attac == null || attac.Length == 0)
{
attac = this.gameObject.GetComponentsInChildren<Transform>();
}
if (SmearController == null)
{
SmearController = this.gameObject.transform;
}
int x = 0;
foreach (Transform Trans in attac)
{
if (Trans.GetComponent<SkinnedMeshRenderer>() == true)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
coun_obj_wi_ralsha++;
coun_obj_mat += Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterials.Length;
}
}
}
if (Trans.GetComponent<MeshRenderer>() == true)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
coun_obj_wi_ralsha++;
coun_obj_mat += Trans.GetComponent<MeshRenderer>().sharedMaterials.Length;
}
}
}
}
SubTran = new Transform[coun_obj_wi_ralsha];
foreach (Transform Trans in attac)
{
if (Trans.GetComponent<SkinnedMeshRenderer>() == true)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
SubTran[x] = Trans;
x++;
}
}
}
if (Trans.GetComponent<MeshRenderer>() == true)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
SubTran[x] = Trans;
x++;
}
}
}
}
Mat = new Material[coun_obj_mat];
foreach (Transform Trans in SubTran)
{
if (Trans.GetComponent<SkinnedMeshRenderer>() == true)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
for (int i = 0; i < Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterials.Length; i++)
{
Mat[coun_obj_mat_arr] = Trans.GetComponent<SkinnedMeshRenderer>().sharedMaterials[i];
coun_obj_mat_arr++;
}
}
}
}
if (Trans.GetComponent<MeshRenderer>() == true)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial != null)
{
if (Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_URP || Trans.GetComponent<MeshRenderer>().sharedMaterial.shader.name == RT_Sha_Nam_HDRP)
{
for (int i = 0; i < Trans.GetComponent<MeshRenderer>().sharedMaterials.Length; i++)
{
Mat[coun_obj_mat_arr] = Trans.GetComponent<MeshRenderer>().sharedMaterials[i];
coun_obj_mat_arr++;
}
}
}
}
}
foreach (Material Mat in Mat)
{
if (Mat != null)
{
Set_Shad_Prop(Mat);
}
}
}
#endregion
void Set_Shad_Prop(Material Mat)
{
if (Mat.IsKeywordEnabled("N_F_SE_ON") == true)
{
Mat.SetFloat("_NoiseSize", NoiseSize);
Mat.SetFloat("_TrailSize", TrailSize);
}
else if (Mat.IsKeywordEnabled("N_F_SE_ON") != true)
{
Mat.EnableKeyword("N_F_SE_ON");
Mat.SetInt("_N_F_SE", 1);
}
}
void Res_Shad_Prop()
{
NoiseSize = 100;
TrailSize = 1.5f;
Delay = 15;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 9b8a89bf5e3673342a090796bba2a357

View File

@@ -0,0 +1,38 @@
What's New to RealToon V5.0.11 (February 2025)
=====================================
[New]
- (ShadowT - SDF Mode Helper - New Options) (Built-In, URP and HDRP)
*Forward Inverted - Invert Forward/Front position of the object.
*Right Inverted - Invert Right position of the object.
*Light Threshold - The amount of light.
- RealToon Shader Cache (New Tool) (Built-In, URP and HDRP)
"To reduce or clear cached RealToon Shader."
"Useful for after update RealToon Shader or Re-import RealToon Shader."
"To access this, "Window -> RealToon -> RealToon Shader Cache"."
- Support URP Dynamic Lightmap. (Unity 6.0 to Latest)
- Support URP Deferred+. (Unity 6.1 to Latest)
- Support Unity 6.1
- Early add support for the later Unity 6.2.
[Changes]
- RealToon Shader (SRP) packages has been reorganized, separate Unity 6 folder and Older/Previous Unity version folders.
- (URP 10 - 11) and (HDRP 10 - 11) has been removed, not supported anymore.
[Fixed]
- Gloss feature "Unity_WorldToObject" error. (URP)
- Overlap Sky & RayTracing Reflection. (HDRP)
- RealToon HDRP Example missing Global Volume and overexposed. (HDRP)
- URP Lightmap errors. (URP)
====================================
#Read the "Change - Fix Log.txt." file for previous updates.
#This update supports Unity 5, 2017, 2018, 2019, 2020, 2022, 2023, Unity 6 and future unity versions.
[Other Notes]
* If you encounter some problems or need help just contact by email.

View File

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