Chore: NiloToonURP 업데이트 및 배경 썸네일 갱신

- NiloToonURP 외부 에셋 업데이트
- 배경 씬 썸네일 16:9 해상도로 갱신
- 렌더 파이프라인 설정 업데이트
- 외부 셰이더 그래프 업데이트 (LEDScreen, PIDI Planar Reflections)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
user 2026-01-08 01:28:02 +09:00
parent f324919b10
commit 010beaea75
81 changed files with 2365 additions and 774 deletions

File diff suppressed because it is too large Load Diff

View File

@ -694,6 +694,7 @@
"m_OutputNode": {
"m_Id": ""
},
"m_SubDatas": [],
"m_ActiveTargets": [
{
"m_Id": "09a1a22332334511bd962772d59ade8c"
@ -802,6 +803,10 @@
"m_AlphaClip": false,
"m_CastShadows": true,
"m_ReceiveShadows": true,
"m_DisableTint": false,
"m_Sort3DAs2DCompatible": false,
"m_AdditionalMotionVectorMode": 0,
"m_AlembicMotionVectors": false,
"m_SupportsLODCrossFade": false,
"m_CustomEditorGUI": "",
"m_SupportVFX": false
@ -848,7 +853,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -865,7 +871,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -923,6 +930,9 @@
"m_Guid": {
"m_GuidSerialized": "2fb18e39-5351-47e5-817f-eda8c05a892c"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Metallic",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -936,12 +946,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 0.0,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -958,7 +981,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1035,7 +1059,7 @@
"m_Title": "Main UVs",
"m_Position": {
"x": -987.0,
"y": -326.9999694824219
"y": -329.0
}
}
@ -1293,7 +1317,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1310,7 +1335,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1387,7 +1413,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1404,7 +1431,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1419,7 +1447,8 @@
"m_StageCapability": 2,
"m_Value": 0.5,
"m_DefaultValue": 0.5,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -1461,7 +1490,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1555,7 +1585,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1572,7 +1603,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1625,7 +1657,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 3
@ -1638,6 +1670,9 @@
"m_Guid": {
"m_GuidSerialized": "3296c007-3093-485f-9843-f3b3b42327f2"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Use Fog",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1670,7 +1705,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1693,6 +1729,9 @@
"m_Guid": {
"m_GuidSerialized": "c4d7975f-dbb1-4ad1-8644-84e2a348adfc"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Normal Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1706,12 +1745,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 3
}
@ -1730,7 +1772,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1740,6 +1783,9 @@
"m_Guid": {
"m_GuidSerialized": "b3a2cddf-bcff-4f08-a5ee-6eb474adb3f9"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Metallic Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1753,12 +1799,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -1770,6 +1819,9 @@
"m_Guid": {
"m_GuidSerialized": "784cfad6-96ce-47be-b59e-303bf684a705"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Depth",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1783,12 +1835,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -1807,7 +1862,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1959,6 +2015,9 @@
"m_Guid": {
"m_GuidSerialized": "f25cc10b-e529-4583-aff2-a65e2860accb"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Color",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1972,6 +2031,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"r": 1.0,
"g": 1.0,
@ -2003,7 +2064,8 @@
"y": 0.0,
"z": 0.0,
"w": 0.0
}
},
"m_LiteralMode": false
}
{
@ -2068,7 +2130,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2131,7 +2194,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2144,6 +2207,9 @@
"m_Guid": {
"m_GuidSerialized": "29ec55a8-a4bf-4d8d-a145-241f48c6a157"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "PBR Blurred Reflections",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2367,7 +2433,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2409,7 +2475,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2542,7 +2608,8 @@
"m_StageCapability": 2,
"m_Value": 0.0,
"m_DefaultValue": 0.0,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -2654,8 +2721,8 @@
"m_ObjectId": "79fdfb6565354148a0fb6f84258e8d7a",
"m_Title": "Reflections",
"m_Position": {
"x": -182.00006103515626,
"y": 748.0000610351563
"x": -182.0,
"y": 748.0
}
}
@ -2709,7 +2776,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2719,6 +2787,9 @@
"m_Guid": {
"m_GuidSerialized": "59381f49-0e9b-4489-a6d9-fc529fd5c370"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Occlusion Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2732,12 +2803,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -2794,7 +2868,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2888,6 +2963,9 @@
"m_Guid": {
"m_GuidSerialized": "71f0dc79-056a-43b8-8798-0c611519f4b7"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Tint",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2901,6 +2979,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"r": 1.0,
"g": 1.0,
@ -2925,7 +3005,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3048,7 +3129,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -3100,7 +3181,8 @@
"m_StageCapability": 2,
"m_Value": 1.0,
"m_DefaultValue": 1.0,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -3389,7 +3471,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3399,6 +3482,9 @@
"m_Guid": {
"m_GuidSerialized": "8c637333-b9b6-43f1-8d34-30751c3c655f"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "UV Tiling",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3412,6 +3498,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"x": 1.0,
"y": 1.0,
@ -3474,8 +3562,8 @@
"m_ObjectId": "aa183e2d287a4ab1919da27410aab453",
"m_Title": "Main Color",
"m_Position": {
"x": 10.0,
"y": 10.0
"x": -326.0,
"y": -804.0
}
}
@ -3610,7 +3698,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -3770,7 +3858,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3830,6 +3919,9 @@
"m_Guid": {
"m_GuidSerialized": "2c067d90-7157-4dc9-a4f2-e72c93a3af5a"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection's Distortion",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3843,12 +3935,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 0.05000000074505806,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 0.25
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -3858,6 +3963,9 @@
"m_Guid": {
"m_GuidSerialized": "5c83f4c4-298a-4723-a064-f0499d4f775c"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Smoothness",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3871,12 +3979,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 0.5,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -3953,7 +4074,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3968,7 +4090,8 @@
"m_StageCapability": 2,
"m_Value": 0.0,
"m_DefaultValue": 0.5,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -3985,7 +4108,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4038,7 +4162,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4066,7 +4191,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -4133,7 +4258,8 @@
"m_StageCapability": 2,
"m_Value": 1.0,
"m_DefaultValue": 1.0,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -4150,7 +4276,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4192,7 +4319,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4317,7 +4445,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4327,6 +4456,9 @@
"m_Guid": {
"m_GuidSerialized": "6d7a2d93-9576-4945-903e-19c7c11400ff"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Base Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4340,12 +4472,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -4364,7 +4499,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4381,7 +4517,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4398,7 +4535,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4408,6 +4546,9 @@
"m_Guid": {
"m_GuidSerialized": "14522277-8c63-452e-9fc7-9afb326f4e7b"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Fog",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4421,12 +4562,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 1
}
@ -4618,7 +4762,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4641,6 +4786,9 @@
"m_Guid": {
"m_GuidSerialized": "f410f5df-07f9-48aa-b971-575fc77ed596"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Tex",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4654,12 +4802,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 1
}
@ -4671,6 +4822,9 @@
"m_Guid": {
"m_GuidSerialized": "031e4225-f932-461c-bfe6-76aaf6907234"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Smoothness based reflection",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4684,12 +4838,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 1.0,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{

View File

@ -694,6 +694,7 @@
"m_OutputNode": {
"m_Id": ""
},
"m_SubDatas": [],
"m_ActiveTargets": [
{
"m_Id": "e91769ce2a694c7b9042a127f87d4275"
@ -743,8 +744,8 @@
"m_ObjectId": "0069e79cb6194b259db63981f15427ae",
"m_Title": "Main Color",
"m_Position": {
"x": 10.0,
"y": 10.0
"x": -326.0,
"y": -804.0
}
}
@ -755,6 +756,9 @@
"m_Guid": {
"m_GuidSerialized": "6d7a2d93-9576-4945-903e-19c7c11400ff"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Base Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -768,12 +772,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -790,7 +797,8 @@
"m_StageCapability": 2,
"m_Value": 0.5,
"m_DefaultValue": 0.5,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -848,6 +856,9 @@
"m_Guid": {
"m_GuidSerialized": "f410f5df-07f9-48aa-b971-575fc77ed596"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Tex",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -861,12 +872,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 1
}
@ -912,7 +926,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -963,7 +978,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1052,7 +1068,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1275,7 +1292,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1292,7 +1310,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1403,7 +1422,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1420,7 +1440,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1462,7 +1483,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1492,7 +1514,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1509,7 +1532,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1549,7 +1573,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 3
@ -1569,7 +1593,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1599,7 +1624,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1609,6 +1635,9 @@
"m_Guid": {
"m_GuidSerialized": "05fbc637-29c3-49c8-8e62-5d9a9a7e7fef"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "_ReflectionFog",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1622,12 +1651,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -1646,7 +1678,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1697,7 +1730,8 @@
"m_StageCapability": 2,
"m_Value": 0.0,
"m_DefaultValue": 0.5,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -1756,6 +1790,9 @@
"m_Guid": {
"m_GuidSerialized": "b3a2cddf-bcff-4f08-a5ee-6eb474adb3f9"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Metallic Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1769,12 +1806,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -1850,7 +1890,8 @@
"y": 0.0,
"z": 0.0,
"w": 0.0
}
},
"m_LiteralMode": false
}
{
@ -1951,7 +1992,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1961,6 +2003,9 @@
"m_Guid": {
"m_GuidSerialized": "f25cc10b-e529-4583-aff2-a65e2860accb"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Color",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1974,6 +2019,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"r": 1.0,
"g": 1.0,
@ -2044,7 +2091,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2197,7 +2244,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2215,7 +2262,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2275,7 +2322,7 @@
"m_Title": "Main UVs",
"m_Position": {
"x": -987.0,
"y": -326.9999694824219
"y": -329.0
}
}
@ -2346,6 +2393,9 @@
"m_Guid": {
"m_GuidSerialized": "031e4225-f932-461c-bfe6-76aaf6907234"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Smoothness based reflection",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2359,12 +2409,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 1.0,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -2408,6 +2471,9 @@
"m_Guid": {
"m_GuidSerialized": "c4d7975f-dbb1-4ad1-8644-84e2a348adfc"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Normal Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2421,12 +2487,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 3
}
@ -2622,7 +2691,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2758,7 +2828,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2869,7 +2940,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2939,6 +3011,9 @@
"m_Guid": {
"m_GuidSerialized": "71f0dc79-056a-43b8-8798-0c611519f4b7"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Tint",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2952,6 +3027,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"r": 1.0,
"g": 1.0,
@ -2969,6 +3046,9 @@
"m_Guid": {
"m_GuidSerialized": "9fa6809d-b2a0-48ea-a0d5-14bb6459ac94"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "PBR Blurred Reflections",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3047,7 +3127,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -3341,7 +3421,8 @@
"m_StageCapability": 2,
"m_Value": 1.0,
"m_DefaultValue": 1.0,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -3358,7 +3439,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3416,6 +3498,9 @@
"m_Guid": {
"m_GuidSerialized": "59381f49-0e9b-4489-a6d9-fc529fd5c370"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Occlusion Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3429,12 +3514,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -3634,7 +3722,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -3652,7 +3740,8 @@
"m_StageCapability": 2,
"m_Value": 1.0,
"m_DefaultValue": 1.0,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -3809,7 +3898,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3905,6 +3995,9 @@
"m_Guid": {
"m_GuidSerialized": "2fb18e39-5351-47e5-817f-eda8c05a892c"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Metallic",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3918,12 +4011,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 0.0,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -3933,6 +4039,9 @@
"m_Guid": {
"m_GuidSerialized": "5c83f4c4-298a-4723-a064-f0499d4f775c"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Smoothness",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3946,12 +4055,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 0.5,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -3968,7 +4090,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3985,7 +4108,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4072,7 +4196,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4134,7 +4259,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -4172,6 +4297,9 @@
"m_Guid": {
"m_GuidSerialized": "8c637333-b9b6-43f1-8d34-30751c3c655f"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "UV Tiling",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4185,6 +4313,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"x": 1.0,
"y": 1.0,
@ -4207,7 +4337,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4249,7 +4380,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4329,6 +4461,10 @@
"m_AlphaClip": false,
"m_CastShadows": true,
"m_ReceiveShadows": true,
"m_DisableTint": false,
"m_Sort3DAs2DCompatible": false,
"m_AdditionalMotionVectorMode": 0,
"m_AlembicMotionVectors": false,
"m_SupportsLODCrossFade": false,
"m_CustomEditorGUI": "",
"m_SupportVFX": false
@ -4341,6 +4477,9 @@
"m_Guid": {
"m_GuidSerialized": "2c067d90-7157-4dc9-a4f2-e72c93a3af5a"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection's Distortion",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4354,12 +4493,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 0.05000000074505806,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 0.25
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -4424,7 +4576,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4441,7 +4594,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4458,7 +4612,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4468,6 +4623,9 @@
"m_Guid": {
"m_GuidSerialized": "784cfad6-96ce-47be-b59e-303bf684a705"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Depth",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4481,12 +4639,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -4505,7 +4666,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4514,8 +4676,8 @@
"m_ObjectId": "f1ef58498c2c4a8db5fb206e366adab2",
"m_Title": "Reflections",
"m_Position": {
"x": -182.00006103515626,
"y": 748.0000610351563
"x": -182.0,
"y": 748.0
}
}
@ -4591,7 +4753,8 @@
"m_StageCapability": 2,
"m_Value": 0.0,
"m_DefaultValue": 0.0,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -4601,6 +4764,9 @@
"m_Guid": {
"m_GuidSerialized": "203aaab4-fe17-443d-8be6-6cbc304d2d82"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Use Fog",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4676,7 +4842,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{

View File

@ -729,6 +729,7 @@
"m_OutputNode": {
"m_Id": ""
},
"m_SubDatas": [],
"m_ActiveTargets": [
{
"m_Id": "9cb38d5759024c73a20b8d3bfe297760"
@ -809,7 +810,8 @@
"m_StageCapability": 2,
"m_Value": 0.5,
"m_DefaultValue": 0.5,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -867,6 +869,9 @@
"m_Guid": {
"m_GuidSerialized": "2c067d90-7157-4dc9-a4f2-e72c93a3af5a"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection's Distortion",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -880,12 +885,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 0.05000000074505806,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 0.25
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -963,7 +981,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -980,7 +999,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1045,7 +1065,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1128,6 +1149,9 @@
"m_Guid": {
"m_GuidSerialized": "5c83f4c4-298a-4723-a064-f0499d4f775c"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Smoothness",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1141,12 +1165,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 0.5,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -1296,7 +1333,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1313,7 +1351,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1390,7 +1429,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1407,7 +1447,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1462,7 +1503,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1479,7 +1521,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1496,7 +1539,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1531,6 +1575,9 @@
"m_Guid": {
"m_GuidSerialized": "f25cc10b-e529-4583-aff2-a65e2860accb"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Color",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1544,6 +1591,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"r": 1.0,
"g": 1.0,
@ -1566,7 +1615,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 3
@ -1586,7 +1635,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1603,7 +1653,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1620,7 +1671,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1637,7 +1689,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1863,7 +1916,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1873,6 +1927,9 @@
"m_Guid": {
"m_GuidSerialized": "2c405d80-56e4-4d5a-970f-848fced5dc8a"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Specular Color",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1886,6 +1943,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"r": 0.125490203499794,
"g": 0.125490203499794,
@ -1983,7 +2042,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2044,7 +2103,8 @@
"y": 0.0,
"z": 0.0,
"w": 0.0
}
},
"m_LiteralMode": false
}
{
@ -2218,7 +2278,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2236,7 +2296,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2256,7 +2316,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2302,6 +2363,9 @@
"m_Guid": {
"m_GuidSerialized": "5d667b45-1a73-4cf4-bc72-44d4f9ec6a19"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "PBR Blurred Reflections",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2387,6 +2451,9 @@
"m_Guid": {
"m_GuidSerialized": "6d371f26-15eb-4ee2-8bb3-b560e4f3f82d"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Fog",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2400,12 +2467,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -2469,7 +2539,8 @@
"m_StageCapability": 2,
"m_Value": 1.0,
"m_DefaultValue": 1.0,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -2633,7 +2704,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2785,7 +2857,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2853,6 +2926,9 @@
"m_Guid": {
"m_GuidSerialized": "c4d7975f-dbb1-4ad1-8644-84e2a348adfc"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Normal Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2866,12 +2942,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 3
}
@ -2936,7 +3015,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2973,6 +3052,9 @@
"m_Guid": {
"m_GuidSerialized": "f410f5df-07f9-48aa-b971-575fc77ed596"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Tex",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2986,12 +3068,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 1
}
@ -3010,7 +3095,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3056,6 +3142,9 @@
"m_Guid": {
"m_GuidSerialized": "2a01568a-0101-4b5a-bb35-b9fc9544b446"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Use Fog",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3139,6 +3228,10 @@
"m_AlphaClip": false,
"m_CastShadows": true,
"m_ReceiveShadows": true,
"m_DisableTint": false,
"m_Sort3DAs2DCompatible": false,
"m_AdditionalMotionVectorMode": 0,
"m_AlembicMotionVectors": false,
"m_SupportsLODCrossFade": false,
"m_CustomEditorGUI": "",
"m_SupportVFX": false
@ -3151,6 +3244,9 @@
"m_Guid": {
"m_GuidSerialized": "71f0dc79-056a-43b8-8798-0c611519f4b7"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Tint",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3164,6 +3260,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"r": 1.0,
"g": 1.0,
@ -3346,7 +3444,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3390,6 +3489,9 @@
"m_Guid": {
"m_GuidSerialized": "59381f49-0e9b-4489-a6d9-fc529fd5c370"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Occlusion Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3403,12 +3505,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -3427,7 +3532,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3490,7 +3596,8 @@
"m_StageCapability": 2,
"m_Value": 0.0,
"m_DefaultValue": 0.5,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -3570,6 +3677,9 @@
"m_Guid": {
"m_GuidSerialized": "784cfad6-96ce-47be-b59e-303bf684a705"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Depth",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3583,12 +3693,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -3702,6 +3815,9 @@
"m_Guid": {
"m_GuidSerialized": "6d7a2d93-9576-4945-903e-19c7c11400ff"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Base Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3715,12 +3831,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -3750,7 +3869,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -3935,7 +4054,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3952,7 +4072,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4012,6 +4133,9 @@
"m_Guid": {
"m_GuidSerialized": "031e4225-f932-461c-bfe6-76aaf6907234"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Smoothness based reflection",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4025,12 +4149,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 1.0,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -4083,7 +4220,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4093,6 +4231,9 @@
"m_Guid": {
"m_GuidSerialized": "8c637333-b9b6-43f1-8d34-30751c3c655f"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "UV Tiling",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4106,6 +4247,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"x": 1.0,
"y": 1.0,
@ -4128,7 +4271,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4179,7 +4323,8 @@
"m_StageCapability": 2,
"m_Value": 1.0,
"m_DefaultValue": 1.0,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -4207,7 +4352,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -4350,7 +4495,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4392,7 +4538,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4402,6 +4549,9 @@
"m_Guid": {
"m_GuidSerialized": "b3a2cddf-bcff-4f08-a5ee-6eb474adb3f9"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Specular (RGB) Gloss (A)",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4415,12 +4565,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -4605,7 +4758,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4646,7 +4800,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4673,7 +4828,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4750,7 +4906,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4823,7 +4980,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{

View File

@ -698,6 +698,7 @@
"m_OutputNode": {
"m_Id": ""
},
"m_SubDatas": [],
"m_ActiveTargets": [
{
"m_Id": "492c9108d6f14b14b58e74187c1d3c76"
@ -851,6 +852,9 @@
"m_Guid": {
"m_GuidSerialized": "784cfad6-96ce-47be-b59e-303bf684a705"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Depth",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -864,12 +868,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -915,7 +922,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -932,7 +940,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -990,6 +999,9 @@
"m_Guid": {
"m_GuidSerialized": "6d7a2d93-9576-4945-903e-19c7c11400ff"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Base Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1003,12 +1015,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -1027,7 +1042,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1175,7 +1191,8 @@
"m_StageCapability": 2,
"m_Value": 1.0,
"m_DefaultValue": 1.0,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -1265,7 +1282,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1282,7 +1300,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1359,7 +1378,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1376,7 +1396,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1431,7 +1452,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1448,7 +1470,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1483,6 +1506,9 @@
"m_Guid": {
"m_GuidSerialized": "a4fdd635-6048-4dfb-ab88-091715564297"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "PBR Blurred Reflections",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -1570,7 +1596,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 3
@ -1590,7 +1616,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1605,7 +1632,8 @@
"m_StageCapability": 2,
"m_Value": 1.0,
"m_DefaultValue": 1.0,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -1622,7 +1650,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1639,7 +1668,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1656,7 +1686,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -1780,6 +1811,10 @@
"m_AlphaClip": false,
"m_CastShadows": true,
"m_ReceiveShadows": true,
"m_DisableTint": false,
"m_Sort3DAs2DCompatible": false,
"m_AdditionalMotionVectorMode": 0,
"m_AlembicMotionVectors": false,
"m_SupportsLODCrossFade": false,
"m_CustomEditorGUI": "",
"m_SupportVFX": false
@ -1915,7 +1950,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2005,7 +2041,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2168,7 +2204,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2186,7 +2222,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2206,7 +2242,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2444,7 +2481,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2518,7 +2556,8 @@
"m_StageCapability": 2,
"m_Value": 0.0,
"m_DefaultValue": 0.5,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -2541,6 +2580,9 @@
"m_Guid": {
"m_GuidSerialized": "b3a2cddf-bcff-4f08-a5ee-6eb474adb3f9"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Specular (RGB) Gloss (A)",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2554,12 +2596,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -2662,7 +2707,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2783,7 +2829,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -2830,6 +2876,9 @@
"m_Guid": {
"m_GuidSerialized": "c4d7975f-dbb1-4ad1-8644-84e2a348adfc"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Normal Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -2843,12 +2892,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 3
}
@ -2891,7 +2943,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -2901,6 +2954,9 @@
"m_Guid": {
"m_GuidSerialized": "d9d64105-02e0-48a4-a07f-b225709a01f1"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Use Fog",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3209,7 +3265,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3321,7 +3378,8 @@
"m_StageCapability": 2,
"m_Value": 0.5,
"m_DefaultValue": 0.5,
"m_Labels": []
"m_Labels": [],
"m_LiteralMode": false
}
{
@ -3403,6 +3461,9 @@
"m_Guid": {
"m_GuidSerialized": "f410f5df-07f9-48aa-b971-575fc77ed596"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Tex",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3416,12 +3477,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 1
}
@ -3446,6 +3510,9 @@
"m_Guid": {
"m_GuidSerialized": "8c637333-b9b6-43f1-8d34-30751c3c655f"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "UV Tiling",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3459,6 +3526,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"x": 1.0,
"y": 1.0,
@ -3479,7 +3548,7 @@
"m_StageCapability": 2,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -3492,6 +3561,9 @@
"m_Guid": {
"m_GuidSerialized": "71f0dc79-056a-43b8-8798-0c611519f4b7"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection Tint",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3505,6 +3577,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"r": 1.0,
"g": 1.0,
@ -3547,6 +3621,9 @@
"m_Guid": {
"m_GuidSerialized": "56c53a0d-1730-418e-91b5-3b875426f45e"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "ReflectionFog",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3560,12 +3637,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -3758,7 +3838,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -3827,6 +3908,9 @@
"m_Guid": {
"m_GuidSerialized": "59381f49-0e9b-4489-a6d9-fc529fd5c370"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Occlusion Map",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3840,12 +3924,15 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"isMainTexture": false,
"useTilingAndOffset": false,
"useTexelSize": true,
"m_Modifiable": true,
"m_DefaultType": 0
}
@ -3948,6 +4035,9 @@
"m_Guid": {
"m_GuidSerialized": "031e4225-f932-461c-bfe6-76aaf6907234"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Smoothness based reflection",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -3961,12 +4051,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 1.0,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -3983,7 +4086,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4000,7 +4104,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4059,6 +4164,9 @@
"m_Guid": {
"m_GuidSerialized": "2c067d90-7157-4dc9-a4f2-e72c93a3af5a"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Reflection's Distortion",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4072,12 +4180,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 0.05000000074505806,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 0.25
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -4092,7 +4213,7 @@
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
@ -4197,7 +4318,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4239,7 +4361,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4364,7 +4487,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4415,7 +4539,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4432,7 +4557,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{
@ -4442,6 +4568,9 @@
"m_Guid": {
"m_GuidSerialized": "5c83f4c4-298a-4723-a064-f0499d4f775c"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Smoothness",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4455,12 +4584,25 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 0.5,
"m_FloatType": 1,
"m_LiteralFloatMode": false,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
}
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
@ -4573,6 +4715,9 @@
"m_Guid": {
"m_GuidSerialized": "2c405d80-56e4-4d5a-970f-848fced5dc8a"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Specular Color",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4586,6 +4731,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"r": 0.125490203499794,
"g": 0.125490203499794,
@ -4616,6 +4763,9 @@
"m_Guid": {
"m_GuidSerialized": "f25cc10b-e529-4583-aff2-a65e2860accb"
},
"promotedFromAssetID": "",
"promotedFromCategoryName": "",
"promotedOrdering": -1,
"m_Name": "Color",
"m_DefaultRefNameVersion": 0,
"m_RefNameGeneratedByDisplayName": "",
@ -4629,6 +4779,8 @@
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": {
"r": 1.0,
"g": 1.0,
@ -4653,7 +4805,8 @@
"m_DefaultValue": 0.0,
"m_Labels": [
"X"
]
],
"m_LiteralMode": false
}
{

BIN
Assets/NiloToonURP/CHANGELOG.md (Stored with Git LFS)

Binary file not shown.

View File

@ -138,13 +138,22 @@ namespace NiloToon.NiloToonURP
// [only the source fbx which has "NiloToonBakeSmoothNormalTSIntoUV8" asset label will enter this section]
// new NiloToon method
if (IsParallelImportEnabled() || NiloToonProjectSettings.Instance.outlineBakeMethod == OutlineBakeMethod.NiloToon)
bool shouldUseNiloToonOutlineBakeMethod = IsParallelImportEnabled() ||
NiloToonProjectSettings.Instance.outlineBakeMethod == OutlineBakeMethod.NiloToon;
#if UNITY_6000_4_OR_NEWER
// since Unity 6.4, we can't copy fbx inside scriptable importer anymore,
// so fallback to NiloToon's outline bake method
// if you copy fbx asset in Unity 6.4, you will get this error:
// - UnityException: Calls to "AssetDatabase.CopyAsset" are restricted during asset importing. Please make sure this function is not called from ScriptedImporters or PostProcessors, as it is a source of non-determinism.
shouldUseNiloToonOutlineBakeMethod = true;
#endif
if (shouldUseNiloToonOutlineBakeMethod)
{
NiloBakeSmoothNormalTSToMeshUv8.GenGOSmoothedNormalToUV8(go, true);
return;
}
// default old Unity method
// default old Unity method (only works in Unity6.3 or older)
ModelImporter model = assetImporter as ModelImporter;
string srcFBXPath = model.assetPath;
string copiedFBXPath = ConvertSrcFBXPathToCopiedFBXPath(srcFBXPath);

View File

@ -758,13 +758,13 @@ namespace NiloToon.NiloToonURP
originalMatClone.shader == VRMURPMToon10Shader)
{
float MToonScrollX = originalMatClone.GetFloat("_UvAnimScrollXSpeed");
float MToonScrollY = originalMatClone.GetFloat("_UvAnimScrollXSpeed");
float MToonRotate = originalMatClone.GetFloat("_UvAnimScrollXSpeed");
float MToonScrollY = originalMatClone.GetFloat("_UvAnimScrollYSpeed");
float MToonRotate = originalMatClone.GetFloat("_UvAnimRotationSpeed");
Vector4 _UV0ScrollSpeed = new Vector4();
_UV0ScrollSpeed.x = MToonScrollX;
_UV0ScrollSpeed.y = MToonScrollY;
mat.SetVector("_UV0ScrollSpeed", _UV0ScrollSpeed);
mat.SetFloat("_UV0RotateSpeed", MToonRotate);
mat.SetFloat("_UV0RotateSpeed", -MToonRotate);
if (MToonScrollX != 0 || MToonScrollY != 0 || MToonRotate != 0)
{
mat.SetFloat("_EnableUVEditGroup", 1);

View File

@ -5,6 +5,7 @@
// see also URP's ShaderPreprocessor.cs
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Rendering;
using UnityEngine;
@ -329,9 +330,15 @@ namespace NiloToon.NiloToonURP
// - STEREO_MULTIVIEW_ON
// - STEREO_CUBEMAP_RENDER_ON
// - UNITY_SINGLE_PASS_STEREO
// we by default strip these keywords since most user are not using NiloToon for XR.
// we by default strip these keywords since most users are not using NiloToon for XR.
// XR user should enable these keyword manually
// https://docs.unity3d.com/6000.2/Documentation/Manual/shader-keywords-default.html
// Check if building for any XR platform
bool isXREnabled = false; // IsXRBuildTarget(); // WIP
// Only strip VR/XR keywords if XR is NOT enabled
if (!isXREnabled)
{
if (!targetResultSetting.include_STEREO_INSTANCING_ON)
{
haveToStripList.Add(new ShaderKeyword(shader, "STEREO_INSTANCING_ON")); // safe to strip
@ -348,6 +355,10 @@ namespace NiloToon.NiloToonURP
{
haveToStripList.Add(new ShaderKeyword(shader, "UNITY_SINGLE_PASS_STEREO")); // safe to strip
}
// Other possible XR keyword to strip:
// "_XR_OCCLUSION_MESH"
// "UNITY_STEREO_INSTANCING_ENABLED"
}
//haveToStripList.Add(new ShaderKeyword(shader, "_RECEIVE_URP_SHADOW")); // confirm not safe to strip a local material keyword
//haveToStripList.Add(new ShaderKeyword(shader, "_SCREENSPACE_OUTLINE")); // confirm not safe to strip a local material keyword
@ -400,5 +411,81 @@ namespace NiloToon.NiloToonURP
#endif
return targetResultSetting;
}
/////////////////////////////////////////////////////////////
// XR helper functions
////////////////////////////////////////////////////////////
private static bool IsXRBuildTarget()
{
BuildTargetGroup buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup;
// Only check for known XR platforms
if (buildTargetGroup != BuildTargetGroup.Android &&
buildTargetGroup != BuildTargetGroup.Standalone &&
buildTargetGroup != BuildTargetGroup.iOS &&
buildTargetGroup != BuildTargetGroup.WSA &&
buildTargetGroup != BuildTargetGroup.PS4 &&
buildTargetGroup != BuildTargetGroup.PS5)
{
return false;
}
// Try modern XR Plugin Management first
if (CheckXRPluginManagement(buildTargetGroup))
{
return true;
}
// Fallback to legacy VR API
return CheckLegacyVRSupport(buildTargetGroup);
}
private static bool CheckXRPluginManagement(BuildTargetGroup buildTargetGroup)
{
try
{
var xrGeneralSettingsType = System.Type.GetType("UnityEditor.XR.Management.XRGeneralSettingsPerBuildTarget, Unity.XR.Management.Editor");
if (xrGeneralSettingsType == null) return false;
var method = xrGeneralSettingsType.GetMethod("XRGeneralSettingsForBuildTarget",
System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);
if (method == null) return false;
var xrGeneralSettings = method.Invoke(null, new object[] { buildTargetGroup });
if (xrGeneralSettings == null) return false;
var managerProperty = xrGeneralSettings.GetType().GetProperty("Manager");
var manager = managerProperty?.GetValue(xrGeneralSettings);
if (manager == null) return false;
var loadersProperty = manager.GetType().GetProperty("activeLoaders");
var loaders = loadersProperty?.GetValue(manager) as System.Collections.IList;
return loaders != null && loaders.Count > 0;
}
catch
{
return false;
}
}
private static bool CheckLegacyVRSupport(BuildTargetGroup buildTargetGroup)
{
// Unity removed legacy VR module in Unity6.4~6.5, so we can't check anymore, the API PlayerSettings.GetVirtualRealitySupported has been removed in Unity6.4~6.5
#if UNITY_6000_4_OR_NEWER
return false;
#else
try
{
#pragma warning disable CS0618
return PlayerSettings.GetVirtualRealitySupported(buildTargetGroup);
#pragma warning restore CS0618
}
catch
{
return false;
}
#endif
}
}
}

View File

@ -120,8 +120,6 @@ namespace NiloToon.NiloToonURP
try
{
File.WriteAllText(path, json);
// Force refresh to ensure AssetDatabase is aware
AssetDatabase.Refresh();
}
catch (System.Exception e)
{

View File

@ -201,24 +201,6 @@ namespace LWGUI
public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor)
{
// Check if parent group is folded
metaDatas = Helper.GetLWGUIMetadatas(editor);
if (metaDatas != null && !string.IsNullOrEmpty(group) && group != "_")
{
var (propStaticData, propDynamicData) = metaDatas.GetPropDatas(prop);
// Check if property should be hidden due to parent group folding
if (propStaticData.parent != null)
{
var material = editor.target as Material;
if (!MetaDataHelper.GetParentPropertyVisibility(propStaticData.parent, material, metaDatas)
|| (propStaticData.parent.parent != null && !MetaDataHelper.GetParentPropertyVisibility(propStaticData.parent.parent, material, metaDatas)))
{
return 0;
}
}
}
return GetVisibleHeight(prop);
}

View File

@ -3,7 +3,7 @@ guid: cfbe5a628e96c0d4bae3645ad922a368
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
@ -67,7 +67,7 @@ TextureImporter:
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
@ -80,7 +80,7 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
@ -93,7 +93,7 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
@ -110,7 +110,6 @@ TextureImporter:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
@ -120,11 +119,12 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData: '{"MonoBehaviour":{"m_Enabled":true,"m_EditorHideFlags":0,"m_Name":"LWGUI_RampAtlas","m_EditorClassIdentifier":"","rampAtlasWidth":256,"rampAtlasHeight":4,"rampAtlasSRGB":true,"_ramps":[],"_saveTextureToggle":false}}'
userData: '{"MonoBehaviour":{"m_Enabled":true,"m_EditorHideFlags":0,"m_Name":"LWGUI_RampAtlas","m_EditorClassIdentifier":"","rampAtlasWidth":256,"rampAtlasHeight":8,"rampAtlasSRGB":true,"_ramps":[{"name":"Default
Ramp","gradient":{"_curves":[{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":0.0,"inSlope":0.0,"outSlope":1.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":1.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":0.0,"inSlope":0.0,"outSlope":1.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":1.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4}]},"colorSpace":0,"channelMask":15,"timeRange":1},{"name":"Default
Ramp","gradient":{"_curves":[{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":-0.00004999999873689376,"value":0.0,"inSlope":0.0,"outSlope":0.9999500513076782,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.9999500513076782,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":-0.00004999999873689376,"value":0.9492826461791992,"inSlope":0.0,"outSlope":0.05071482062339783,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.05071482062339783,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":-0.00004999999873689376,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4}]},"colorSpace":0,"channelMask":15,"timeRange":1},{"name":"New
Ramp","gradient":{"_curves":[{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4}]},"colorSpace":0,"channelMask":-1,"timeRange":1},{"name":"Green","gradient":{"_curves":[{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":0.0,"inSlope":0.0,"outSlope":1.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":1.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4},{"serializedVersion":"2","m_Curve":[{"serializedVersion":"3","time":0.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0},{"serializedVersion":"3","time":1.0,"value":1.0,"inSlope":0.0,"outSlope":0.0,"tangentMode":69,"weightedMode":0,"inWeight":0.0,"outWeight":0.0}],"m_PreInfinity":2,"m_PostInfinity":2,"m_RotationOrder":4}]},"colorSpace":1,"channelMask":10,"timeRange":24}],"_saveTextureToggle":false}}'
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -256,7 +256,7 @@ namespace NiloToon.NiloToonURP
}
#endif
}
#if !UNITY_6000_4_OR_NEWER // TODO: it seems not correct to remove UberPostProcessPass.Setup(...) in Unity6.4?
#if UNITY_2022_2_OR_NEWER
// If you want to pass cameraColorTargetHandle or cameraDepthTargetHandle RTHandle into a pass
// You must do it here instead of AddRenderPasses(...), since these RTHandle are not yet init in AddRenderPasses(...)!
@ -266,6 +266,7 @@ namespace NiloToon.NiloToonURP
UberPostProcessPass.Setup(renderingData.cameraData.cameraTargetDescriptor);
}
#endif
#endif
#if UNITY_2022_2_OR_NEWER
// The method can be useful for releasing any resources that have been allocated.

View File

@ -45,6 +45,7 @@ namespace NiloToon.NiloToonURP
private static readonly int BottomDarkenIntensity = Shader.PropertyToID("_BottomDarkenIntensity");
private static readonly int BottomDarkenDrawAreaHeight = Shader.PropertyToID("_BottomDarkenDrawAreaHeight");
private static readonly int TopLightSunTintColor = Shader.PropertyToID("_TopLightSunTintColor");
private static readonly int TopLightReceiveMainLightShadow = Shader.PropertyToID("_TopLightReceiveMainLightShadow");
public NiloToonAnimePostProcessPass(NiloToonRendererFeatureSettings allSettings)
{
@ -53,7 +54,7 @@ namespace NiloToon.NiloToonURP
_instance = this;
m_ProfilingSampler = new ProfilingSampler("NiloToonAnimePostProcessPass");
}
#if !UNITY_6000_4_OR_NEWER
#if UNITY_6000_0_OR_NEWER
[Obsolete]
#endif
@ -61,7 +62,7 @@ namespace NiloToon.NiloToonURP
{
SetRenderPassEvent();
}
#endif
private void SetRenderPassEvent()
{
var animePP = VolumeManager.instance.stack.GetComponent<NiloToonAnimePostProcessVolume>();
@ -75,7 +76,7 @@ namespace NiloToon.NiloToonURP
renderPassEvent = RenderPassEvent.AfterRenderingPostProcessing;
}
}
#if !UNITY_6000_4_OR_NEWER
#if UNITY_6000_0_OR_NEWER
[Obsolete]
#endif
@ -83,7 +84,7 @@ namespace NiloToon.NiloToonURP
{
Render(context, ref renderingData);
}
#endif
private void InitMaterialIfNeeded()
{
// delay CreateEngineMaterial to as late as possible, to make it safe when ReimportAll is running
@ -151,6 +152,7 @@ namespace NiloToon.NiloToonURP
material.SetColor(TopLightTintColor, animePP.topLightTintColor.value);
material.SetColor(TopLightSunTintColor, animePP.topLightSunTintColor.value);
material.SetFloat(TopLightDrawAreaHeight, animePP.topLightEffectDrawHeight.value);
material.SetFloat(TopLightReceiveMainLightShadow, animePP.topLightReceiveMainLightShadow.value);
material.SetFloat(BottomDarkenRotationDegree, animePP.rotation.value + animePP.bottomDarkenExtraRotation.value);
material.SetFloat(BottomDarkenIntensity, bottomDarkenEffectIntensity);

View File

@ -65,7 +65,7 @@ namespace NiloToon.NiloToonURP
base.profilingSampler = new ProfilingSampler(nameof(NiloToonAverageShadowTestRTPass));
}
#if !UNITY_6000_4_OR_NEWER
// This method is called before executing the render pass.
// It can be used to configure render targets and their clear state. Also to create temporary render target textures.
// When empty this render pass will render to the active camera render target.
@ -99,6 +99,7 @@ namespace NiloToon.NiloToonURP
#endif
ConfigureClear(ClearFlag.Color, Color.white); // default white = default no shadow
}
#endif
private static void GetRTDescriptor(out RenderTextureDescriptor renderTextureDescriptor)
{
@ -134,6 +135,7 @@ namespace NiloToon.NiloToonURP
}
}
#if !UNITY_6000_4_OR_NEWER
// Here you can implement the rendering logic.
// Use <c>ScriptableRenderContext</c> to issue drawing commands or execute command buffers
// https://docs.unity3d.com/ScriptReference/Rendering.ScriptableRenderContext.html
@ -147,7 +149,7 @@ namespace NiloToon.NiloToonURP
renderPerCharacterAverageShadowAtlaRT(context, renderingData);
}
#endif
// Cleanup any allocated resources that were created during the execution of this render pass.
public override void OnCameraCleanup(CommandBuffer cmd)
{

View File

@ -191,7 +191,7 @@ namespace NiloToon.NiloToonURP
}
bool shouldRender;
#if !UNITY_6000_4_OR_NEWER
// This method is called before executing the render pass.
// It can be used to configure render targets and their clear state. Also to create temporary render target textures.
// When empty this render pass will render to the active camera render target.
@ -239,7 +239,7 @@ namespace NiloToon.NiloToonURP
{
renderCharacterSelfShadowmapRT(context, renderingData);
}
#endif
// Cleanup any allocated resources that were created during the execution of this render pass.
public override void OnCameraCleanup(CommandBuffer cmd)
{
@ -739,6 +739,16 @@ namespace NiloToon.NiloToonURP
Matrix4x4 MixTransforms(Matrix4x4 matrixA, Matrix4x4 matrixB, float t)
{
// Assert t is in valid range
Debug.Assert(t >= 0f && t <= 1f, $"MixTransforms: t must be in range [0, 1], got {t}");
// Early returns for edge cases
if (t <= 0f)
return matrixA;
if (t >= 1f)
return matrixB;
// Extract the position (translation) from each matrix
Vector3 positionA = matrixA.GetColumn(3);
Vector3 positionB = matrixB.GetColumn(3);
@ -965,7 +975,8 @@ namespace NiloToon.NiloToonURP
float volumeOverrideLightDirStrength =
charRenderingControlVolume.overrideLightDirectionIntensity.value;
if (shadowCamViewMatrix.ValidTRS())
if (shadowCamViewMatrix.ValidTRS() && volumeOverrideRotatedShadowCamViewMatrix.ValidTRS() && volumeOverrideLightDirStrength > 0)
{
shadowCamViewMatrix = MixTransforms(shadowCamViewMatrix,
volumeOverrideRotatedShadowCamViewMatrix, volumeOverrideLightDirStrength);

View File

@ -22,6 +22,7 @@ namespace NiloToon.NiloToonURP
renderPassEvent = evt;
}
#if !UNITY_6000_4_OR_NEWER
#if UNITY_6000_0_OR_NEWER
[Obsolete]
#endif
@ -105,6 +106,7 @@ namespace NiloToon.NiloToonURP
#endif
}
}
#endif
#if UNITY_6000_0_OR_NEWER
/// <summary>

View File

@ -11,6 +11,7 @@ namespace NiloToon.NiloToonURP
{
public class NiloToonExtraThickOutlinePass : ScriptableRenderPass
{
#if !UNITY_6000_4_OR_NEWER
// This method is called before executing the render pass.
// It can be used to configure render targets and their clear state. Also to create temporary render target textures.
// When empty this render pass will render to the active camera render target.
@ -40,7 +41,7 @@ namespace NiloToon.NiloToonURP
renderStencilRelatedPasses(context, renderingData);
}
#endif
// Cleanup any allocated resources that were created during the execution of this render pass.
public override void OnCameraCleanup(CommandBuffer cmd)
{

View File

@ -101,7 +101,7 @@ namespace NiloToon.NiloToonURP
ConfigureInput(input);
}
#if !UNITY_6000_4_OR_NEWER
#if UNITY_6000_0_OR_NEWER
[Obsolete]
#endif
@ -133,7 +133,7 @@ namespace NiloToon.NiloToonURP
copyRTDesc.depthBufferBits = 0;
RenderingUtils.ReAllocateIfNeeded(ref copyRT, copyRTDesc, name: "_CopyTex");
}
#endif
public float GetRTTargetLength(RenderTextureDescriptor descriptor)
{
return Mathf.Min(descriptor.width, descriptor.height);
@ -347,6 +347,7 @@ namespace NiloToon.NiloToonURP
/////////////////////////////////////////////////////////////////////
// NON-RG EXECUTE METHOD - Uses shared algorithm
/////////////////////////////////////////////////////////////////////
#if !UNITY_6000_4_OR_NEWER
#if UNITY_6000_0_OR_NEWER
[Obsolete]
#endif
@ -400,7 +401,7 @@ namespace NiloToon.NiloToonURP
context.ExecuteCommandBuffer(cmd);
CommandBufferPool.Release(cmd);
}
#endif
public override void OnCameraCleanup(CommandBuffer cmd)
{
// do not write anything here

View File

@ -5,14 +5,12 @@
/*
_NiloToonPrepassBufferRT is storing the following data
-r: face (legacy, kept for compatibility)
-g: character visible area (for NiloToon Bloom / NiloToon Tonemapping) - includes face, body, and fur
-r: face
-g: character visible area (for NiloToon Bloom / NiloToon Tonemapping)
-b: unused
-a: unused
* We may draw IsFace,IsSkin,RimArea into this RT in future versions
* Fur mask is now integrated: renders fur shells to G channel
* All character areas (face, body, fur) use G channel for unified character mask
*/
using System;
using UnityEngine;
@ -40,10 +38,6 @@ namespace NiloToon.NiloToonURP
// Constants
static readonly ShaderTagId shaderTagId = new ShaderTagId("NiloToonPrepassBuffer");
static readonly ShaderTagId furShellMaskShaderTagId = new ShaderTagId("NiloToonFurShellMask");
// Fur mask settings
bool enableFurMask = true;
// Constructor(will not call every frame)
public NiloToonPrepassBufferRTPass(NiloToonRendererFeatureSettings allSettings)
@ -56,15 +50,7 @@ namespace NiloToon.NiloToonURP
base.profilingSampler = new ProfilingSampler(nameof(NiloToonPrepassBufferRTPass));
}
/// <summary>
/// Enable or disable fur mask rendering
/// </summary>
public void SetFurMaskEnabled(bool enabled)
{
enableFurMask = enabled;
}
#if !UNITY_6000_4_OR_NEWER
// This method is called before executing the render pass.
// It can be used to configure render targets and their clear state. Also to create temporary render target textures.
// When empty this render pass will render to the active camera render target.
@ -163,7 +149,7 @@ namespace NiloToon.NiloToonURP
cmd.Clear();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 1. Draw all nilotoon character renderer's "NiloToonPrepassBuffer" pass using SRP batching
// draw all nilotoon character renderer's "NiloToonPrepassBuffer" pass using SRP batching
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var filterSetting = new FilteringSettings(RenderQueueRange.opaque); //TODO: should include transparent also?
@ -171,17 +157,6 @@ namespace NiloToon.NiloToonURP
var drawSettings = CreateDrawingSettings(shaderTagId, ref renderingData, sortFlags);
drawSettings.perObjectData = PerObjectData.None;
context.DrawRenderers(renderingData.cullResults, ref drawSettings, ref filterSetting);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 2. Draw fur shell mask (NiloToonFurShellMask pass) - adds fur area to G and B channels
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (enableFurMask)
{
var furFilterSetting = new FilteringSettings(RenderQueueRange.all);
var furDrawSettings = CreateDrawingSettings(furShellMaskShaderTagId, ref renderingData, SortingCriteria.CommonTransparent);
furDrawSettings.perObjectData = PerObjectData.None;
context.DrawRenderers(renderingData.cullResults, ref furDrawSettings, ref furFilterSetting);
}
}
// must write these line after using{} finished, to ensure profiler and frame debugger display correctness
@ -189,7 +164,7 @@ namespace NiloToon.NiloToonURP
cmd.Clear();
CommandBufferPool.Release(cmd);
}
#endif
// Cleanup any allocated resources that were created during the execution of this render pass.
public override void OnCameraCleanup(CommandBuffer cmd)
{
@ -219,8 +194,6 @@ namespace NiloToon.NiloToonURP
public TextureHandle colorTarget;
public TextureHandle depthTarget;
public RendererListHandle rendererList;
public RendererListHandle furRendererList;
public bool enableFurMask;
}
public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameContext)
@ -236,7 +209,6 @@ namespace NiloToon.NiloToonURP
using (var builder = renderGraph.AddRasterRenderPass<PrepassBufferPassData>("NiloToon Prepass Buffer", out var passData, base.profilingSampler))
{
passData.cameraData = cameraData;
passData.enableFurMask = enableFurMask;
// Create render textures for RG - EXACT same descriptors as OnCameraSetup
var colorDesc = cameraData.cameraTargetDescriptor;
@ -252,28 +224,19 @@ namespace NiloToon.NiloToonURP
passData.colorTarget = UniversalRenderer.CreateRenderGraphTexture(renderGraph, colorDesc, "_NiloToonPrepassBufferColor", false);
passData.depthTarget = UniversalRenderer.CreateRenderGraphTexture(renderGraph, depthDesc, "_NiloToonPrepassBufferDepth", false);
// Create renderer list for character prepass - EXACT same settings as Execute
// Create renderer list - EXACT same settings as Execute
var renderListDesc = new RendererListDesc(shaderTagId, renderingData.cullResults, cameraData.camera)
{
sortingCriteria = cameraData.defaultOpaqueSortFlags,
renderQueueRange = RenderQueueRange.opaque,
sortingCriteria = cameraData.defaultOpaqueSortFlags, // Match: var sortFlags = renderingData.cameraData.defaultOpaqueSortFlags;
renderQueueRange = RenderQueueRange.opaque, // Match: var filterSetting = new FilteringSettings(RenderQueueRange.opaque);
};
passData.rendererList = renderGraph.CreateRendererList(renderListDesc);
// Create renderer list for fur shell mask
var furRenderListDesc = new RendererListDesc(furShellMaskShaderTagId, renderingData.cullResults, cameraData.camera)
{
sortingCriteria = SortingCriteria.CommonTransparent,
renderQueueRange = RenderQueueRange.all,
};
passData.furRendererList = renderGraph.CreateRendererList(furRenderListDesc);
// Set up render targets - Match ConfigureTarget behavior
builder.SetRenderAttachment(passData.colorTarget, 0, AccessFlags.Write);
builder.SetRenderAttachmentDepth(passData.depthTarget, AccessFlags.Write);
builder.UseRendererList(passData.rendererList);
builder.UseRendererList(passData.furRendererList);
// Set global textures - Match cmd.SetGlobalTexture behavior
builder.SetGlobalTextureAfterPass(passData.colorTarget, Shader.PropertyToID("_NiloToonPrepassBufferTex"));
@ -284,14 +247,8 @@ namespace NiloToon.NiloToonURP
// Match ConfigureClear(ClearFlag.All, Color.black) behavior
context.cmd.ClearRenderTarget(RTClearFlags.All, Color.black, 1.0f, 0);
// 1. Draw character prepass
// Match context.DrawRenderers behavior
context.cmd.DrawRendererList(data.rendererList);
// 2. Draw fur shell mask (adds fur area to G and B channels)
if (data.enableFurMask)
{
context.cmd.DrawRendererList(data.furRendererList);
}
});
}
}

View File

@ -10,6 +10,7 @@ namespace NiloToon.NiloToonURP
{
public class NiloToonRendererRedrawerPass : ScriptableRenderPass
{
#if !UNITY_6000_4_OR_NEWER
// This method is called before executing the render pass.
// It can be used to configure render targets and their clear state. Also to create temporary render target textures.
// When empty this render pass will render to the active camera render target.
@ -47,7 +48,7 @@ namespace NiloToon.NiloToonURP
{
// do nothing
}
#endif
ProfilingSampler m_ProfilingSamplerNiloToonRendererRedrawer;
NiloToonRendererFeatureSettings allSettings;

View File

@ -63,7 +63,7 @@ namespace NiloToon.NiloToonURP
this.settings = allSettings.outlineSettings;
m_ProfilingSamplerScreenSpaceOutline = new ProfilingSampler("NiloToonToonOutlinePass(Screen space outline)");
}
#if !UNITY_6000_4_OR_NEWER
// This method is called before executing the render pass.
// It can be used to configure render targets and their clear state. Also to create temporary render target textures.
// When empty this render pass will render to the active camera render target.
@ -76,7 +76,7 @@ namespace NiloToon.NiloToonURP
{
ConfigureInput(renderingData.cameraData.cameraType);
}
#endif
public void ConfigureInput(CameraType cameraType)
{
// Nilotoon automatically turn on _CameraDepthTexture and _CameraNormalsTexture if needed,
@ -133,7 +133,7 @@ namespace NiloToon.NiloToonURP
return shouldRenderScreenSpaceOutline;
}
#if !UNITY_6000_4_OR_NEWER
// Here you can implement the rendering logic.
// Use <c>ScriptableRenderContext</c> to issue drawing commands or execute command buffers
// https://docs.unity3d.com/ScriptReference/Rendering.ScriptableRenderContext.html
@ -145,7 +145,7 @@ namespace NiloToon.NiloToonURP
{
renderScreenSpaceOutline(context, renderingData);
}
#endif
// Cleanup any allocated resources that were created during the execution of this render pass.
public override void OnCameraCleanup(CommandBuffer cmd)
{

View File

@ -293,7 +293,7 @@ namespace NiloToon.NiloToonURP
// when user is editing NiloToon all in one renderer feature UI's value, URP will recreate this class's instance again and again each frame,
// so make sure all private fields of this class are re-assign with correct value on instance recreate
}
#if !UNITY_6000_4_OR_NEWER
// This method is called before executing the render pass.
// It can be used to configure render targets and their clear state. Also to create temporary render target textures.
// When empty this render pass will render to the active camera render target.
@ -306,7 +306,7 @@ namespace NiloToon.NiloToonURP
{
ConfigureInputs(renderingData.cameraData.renderer);
}
#endif
public void ConfigureInputs(ScriptableRenderer renderer)
{
var input = GetScriptableRenderPassInput(renderer);
@ -377,7 +377,7 @@ namespace NiloToon.NiloToonURP
return isDeferredRendering;
}
#if !UNITY_6000_4_OR_NEWER
// Here you can implement the rendering logic.
// Use <c>ScriptableRenderContext</c> to issue drawing commands or execute command buffers
// https://docs.unity3d.com/ScriptReference/Rendering.ScriptableRenderContext.html
@ -389,7 +389,7 @@ namespace NiloToon.NiloToonURP
{
setParam(context, renderingData);
}
#endif
// Cleanup any allocated resources that were created during the execution of this render pass.
public override void OnCameraCleanup(CommandBuffer cmd)
{

View File

@ -11,6 +11,7 @@ namespace NiloToon.NiloToonURP
{
public class NiloToonToonOutlinePass : ScriptableRenderPass
{
#if !UNITY_6000_4_OR_NEWER
// This method is called before executing the render pass.
// It can be used to configure render targets and their clear state. Also to create temporary render target textures.
// When empty this render pass will render to the active camera render target.
@ -35,7 +36,7 @@ namespace NiloToon.NiloToonURP
{
renderClassicOutline(context, renderingData);
}
#endif
// Cleanup any allocated resources that were created during the execution of this render pass.
public override void OnCameraCleanup(CommandBuffer cmd)
{
@ -311,7 +312,14 @@ namespace NiloToon.NiloToonURP
// Set the render target as the color and depth textures of the active camera texture
builder.UseRendererList(passData.rendererListHandle);
// IsValid() is needed, because some assets:
// - PIDI Planar Reflection
// - VLB
// will render Depth only pass without color buffer
if(resourceData.activeColorTexture.IsValid())
builder.SetRenderAttachment(resourceData.activeColorTexture, 0);
if(resourceData.activeDepthTexture.IsValid())
builder.SetRenderAttachmentDepth(resourceData.activeDepthTexture, AccessFlags.Write);
builder.AllowGlobalStateModification(true);

View File

@ -204,7 +204,7 @@ namespace NiloToon.NiloToonURP
m_Descriptor.autoGenerateMips = false;
//m_Source = source;
}
#if !UNITY_6000_4_OR_NEWER
#if UNITY_6000_0_OR_NEWER
[Obsolete]
#endif
@ -261,7 +261,7 @@ namespace NiloToon.NiloToonURP
cmd.Clear();
CommandBufferPool.Release(cmd);
}
#endif
RenderTextureDescriptor GetCompatibleDescriptor()
=> GetCompatibleDescriptor(m_Descriptor.width, m_Descriptor.height, m_Descriptor.graphicsFormat);
@ -277,7 +277,7 @@ namespace NiloToon.NiloToonURP
desc.graphicsFormat = format;
return desc;
}
#if !UNITY_6000_4_OR_NEWER
#if UNITY_6000_0_OR_NEWER
[Obsolete]
#endif
@ -335,6 +335,7 @@ namespace NiloToon.NiloToonURP
}
}
}
#endif
#if UNITY_6000_0_OR_NEWER
[Obsolete]

View File

@ -20,6 +20,8 @@ namespace NiloToon.NiloToonURP
public MinFloatParameter topLightEffectIntensity = new MinFloatParameter(1, 0);
[OverrideDisplayName("Tint by MainLight color?")]
public ClampedFloatParameter topLightMultiplyLightColor = new ClampedFloatParameter(1, 0, 1);
[OverrideDisplayName("Receive MainLight shadow?")]
public ClampedFloatParameter topLightReceiveMainLightShadow = new ClampedFloatParameter(1, 0, 1);
[OverrideDisplayName("Sun Tint Color")]
public ColorParameter topLightSunTintColor = new ColorParameter(new Color(0.3f, 0.225f, 0.1125f));
[OverrideDisplayName("Desaturate Light")]

View File

@ -5,6 +5,8 @@ using UnityEngine.Rendering.Universal;
namespace NiloToon.NiloToonURP
{
[System.Serializable, VolumeComponentMenu("NiloToon/Bloom (NiloToon)")]
//[SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))]
[HelpURL("https://docs.google.com/document/d/1iEh1E5xLXnXuICM0ElV3F3x_J2LND9Du2SSKzcIuPXw/edit?pli=1&tab=t.0#heading=h.bevtkrac5r9p")]
public class NiloToonBloomVolume : VolumeComponent, IPostProcessComponent
{
[Header("======== Same as URP's Bloom ======================================================================")]

View File

@ -6,6 +6,8 @@ using UnityEngine.Serialization;
namespace NiloToon.NiloToonURP
{
[System.Serializable, VolumeComponentMenu("NiloToon/Cinematic Rim Light (NiloToon)")]
//[SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))]
[HelpURL("https://docs.google.com/document/d/1iEh1E5xLXnXuICM0ElV3F3x_J2LND9Du2SSKzcIuPXw/edit?pli=1&tab=t.0#heading=h.aapeix6wksbg")]
public class NiloToonCinematicRimLightVolume : VolumeComponent, IPostProcessComponent
{
[Header("Rim (2D Style)(= Default style if all style's strength are 0)")]

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 85fb753f7c45bda4a8998c05dfd2ddfa
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -27,4 +27,5 @@
#include "NiloPerspectiveRemovalUtil.hlsl"
#include "NiloDitherFadeoutClipUtil.hlsl"
#include "NiloShadows.hlsl"
#include "NiloGlitter.hlsl"

View File

@ -7,6 +7,10 @@
// doing this can make sure your .hlsl's user can include this .hlsl anywhere anytime without producing any multi include conflict
#pragma once
// this will NOT work for iPhone15Pro, why?
// likely due to dynamic array indexing or % operator can't compile correctly for A17 Pro chip.
// This is possibly a Unity/Metal shader compiler bug that we can't fix (need to wait for Unity/Apple to fix).
/*
void NiloDoDitherFadeoutClip(float2 SV_POSITIONxy, float ditherOpacity)
{
// copy from https://docs.unity3d.com/Packages/com.unity.shadergraph@10.3/manual/Dither-Node.html?q=dither
@ -20,19 +24,25 @@ void NiloDoDitherFadeoutClip(float2 SV_POSITIONxy, float ditherOpacity)
uint index = (uint(SV_POSITIONxy.x) % 4) * 4 + uint(SV_POSITIONxy.y) % 4;
clip(ditherOpacity - DITHER_THRESHOLDS[index]);
}
// this will work for iPhone15Pro, but the original function wont, why? must be due to % or array.
/*
*/
// This workaround WILL work for iPhone 15 Pro and all other devices
// Removed dynamic array indexing and % operator, replaced with unrolled if-else chain
// Tested on: Unity Editor, iPhone 14/15, iPhone 15 Pro
// Should be 100% safe and produces identical results to the original code
void NiloDoDitherFadeoutClip(float2 SV_POSITIONxy, float ditherOpacity)
{
// Use integer coordinates
int x = int(SV_POSITIONxy.x) & 3; // Using bitwise AND instead of modulo
int y = int(SV_POSITIONxy.y) & 3;
// Floor pixel coordinates and cast to int (robust even with negative positions)
// Floor is safer for edge cases (if SV_POSITIONxy is somehow negative, which is not expected)
int2 ip = (int2)floor(SV_POSITIONxy);
int x = ip.x & 3;
int y = ip.y & 3;
// Calculate threshold without array
// Bitshift is semantically clearer (x * 4 = x << 2)
float threshold;
int index = x * 4 + y;
int index = (x << 2) | y;
// Unroll the array access
// Unrolled lookup
if (index == 0) threshold = 1.0 / 17.0;
else if (index == 1) threshold = 9.0 / 17.0;
else if (index == 2) threshold = 3.0 / 17.0;
@ -52,5 +62,4 @@ void NiloDoDitherFadeoutClip(float2 SV_POSITIONxy, float ditherOpacity)
clip(ditherOpacity - threshold);
}
*/

View File

@ -0,0 +1,110 @@
// SPDX-License-Identifier: (Not available for this version, you are only allowed to use this software if you have express permission from the copyright holder and agreed to the latest NiloToonURP EULA)
// Copyright (c) 2021 Kuroneko ShaderLab Limited
// For more information, visit -> https://github.com/ColinLeung-NiloCat/UnityURPToonLitShaderExample
// #pragma once is a safe guard best practice in almost every .hlsl,
// doing this can make sure your .hlsl's user can include this .hlsl anywhere anytime without producing any multi include conflict
#pragma once
// HLSL Glitter Effect using Unity Lightmap UVs
// Lightmap UVs are unique and non-overlapping, perfect for glitter placement
// Random function based on position
float hash(float2 p)
{
float3 p3 = frac(float3(p.xyx) * 0.1031);
p3 += dot(p3, p3.yzx + 33.33);
return frac((p3.x + p3.y) * p3.z);
}
float2 hash2(float2 p)
{
float3 p3 = frac(float3(p.xyx) * float3(0.1031, 0.1030, 0.0973));
p3 += dot(p3, p3.yzx + 33.33);
return frac((p3.xx + p3.yz) * p3.zy);
}
float3 hash3(float2 p)
{
float3 p3 = frac(float3(p.xyx) * float3(0.1031, 0.1030, 0.0973));
p3 += dot(p3, p3.yxz + 33.33);
return frac((p3.xxy + p3.yzz) * p3.zyx) * 2.0 - 1.0;
}
// Main glitter function using lightmap UVs
float3 NiloGlitter(
float2 lightmapUV, // Unity's lightmap UV (TEXCOORD1)
float3 viewDir, // world space (should be normalized)
float3 normal, // world space (should be normalized)
float3 lightDir, // world space (should be normalized)
float density, // expect default input = 1
float size, // expect default input = 1
float brightness, // expect default input = 1
float randomNormalStrength) // default 0.5
{
// Normalize inputs to be safe
viewDir = normalize(viewDir);
normal = normalize(normal);
lightDir = normalize(lightDir);
float finalSize = size * 0.25;
// Use lightmap UV - these are unique across the entire mesh
float2 scaledUV = lightmapUV * density * 1000.0;
float2 cellID = floor(scaledUV);
float2 cellUV = frac(scaledUV);
float3 glitter = float3(0.0, 0.0, 0.0);
// Check neighboring cells for glitter particles
for(int y = -1; y <= 1; y++)
{
for(int x = -1; x <= 1; x++)
{
float2 neighborCell = cellID + float2(x, y);
// Random position within the cell
float2 randomOffset = hash2(neighborCell);
float2 particlePos = float2(x, y) + randomOffset;
// Distance to particle
float2 toParticle = particlePos - cellUV;
float dist = length(toParticle);
// Only process if within glitter size
if(dist < finalSize)
{
// Generate random orientation for this glitter particle
float3 glitterNormal = normalize(hash3(neighborCell));
// Blend with surface normal for realistic placement
glitterNormal = normalize(lerp(normal, glitterNormal, randomNormalStrength));
// Calculate reflection direction
float3 reflectDir = reflect(-viewDir, glitterNormal);
// Use the actual light direction
float specular = pow(max(dot(reflectDir, lightDir), 0.0), 1000.0);
// View alignment - glitter only visible at the right angle
float viewAlignment = max(dot(viewDir, glitterNormal), 0.0);
viewAlignment = pow(viewAlignment, 5.0);
// Smooth falloff based on distance
float fade = 1.0 - smoothstep(finalSize * 0.2, finalSize, dist);
// Combine all factors
float intensity = specular * viewAlignment * fade * brightness * 100.0;
// Color variation
float colorVariation = hash(neighborCell + 50.0);
float3 glitterColor = lerp(float3(1.0, 0.98, 0.95), float3(0.95, 0.97, 1.0), colorVariation);
glitter += glitterColor * intensity;
}
}
}
return glitter;
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 433b706673427d64a8711b32f0344dd1
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
preprocessorOverride: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -12,28 +12,28 @@ is just an almost empty .hlsl file with empty functions for you to fill in extra
You can use those empty functions to apply your global effect, similar to character-only postprocess (e.g. add fog of war/scan line...).
If you need us to expose more empty functions at another shading timing, please contact nilotoon@gmail.com
If you really need to edit the shader, usually just by editing "NiloToonCharacter_LightingEquation.hlsl" alone can control most of the visual result,
while editing this .shader file directly may make your future update(merge) difficult.
[All Passes of this .shader]
This shader includes 9 passes, each pass will be activated if needed:
This shader includes 12 passes, each pass will be activated if needed:
0.ForwardLit (LightMode:UniversalForwardOnly) (same as URP Lit shader, always render, a regular color pass that will always render to URP's _CameraColorTexture RT)
1.Outline (LightMode:NiloToonOutline) (only render if user turn it on in NiloToonAllInOneRendererFeature(default on). If render is needed, this pass will always render to URP's _CameraColorTexture RT)
2.CharacterAreaStencilBufferFill (LightMode:NiloToonCharacterAreaStencilBufferFill) (only render if user turn "Extra Thick Outline" on in NiloToonPerCharacterRenderController(default off). If render is needed, this pass will always render to URP's _CameraColorTexture RT)
3.ExtraThickOutline (LightMode:NiloToonExtraThickOutline) (only render if user turn "Extra Thick Outline" on in NiloToonPerCharacterRenderController(default off). If render is needed, this pass will always render to URP's _CameraColorTexture RT)
4.ShadowCaster (LightMode:ShadowCaster) (same as URP Lit shader, only for rendering to URP's shadow map RT's depth buffer, this pass won't be used if all your characters don't cast URP shadow)
5.DepthOnly (LightMode:DepthOnly) (same as URP Lit shader, only for rendering to URP's depth texture RT _CameraDepthTexture's depth buffer, this pass won't be used if your project don't render URP's offscreen depth prepass)
6.DepthNormalsOnly (LightMode:DepthNormalsOnly) (same as URP Lit shader, only for rendering to URP's normal texture RT _CameraNormalsTexture's rendering (color+depth), this pass won't be used if your project don't render URP's offscreen depth normal prepass)
7.NiloToonSelfShadowCaster (LightMode:NiloToonSelfShadowCaster) (only for rendering NiloToon's _NiloToonCharSelfShadowMapRT's depth buffer, this pass won't be used if your project don't enable NiloToon's character self shadow in NiloToonAllInOneRendererFeature)
8.NiloToonPrepassBuffer (LightMode:NiloToonPrepassBuffer) (Only for rendering NiloToon's _NiloToonPrepassBufferRT)
4.CharacterAreaColorFill (LightMode:NiloToonCharacterAreaColorFill) (only render if user turn "Color Fill" on in NiloToonPerCharacterRenderController(default off). If render is needed, this pass will always render to URP's _CameraColorTexture RT)
5.ShadowCaster (LightMode:ShadowCaster) (same as URP Lit shader, only for rendering to URP's shadow map RT's depth buffer, this pass won't be used if all your characters don't cast URP shadow)
6.DepthOnly (LightMode:DepthOnly) (same as URP Lit shader, only for rendering to URP's depth texture RT _CameraDepthTexture's depth buffer, this pass won't be used if your project don't render URP's offscreen depth prepass)
7.DepthNormalsOnly (LightMode:DepthNormalsOnly) (same as URP Lit shader, only for rendering to URP's normal texture RT _CameraNormalsTexture's rendering (color+depth), this pass won't be used if your project don't render URP's offscreen depth normal prepass)
8.MotionVectors (LightMode:MotionVectors) (same as URP Lit shader)
9.XRMotionVectors (LightMode:XRMotionVectors) (same as URP Lit shader)
10.NiloToonSelfShadowCaster (LightMode:NiloToonSelfShadowCaster) (only for rendering NiloToon's _NiloToonCharSelfShadowMapRT's depth buffer, this pass won't be used if your project don't enable NiloToon's character self shadow in NiloToonAllInOneRendererFeature)
11.NiloToonPrepassBuffer (LightMode:NiloToonPrepassBuffer) (Only for rendering NiloToon's _NiloToonPrepassBufferRT)
[SRP Batcher]
Because most of the time, user use NiloToon's character shader for unique characters or dynamic objects like character weapons, so all lightmap-related code is removed for simplicity.
Because most of the time, user use NiloToon's character shader for unique characters or dynamic objects like character weapons, so all lightmap-related code is removed for simplicity and shader compile speed.
For batching, we only rely on SRP batcher, which is the most practical batching method in URP for rendering lots of unique material + SkinnedMeshRenderer(unique mesh) characters.
The followiing are 4 possible batching method, and only SRP Batcher is useful.
- (X)Static batching (characters are dynamic)
- (X)Dynamic batching (characters have many vertices)
- (X)GPU instancing (characters have unique animation(unique mesh))
- (X)GPU instancing (characters have unique CPU animation(unique mesh))
- (O)SRP Batcher
[GPU Instancing]
@ -67,7 +67,7 @@ because:
case 2 - static uniform branching if():
// Reasonable cost, quite fast! (except OpenGLES2, OpenGLES2 doesn't have branching and will run both paths and discard the false path)
// since OpenGLES2 is not the main focus anymore in 2024, we will ignore OpenGLES2 and use static uniform branching if() in NiloToonURP when suitable
// since OpenGLES2 is not used anymore in 2025 or later, we will ignore OpenGLES2 and use static uniform branching if() in NiloToonURP when suitable
CBUFFER_START(UnityPerMaterial)
// usually controlled by a [Toggle] in material inspector, material.SetFloat() or Shader.SetGlobalFloat() in C#
float _ShouldRunFancyCode;
@ -102,7 +102,7 @@ because:
- https://iquilezles.org/articles/gpuconditionals/
- https://zhuanlan.zhihu.com/p/122467342
[TLDR]
[TL;DR]
Just remember(even for mobile platform):
- if() itself is not evil, you CAN use it if you know there is no divergence inside a warp/wavefront, still, it is not free on mobile(that's why shader_feature/multi_compile are still the popular choice to skip things in hlsl).
- "a ? b : c" is just a conditional move(movc / cmov) in assembly code, don't worry using it if you have calculated b and c already
@ -127,6 +127,7 @@ because:
the easiest way is to remove the texture read hlsl code using shader permutation.
But if the code is ALU only(pure calculation/math), and calculation is simple on both paths on the if & else side, NiloToonURP will prefer "a ? b : c".
The rest will be:
- static uniform branching (usually means heavy ALU only code inside an if(_Uniform))
- or dynamic branching (try to reduce divergency as much as possible)
@ -145,8 +146,8 @@ because:
[About multi_compile or shader_feature's _vertex and _fragment suffixes]
In unity 2020.3, unity added _vertex, _fragment suffixes to multi_compile and shader_feature
https://docs.unity3d.com/2020.3/Documentation/Manual/SL-MultipleProgramVariants.html (Using stage-specific keyword directives)
- https://docs.unity3d.com/2020.3/Documentation/Manual/SL-MultipleProgramVariants.html (Using stage-specific keyword directives)
- https://docs.unity3d.com/6000.0/Documentation/Manual/shader-variant-stripping.html#limit-shader-variants-when-you-declare-shader-keywords
The only disadvantage of NOT using _vertex and _fragment suffixes is only compilation time, not build size/memory usage:
@ -237,6 +238,8 @@ However, note that at this time it is still clamped to 202329 for 2023.2.9 (as i
#if UNITY_VERSION >= 60020000 (= 6.2)
Ref: https://discussions.unity.com/t/unity-6-new-naming-convention/942214
*/
// This shader is always forward rendered in "Deferred/Deferred+" Rendering Path, using UniversalForwardOnly pass.
Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
{
Properties
@ -2690,14 +2693,14 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
[Title(_DETAIL, Albedo Map)]
[Tooltip((only use rgb channel) (Default linearGrey 0.5))]
[Tex(_DETAIL)][NoScaleOffset]_DetailAlbedoMap("Albedo Map", 2D) = "linearGrey" {}
[Sub(_DETAIL)]_DetailAlbedoWhitePoint(" WhitePoint", Range(0.01,1)) = 0.5
[Sub(_DETAIL)]_DetailAlbedoMapScale(" Scale", Range(0.0, 20)) = 1.0
[Sub(_DETAIL)]_DetailAlbedoWhitePoint(" WhitePoint", Range(0.01,1.0)) = 0.5
[Sub(_DETAIL)]_DetailAlbedoMapScale(" Scale", Range(0.0, 20.0)) = 1.0 // URP lit.shader expose 0-2, here we expose 0-20
[Title(_DETAIL, ........................................................................................................................................................................................................................................................................................................................................................................)]
[Title(_DETAIL, Normal Map)]
[Tex(_DETAIL)][NoScaleOffset][Normal]_DetailNormalMap("Normal Map", 2D) = "bump" {}
[Sub(_DETAIL)]_DetailNormalMapScale(" Scale", Range(0.0, 20)) = 1.0
[Sub(_DETAIL)]_DetailNormalMapScale(" Scale", Range(0.0, 20.0)) = 1.0 // URP lit.shader expose 0-2, here we expose 0-20
[Title(_DETAIL, ........................................................................................................................................................................................................................................................................................................................................................................)]
@ -3322,7 +3325,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
[Tooltip(Make sure _Smoothness is not 0 in order to see specular result)]
[Tooltip(Enable specularReactToLightDirectionChange in NiloToonCharRenderingControlVolume will make specular react to light direction change)]
[Main(_SPECULARHIGHLIGHTS,_SPECULARHIGHLIGHTS)]_UseSpecular("Specular Highlights", Float) = 0
[Main(_SPECULARHIGHLIGHTS,_SPECULARHIGHLIGHTS)]_UseSpecular("Specular Highlights", Float) = 0 // similar to URP Lit.shader's _SpecularHighlights
[Title(_SPECULARHIGHLIGHTS,Additive or Replace)]
[SubToggle(_SPECULARHIGHLIGHTS, _)]_SpecularUseReplaceBlending("Use Replace Blending", Float) = 0
@ -3391,6 +3394,29 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
[Tooltip(Select the render faces that you want to show Specular Highlights.)]
[SubEnum(_SPECULARHIGHLIGHTS,Both,0,Front,2,Back,1)]_SpecularApplytoFaces("Show in which faces?", Float) = 0
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Glitter (NiloToon)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
[ShowIf(_UIDisplayMode, GEqual, 100)]
[Main(_NILOGLITTER,_NILOGLITTER)]_UseNiloGlitter("Glitter(NiloToon)", Float) = 0
[Helpbox(Experimental Feature, WIP)]
[Title(_NILOGLITTER, Color)]
[Sub(_NILOGLITTER)]_NiloGlitterIntensity("Intensity", Range(0,100)) = 1
[Sub(_NILOGLITTER)][HDR]_NiloGlitterTintColor("Tint Color", Color) = (1,1,1)
[Tooltip(Use as tint color or mask of Glitter result)]
[Tex(_NILOGLITTER)][NoScaleOffset]_NiloGlitterTintColorTex("Tint Color Map", 2D) = "white" {}
[Tooltip(The UV used for sampling Tint Color Map)]
[SubEnum(_NILOGLITTER,UV0,0,UV1,1,UV2,2,UV3,3)]_NiloGlitterTintColorTexUVIndex(". UV index", Float) = 0
[Title(_NILOGLITTER,Shape)]
[Sub(_NILOGLITTER)]_NiloGlitterDensity("Density", Range(0,10)) = 1
[Sub(_NILOGLITTER)]_NiloGlitterSize("Size", Range(0,10)) = 1
[Sub(_NILOGLITTER)]_NiloGlitterRndomNormalStrength("Random Normal", Range(0,1)) = 0.5
[Tooltip(The UV used for calculate glitter position, usually UV1 is the best if you Generate Lightmap UVs in fbx)]
[SubEnum(_NILOGLITTER,UV0,0,UV1,1,UV2,2,UV3,3)]_NiloGlitterUVIndex("UV index", Float) = 0
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Environment Reflections
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -3398,7 +3424,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
[Tooltip(Display scene Reflection Probe result.)]
[Tooltip(If the reflection is black, you can try rebake reflection probe in scene.)]
[Tooltip(Usually used for Metal reflection, Glass or Clearcoat.)]
[Main(_EnvironmentReflectionGroup,_ENVIRONMENTREFLECTIONS)]_ReceiveEnvironmentReflection("Environment Reflections", Float) = 0
[Main(_EnvironmentReflectionGroup,_ENVIRONMENTREFLECTIONS)]_ReceiveEnvironmentReflection("Environment Reflections", Float) = 0 // similar to URP lit.shader's _EnvironmentReflections
[Helpbox(Display the Reflection Probe of the current scene.)]
[Helpbox()]
@ -4019,7 +4045,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// dissolve
[HideInInspector]_DissolveAmount("_DissolveAmount", Range(0,1)) = 0
[HideInInspector]_DissolveMode("_DissolveMode", Integer) = 0 // if C# uses Material.SetInt(), then shader must use Integer instead of Float in shader
[HideInInspector]_DissolveMode("_DissolveMode", Integer) = 0 // C# uses material.SetInteger(_DissolveMode,value), we must match with uint here, do not use float! else dissolve may not work at all in Unity2021.3.x
[HideInInspector]_DissolveThresholdMap("_DissolveThresholdMap", 2D) = "linearGrey" {}
[HideInInspector]_DissolveThresholdMapTilingX("_DissolveThresholdMapTilingX", Float) = 1
[HideInInspector]_DissolveThresholdMapTilingY("_DissolveThresholdMapTilingY", Float) = 1
@ -4111,6 +4137,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
#pragma shader_feature_local_fragment _ALPHAOVERRIDEMAP
#pragma shader_feature_local _ALPHATEST_ON // MotionVector pass need this in vertex shader, so we can't use shader_feature_local_fragment here
// base map stacking layer can increase alpha, which affects alpha clipping result, so they are required by all passes
#pragma shader_feature_local_fragment _BASEMAP_STACKING_LAYER1
#pragma shader_feature_local_fragment _BASEMAP_STACKING_LAYER2
#pragma shader_feature_local_fragment _BASEMAP_STACKING_LAYER3
@ -4226,6 +4253,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// -------------------------------------
// Material Keywords
// [copied & modified from Unity6.4 ComplexLit.shader]
// -------------------------------------
#pragma shader_feature_local _NORMALMAP // need TangentWS from vertex shader also, so shader_feature_local_fragment is not enough
#pragma shader_feature_local _PARALLAXMAP // need TangentWS from vertex shader also, so shader_feature_local_fragment is not enough
@ -4234,13 +4262,25 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// URP ComplexLit.shader uses _ _DETAIL_MULX2 _DETAIL_SCALED, here we simplify them into a single keyword _DETAIL to reduce variant.
#pragma shader_feature_local _DETAIL // need TangentWS from vertex shader also, so shader_feature_local_fragment is not enough
//#pragma shader_feature_local_fragment _SURFACE_TYPE_TRANSPARENT // URP Lit shader has this, it is useful for the shader to know depth texture is availiable (For example, auto disable features that rely on depth texture)
//#pragma shader_feature_local_fragment _ALPHATEST_ON // extracted to shared HLSL section
//#pragma shader_feature_local_fragment _ _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON // ignored by NiloToon
#pragma shader_feature_local_fragment _EMISSION
#pragma shader_feature_local_fragment _EMISSION_ANIM_TINT_RAMPMAP
#pragma shader_feature_local_fragment _EMISSION_ANIM_TINT_RAMPMAP // added by NiloToon
//#pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP // ignored by NiloToon
//#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A // ignored by NiloToon
#pragma shader_feature_local_fragment _SMOOTHNESSMAP
#pragma shader_feature_local_fragment _OCCLUSIONMAP
//#pragma shader_feature_local_fragment _ _CLEARCOAT _CLEARCOATMAP // ignored by NiloToon
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS // URP ComplexLit.shader use _SPECULARHIGHLIGHTS_OFF to save a keyword, here we use an inverted keyword since it is default off
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_TEX_TINT
#pragma shader_feature_local_fragment _ENVIRONMENTREFLECTIONS // URP ComplexLit.shader use _ENVIRONMENTREFLECTIONS_OFF to save a keyword, here we use an inverted keyword, here we use an inverted keyword since it is default off
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_TEX_TINT // added by NiloToon
#pragma shader_feature_local_fragment _NILOGLITTER
#pragma shader_feature_local_fragment _ENVIRONMENTREFLECTIONS // URP ComplexLit.shader use _ENVIRONMENTREFLECTIONS_OFF to save a keyword, here we use an inverted keyword since it is default off
//#pragma shader_feature_local_fragment _SPECULAR_SETUP // ignored by NiloToon
// -------------------------------------
// NiloToon keywords (shader_feature)
@ -4305,6 +4345,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// -------------------------------------
// Universal Pipeline keywords
// [copied & modified from Unity6.4 ComplexLit.shader]
// -------------------------------------
// These multi_compile variants are stripped from the build depending on:
// 1) Settings in the URP Asset assigned in the GraphicsSettings & QualitySettings at build time
@ -4314,13 +4355,12 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// For example, variants with _MAIN_LIGHT_SHADOWS_CASCADE but not _MAIN_LIGHT_SHADOWS are invalid and therefore stripped.
// You can read URP's ShaderPreprocessor.cs (which implements interface IPreprocessShaders) to view URP's shader stripping logic
// [directly copied from Unity6.1 URP17 ComplexLit.shader]
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
//#pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX
#pragma multi_compile _ _LIGHT_LAYERS
// Starting from 6.1, _FORWARD_PLUS is replaced by _CLUSTER_LIGHT_LOOP
// Starting from Unity6.1, _FORWARD_PLUS is replaced by _CLUSTER_LIGHT_LOOP due to adding Deferred+
#if UNITY_VERSION >= 60010000
#pragma multi_compile _ _CLUSTER_LIGHT_LOOP
#elif UNITY_VERSION >= 202220
@ -4335,18 +4375,21 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
#endif
// [Hardcode define _SHADOWS_SOFT base on SHADER_API, instead of multi_compile, in order to reduce shader variant by 50%]
// https://docs.unity3d.com/ScriptReference/Rendering.BuiltinShaderDefine.html
//#pragma multi_compile_fragment _ _SHADOWS_SOFT // original code
#ifndef SHADER_API_MOBILE
#define _SHADOWS_SOFT 1
#endif
// not sure if it is worth the compile time & memory, disabled now
// not sure if it is worth the compile time & memory, disabled now and rely on dynamic branching
//#pragma multi_compile_fragment _ _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
// TODO: not supported now, it may ruin visual style if we included SSAO in lighting, and will double the shader memory usage
// TODO: not supported now, but it can be useful to add soft local shadow
//#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
// TODO: support needed?
// Keyword used for Screen Space Global Illumination. (added in Unity6.4)
//#pragma multi_compile_fragment _ _SCREEN_SPACE_IRRADIANCE
#pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
#pragma multi_compile_fragment _ _LIGHT_COOKIES
@ -4364,19 +4407,20 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
//#pragma multi_compile _ DIRLIGHTMAP_COMBINED
//#pragma multi_compile _ LIGHTMAP_ON
//#pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
//#pragma multi_compile_fragment _ REFLECTION_PROBE_ROTATION // TODO: support needed, not lightmap
//#pragma multi_compile _ DYNAMICLIGHTMAP_ON
//#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
//#pragma multi_compile _ LOD_FADE_CROSSFADE // Not worth to support this since it cost 2x shader memory
//#pragma multi_compile _ LOD_FADE_CROSSFADE // TODO: Not worth to support this since it cost 2x shader memory? but mesh lod is introduced, maybe it is time to support it
//#pragma multi_compile_fragment _ DEBUG_DISPLAY // NiloToon didn't implement URP's debug display
// [fog]
// In NiloToon, we force dynamic_branch for fog if possible (dynamic_branch fog introduced in Unity6.1),
// - https://docs.unity3d.com/6000.2/Documentation/Manual/urp/shader-stripping-fog.html
// this trades a little bit GPU performance for cutting 50~75% memory usage and 2x~4x faster build time, which is worth it
// this trades a little bit GPU performance for cutting 50~75% memory usage and 2x~4x faster build time, which is well worth it
#if UNITY_VERSION >= 60010000
#pragma dynamic_branch _ FOG_LINEAR FOG_EXP FOG_EXP2 // NiloToon's choice, no shader variant
//#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Fog.hlsl" // URP's original code
#pragma dynamic_branch _ FOG_LINEAR FOG_EXP FOG_EXP2 // NiloToon's choice, always no shader variant, not configurable
//#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Fog.hlsl" // URP's original code, configurable
#else
#pragma multi_compile_fog
#endif
@ -4401,10 +4445,10 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// Includes
// -------------------------------------
// because this pass is a ForwardLit pass
// define "NiloToonForwardLitPass" to inject code into VertexShaderAllWork()
// define "NiloToonForwardLitPass" to inject related code
#define NiloToonForwardLitPass 1
// all shader logic written inside this .hlsl, remember to write all #define BEFORE writing #include
// all shader logic written inside this .hlsl, remember to write all #define BEFORE writing #include the shared hlsl
#include "NiloToonCharacter_HLSL/NiloToonCharacter_Shared.hlsl"
ENDHLSL
@ -4918,7 +4962,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
ZWrite On // the only goal of this pass is to write depth (shadow map's light space depth)!
ZTest LEqual // early exit at Early-Z stage if possible (only possible if clip() does not exist)
ColorMask 0 // we don't care about color, we just want to write depth, ColorMask 0 will save some write bandwidth
Cull [_Cull]
Cull[_Cull]
HLSLPROGRAM
@ -4930,7 +4974,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// Shader Stages
// -------------------------------------
#pragma vertex VertexShaderAllWork
#pragma fragment BaseColorAlphaClipTest // we only need to do Clip(), we do not need rgba color result for shading
#pragma fragment BaseColorAlphaClipTest // we only need to do sample alpha and then Clip(), we do not need rgba color result for shading
// -------------------------------------
// Material Keywords
@ -4938,6 +4982,8 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// we need clip() related keywords in this pass, which are already defined inside the HLSLINCLUDE block in SubShader level
//#pragma shader_feature_local _ALPHATEST_ON
//#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A // ignored by NiloToon
// -------------------------------------
// NiloToon Keywords
// -------------------------------------
@ -4945,7 +4991,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// doing this can let character cast shadows that looks like "semi-transparent" shadow
#pragma multi_compile_local_fragment _ _NILOTOON_DITHER_FADEOUT
// -------------------------------------
//--------------------------------------
// GPU Instancing
// -------------------------------------
// to support GPU instancing and Single Pass Stereo rendering(VR), you should add the following section
@ -4958,7 +5004,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// -------------------------------------
// Unity defined keywords
// -------------------------------------
//#pragma multi_compile _ LOD_FADE_CROSSFADE // NilooToon doesn't support
//#pragma multi_compile _ LOD_FADE_CROSSFADE // TODO: NilooToon doesn't support it yet
// This is used during shadow map generation to differentiate between directional and punctual light shadows, as they use different formulas to apply Normal Bias
#pragma multi_compile_vertex _ _CASTING_PUNCTUAL_LIGHT_SHADOW
@ -4978,7 +5024,109 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// (X)No GBuffer Pass, this shader is designed for Forward/Forward+ lighting only.
// Even project is in deferred/deferred+ mode, the actually rendering of this shader is still in Forward/Forward+.
// {...}
// TODO: we should still write a GBuffer pass, because we need to
// Fill GBuffer data to prevent "holes", just in case someone wants to reuse GBuffer data.
// Deferred lighting is stenciled out for ComplexLit and rendered as forward.
// Dummy GBuffer pass for debug, will not work correctly
/*
Pass
{
// Lightmode matches the ShaderPassName set in UniversalRenderPipeline.cs. SRPDefaultUnlit and passes with
// no LightMode tag are also rendered by Universal Render Pipeline
//
// Fill GBuffer data to prevent "holes", just in case someone wants to reuse GBuffer data.
// Deferred lighting is stenciled out for ComplexLit and rendered as forward.
Name "GBuffer"
Tags
{
"LightMode" = "UniversalGBuffer"
}
// -------------------------------------
// Render State Commands
ZWrite[_ZWrite]
ZTest LEqual
Cull[_Cull]
HLSLPROGRAM
#pragma target 4.5
// Deferred Rendering Path does not support the OpenGL-based graphics API:
// Desktop OpenGL, OpenGL ES 3.0, WebGL 2.0.
#pragma exclude_renderers gles3 glcore
// -------------------------------------
// Shader Stages
#pragma vertex LitGBufferPassVertex
#pragma fragment LitGBufferPassFragment
// -------------------------------------
// Material Keywords
#pragma shader_feature_local _NORMALMAP
//#pragma shader_feature_local_fragment _ALPHATEST_ON
//#pragma shader_feature_local_fragment _ALPHAPREMULTIPLY_ON
#pragma shader_feature_local_fragment _EMISSION
#pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
#pragma shader_feature_local_fragment _OCCLUSIONMAP
#pragma shader_feature_local _PARALLAXMAP
#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF
#pragma shader_feature_local_fragment _ENVIRONMENTREFLECTIONS_OFF
#pragma shader_feature_local_fragment _SPECULAR_SETUP
#pragma shader_feature_local _RECEIVE_SHADOWS_OFF
// -------------------------------------
// Universal Pipeline keywords
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
//#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
//#pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
#pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING
#pragma multi_compile_fragment _ _REFLECTION_PROBE_BOX_PROJECTION
#pragma multi_compile_fragment _ _SHADOWS_SOFT
#pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
#pragma multi_compile_fragment _ _RENDER_PASS_ENABLED
#pragma multi_compile _ _CLUSTER_LIGHT_LOOP
#pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX
#if UNITY_VERSION >= 60000000
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
#endif
// -------------------------------------
// Unity defined keywords
#pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
#pragma multi_compile _ SHADOWS_SHADOWMASK
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ LIGHTMAP_ON
#pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
#pragma multi_compile _ LOD_FADE_CROSSFADE
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
#if UNITY_VERSION >= 60000000
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl"
#endif
//--------------------------------------
// GPU Instancing
#pragma multi_compile_instancing
#pragma instancing_options renderinglayer
#if UNITY_VERSION >= 60000000
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
#endif
// -------------------------------------
// Includes
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Shaders/LitGBufferPass.hlsl"
ENDHLSL
}
*/
// [DepthOnly pass]
// Used for rendering URP's offscreen depth prepass _CameraDepthTexture (you can search DepthOnlyPass.cs in URP package)
@ -4997,7 +5145,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// -------------------------------------
ZWrite On // the only goal of this pass is to write depth!
ColorMask R // URP13.1.8 or later changed from 0 to R, we will follow it
Cull [_Cull]
Cull[_Cull]
// Let user fully control the 2nd-8th bit of stencil buffer per material,
// but leaving the 1st bit for NiloToon to write "Character + Classic Outline" area
@ -5029,10 +5177,12 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// we need clip() related keywords in this pass, which is already defined inside the HLSLINCLUDE block in SubShader level
//#pragma shader_feature_local _ALPHATEST_ON
//#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A // ignored by NiloToon
// -------------------------------------
// NiloToon Keywords
// -------------------------------------
#pragma shader_feature_local_vertex _OUTLINEWIDTHMAP
//#pragma shader_feature_local_vertex _OUTLINEWIDTHMAP // outline write depth texture feautre removed since NiloToon0.17.10
// for push back zoffset depth write of face vertices, to hide face depth texture self shadow artifact
#pragma shader_feature_local _ISFACE
@ -5044,9 +5194,9 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// -------------------------------------
// Unity defined keywords
// -------------------------------------
//#pragma multi_compile _ LOD_FADE_CROSSFADE // NilooToon doesn't support
//#pragma multi_compile _ LOD_FADE_CROSSFADE // TODO: NilooToon doesn't support it yet
// -------------------------------------
//--------------------------------------
// GPU Instancing
// -------------------------------------
// to support GPU instancing and Single Pass Stereo rendering(VR), you should add the following section
@ -5059,8 +5209,6 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// -------------------------------------
// Includes
// -------------------------------------
// because Outline area should write to depth also, define "NiloToonDepthOnlyOrDepthNormalPass" to inject outline related code into VertexShaderAllWork()
// if depth write is correct, outline area will process depth of field correctly also.
#define NiloToonDepthOnlyOrDepthNormalPass 1
// all shader logic written inside this .hlsl, remember to write all #define BEFORE writing #include
@ -5072,6 +5220,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// [Extra DepthOnly pass for outline]
// Note: by default URP will only render the first "DepthOnly" pass inside a SubShader, and ignore all later "DepthOnly" passes, so we can't just add an extra "DepthOnly" pass here
// TODO: To render outline pass's depth into URP's _CameraDepthTexture or _CameraNormalsTexture also, we need to rely on a new renderer pass in Unity6 RenderGraph. (Same for DepthNormalsOnly & MotionVectors)
// if outline depth write is correct, outline area will process depth of field correctly also.
// see https://docs.unity3d.com/6000.0/Documentation/Manual/urp/render-graph-draw-objects-in-a-pass.html
/*
Pass
@ -5152,7 +5301,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
// -------------------------------------
// NiloToon Keywords
// -------------------------------------
#pragma shader_feature_local_vertex _OUTLINEWIDTHMAP
//#pragma shader_feature_local_vertex _OUTLINEWIDTHMAP // outline write depth texture feautre removed since NiloToon0.17.10
// for push back zoffset depth write of face vertices, to hide face depth texture self shadow artifact
#pragma shader_feature_local _ISFACE
@ -5197,14 +5346,14 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
}
// (X)No Meta Pass, this shader is designed for dynamic renderer only (not static/not lightmap)
// This pass it not used during regular rendering, only for lightmap baking.
// {...}
// (X)No Universal2D Pass, this shader is designed for 3D only
// {...}
// Copy and edited of URP17(Unity6.1)'s ComplexLit.shader's MotionVectors pass
// Copy and edited of Unity6.4's ComplexLit.shader's MotionVectors pass
// https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@17.0/manual/features/motion-vectors.html
// TODO: we need to write an additional motion vector pass for "Classic Outline", else DLSS/TAA/STP will have artifact on outline pixels
Pass
{
// [PackageRequirements]
@ -5237,8 +5386,8 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
}
HLSLPROGRAM
//#pragma shader_feature_local _ALPHATEST_ON // already declared
//#pragma multi_compile _ LOD_FADE_CROSSFADE // NiloToon doesn't support
//#pragma shader_feature_local _ALPHATEST_ON // already declared in shared HLSL section
//#pragma multi_compile _ LOD_FADE_CROSSFADE // TODO: NiloToon doesn't support it yet
#pragma shader_feature_local_vertex _ADD_PRECOMPUTED_VELOCITY
#include "NiloToonCharacter_HLSL/NiloToonCharacter_Shared.hlsl"
@ -5246,6 +5395,9 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
ENDHLSL
}
// TODO: we need to write an additional motion vector pass for "Classic Outline", else DLSS/TAA/STP will have artifact on outline pixels
// {...}
// The motion vector pass for XR's space warp
Pass
{
@ -5264,7 +5416,7 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
Tags { "LightMode" = "XRMotionVectors" }
ColorMask RGB
Cull [_Cull] // NiloToon added: _Cull doesn't exist in the offical ComplexLit shader
Cull [_Cull] // NiloToon added: _Cull doesn't exist in the offical ComplexLit.shader
// NiloToon's Stencil removed, due to URP require the special Stencil setting for XR
//Stencil {...}
@ -5279,12 +5431,12 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
}
HLSLPROGRAM
//#pragma shader_feature_local _ALPHATEST_ON // already declared
//#pragma multi_compile _ LOD_FADE_CROSSFADE // NiloToon doesn't support
//#pragma shader_feature_local _ALPHATEST_ON // already declared in shared HLSL section
//#pragma multi_compile _ LOD_FADE_CROSSFADE // TODO: NiloToon doesn't support it yet
#pragma shader_feature_local_vertex _ADD_PRECOMPUTED_VELOCITY
#if UNITY_VERSION >= 60010000
#define APPLICATION_SPACE_WARP_MOTION 1 // starting from Unity6.1, the 'APLICATION' typo is fixed, now the correct one is 'APPLICATION'. See Unity6.1's ComplexLit.shader's XRMotionVectors pass
#define APPLICATION_SPACE_WARP_MOTION 1 // starting from Unity6.1, the 'APLICATION' typo is fixed, now the correct one is 'APPLICATION'. See Unity6.1's ComplexLit.shader's XRMotionVectors pass and compare with Unity6.0's.
#else
#define APLICATION_SPACE_WARP_MOTION 1 // this is the 'correct' typo (APLICATION) for Unity6.0 version. See Unity6.0's ComplexLit.shader's XRMotionVectors pass
#endif
@ -5409,6 +5561,9 @@ Shader "Universal Render Pipeline/NiloToon/NiloToon_Character"
}
}
//////////////////////////////////////////////////////
//TODO: should we try to fallback to NiloToon(Lite) first before FallbackError? Likely no, we should error immediately to let user see it as early as possible in development.
FallBack "Hidden/Universal Render Pipeline/FallbackError"
CustomEditor "LWGUI.LWGUI"
}

View File

@ -743,7 +743,7 @@ half4 ShadeMainLight(inout ToonSurfaceData surfaceData, Varyings input, ToonLigh
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Lit
// Lit (Shadow area & color)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
half finalShadowArea = selfLightAttenuation * depthDiffShadow * selfShadowMapShadow;
@ -816,7 +816,7 @@ half4 ShadeMainLight(inout ToonSurfaceData surfaceData, Varyings input, ToonLigh
if(enableDepthTextureRimLightAndShadow)
{
// make depth tex shadow a little bit darker
// because depth tex shadow is similar to contact shadow, shadow caster and receiver position is close, which means shadow is strong (not much indirect light can reach)
// because depth tex shadow is similar to contact shadow, shadow caster and receiver position is close, which means shadow/occlusion is strong (not much indirect light can reach)
// we want depth tex shadow to have a bit different to self shadow to produce richer shadow, so default * 0.85
half3 finalDepthTexShadowTintColor = _DepthTexShadowTintColor * _DepthTexShadowBrightness;
#if _ISFACE
@ -828,9 +828,11 @@ half4 ShadeMainLight(inout ToonSurfaceData surfaceData, Varyings input, ToonLigh
}
#if _NILOTOON_RECEIVE_SELF_SHADOW
lightColorIndependentLitColor *= lerp(_NiloToonSelfShadowMappingTintColor,1,selfShadowMapShadow);
//TODO:... + global non skin + skin tint
#endif
#if ShouldReceiveURPShadow
lightColorIndependentLitColor *= lerp(_URPShadowMappingTintColor,1,light.shadowAttenuation);
//TODO:... + global non skin + skin tint
#endif
// global volume -> shadow tint color
@ -842,7 +844,7 @@ half4 ShadeMainLight(inout ToonSurfaceData surfaceData, Varyings input, ToonLigh
// to reduce (to 25%) but not completely remove add light result if in shadow
half inShadow25PercentMul = lerp(lightingData.averageShadowAttenuation,1,0.25);
// 3D rim light and shadow apply shadow
// face 3D rim light and shadow apply shadow
#if _ISFACE && _FACE_3D_RIMLIGHT_AND_SHADOW
lightColorIndependentLitColor *= face3DShadowTintColor;
#endif
@ -859,7 +861,7 @@ half4 ShadeMainLight(inout ToonSurfaceData surfaceData, Varyings input, ToonLigh
if(_UseGGXDirectSpecular)
{
// [GGX specular method]
half roughness = max(1-saturate(surfaceData.smoothness * _GGXDirectSpecularSmoothnessMultiplier),0.04); // don't let roughness = 0, it will produce bad bloom. Make it minimum 0.04 (atlease HALF_MIN_SQRT, but 0.04 can prevent bad bloom also)
half roughness = max(1-saturate(surfaceData.smoothness * _GGXDirectSpecularSmoothnessMultiplier),0.04); // don't let roughness = 0, it will produce bad bloom. Make it minimum 0.04 (at least HALF_MIN_SQRT, but 0.04 can prevent bad bloom also)
half F0 = 0.04; // only support non-metal for now, hardcode 0.04 F0
if(reactToLightDir)
@ -937,6 +939,26 @@ half4 ShadeMainLight(inout ToonSurfaceData surfaceData, Varyings input, ToonLigh
}
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Glitter
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#if _NILOGLITTER
half3 glitterLitAdd = 0;
//-----------------------
// NiloToon Glitter
half3 niloGlitterResult = NiloGlitter(GetUV(input, _NiloGlitterUVIndex), V, N, L, _NiloGlitterDensity, _NiloGlitterSize, _NiloGlitterIntensity, _NiloGlitterRndomNormalStrength);
niloGlitterResult *= tex2D(_NiloGlitterTintColorTex, GetUV(input, _NiloGlitterTintColorTexUVIndex)) * _NiloGlitterTintColor;
niloGlitterResult *= saturate(light.color);
glitterLitAdd += niloGlitterResult;
//-----------------------
// lilToon Glitter
//glitterLitAdd += lilGlitter(...);
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Kajiya-Kay specular for hair
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -990,6 +1012,10 @@ half4 ShadeMainLight(inout ToonSurfaceData surfaceData, Varyings input, ToonLigh
#endif
#endif
#if NiloToonForwardLitPass && _NILOGLITTER
result += glitterLitAdd;
#endif
#if NiloToonForwardLitPass || NiloToonSelfOutlinePass
// (1):
// min(2,light.color) to prevent over bright light.color

View File

@ -51,6 +51,7 @@
#define _SKIN_MASK_ON 1
#define _SPECULARHIGHLIGHTS 1
#define _SPECULARHIGHLIGHTS_TEX_TINT 1
#define _NILOGLITTER 1
#define _SMOOTHNESSMAP 1
#define _FACE_MASK_ON 1
#define _ZOFFSETMAP 1

View File

@ -307,6 +307,9 @@ TEXTURE2D(_BaseMap); SAMPLER(sampler_BaseMap);
sampler2D _SpecularColorTintMap;
#endif
#endif
#if _NILOGLITTER
sampler2D _NiloGlitterTintColorTex;
#endif
#if _KAJIYAKAY_SPECULAR
#if _KAJIYAKAY_SPECULAR_TEX_TINT
sampler2D _HairStrandSpecularTintMap;
@ -856,6 +859,15 @@ CBUFFER_START(UnityPerMaterial)
half _SpecularShowInShadowArea;
float _SpecularApplytoFaces;
// Glitter (NiloToon)
float _NiloGlitterIntensity;
float _NiloGlitterDensity;
float _NiloGlitterSize;
float _NiloGlitterRndomNormalStrength;
half3 _NiloGlitterTintColor;
uint _NiloGlitterUVIndex;
uint _NiloGlitterTintColorTexUVIndex;
// Environment Reflections
half _EnvironmentReflectionUsage;
half _EnvironmentReflectionShouldApplyToFaceArea;
@ -1204,7 +1216,7 @@ CBUFFER_START(UnityPerMaterial)
// _NILOTOON_DISSOLVE
float _DissolveAmount;
float _DissolveMode;
uint _DissolveMode; // C# uses material.SetInteger(_DissolveMode,value), we must match with uint here, do not use float! else dissolve may not work at all in Unity2021.3.x
float _DissolveThresholdMapTilingX;
float _DissolveThresholdMapTilingY;
float _DissolveNoiseStrength;

View File

@ -22,6 +22,7 @@ Shader "Hidden/NiloToon/AnimePostProcess"
half _TopLightDesaturate;
half3 _TopLightTintColor;
half3 _TopLightSunTintColor;
half _TopLightReceiveMainLightShadow;
half _BottomDarkenIntensity;
@ -91,7 +92,7 @@ Shader "Hidden/NiloToon/AnimePostProcess"
float skyLightGradient = min(2,(max(0,input.uv.y * 2 - 1)));//linear gradient from top to middle, minmax(0,2) due to "extend y to make roation possible" section added
// reserved the right most slot for camera (uv.x == 1)
half averageShadowSampleValue = tex2Dlod(_NiloToonAverageShadowMapRT, float4(1,0,0,0)).r;
half averageShadowSampleValue = lerp(1,tex2Dlod(_NiloToonAverageShadowMapRT, float4(1,0,0,0)).r,_TopLightReceiveMainLightShadow);
float skyLightIntensity = 1.5 * _TopLightIntensity * averageShadowSampleValue; // for intensity, control this
half3 col = skyLightGradient * lightColor * skyLightIntensity;

BIN
Assets/NiloToonURP/package.json (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.