[Add] All in one shader

This commit is contained in:
2026-02-23 22:01:07 +07:00
parent ec0aa86ac2
commit 4f942cd7c0
806 changed files with 401510 additions and 33 deletions
@@ -0,0 +1,14 @@
namespace AllIn13DShader
{
public enum AllIn13DPassType
{
NONE = -1,
MAIN = 0,
OUTLINE = 1,
SHADOW_CASTER = 2,
DEPTH_ONLY = 3,
DEPTH_NORMALS = 4,
META = 5,
FORWARD_ADD = 6,
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 01bc2741ce1ec4c4fa451accd2525fd3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/Allin13DPassType.cs
uploadId: 865720
@@ -0,0 +1,32 @@
using UnityEngine.Rendering;
namespace AllIn13DShader
{
[System.Serializable]
public class BlendCommand : ShaderCommand
{
private const string SHADER_ENTRY_FORMAT = @"Blend {0}";
public const string SRC_DEFINED_IN_PROPERTIES = @"[_BlendSrc]";
public const string DST_DEFINED_IN_PROPERTIES = @"[_BlendDst]";
public BlendMode srcBlending = BlendMode.Zero;
public BlendMode dstBlending = BlendMode.One;
protected override string GetShaderEntryFormat()
{
return SHADER_ENTRY_FORMAT;
}
protected override string GetShaderEntryValueDefinedInProperties()
{
string res = $"{SRC_DEFINED_IN_PROPERTIES} {DST_DEFINED_IN_PROPERTIES}";
return res;
}
protected override string GetShaderEntryValueDefinedInCode()
{
string res = $"{srcBlending.ToString()} {dstBlending.ToString()}";
return res;
}
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 89a6cc3ecd3c6ba4a9fddf82f2c4d643
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/BlendCommand.cs
uploadId: 865720
@@ -0,0 +1,54 @@
using UnityEngine.Rendering;
namespace AllIn13DShader
{
[System.Serializable]
public class ColorMaskCommand : ShaderCommand
{
private const string SHADER_ENTRY_FORMAT = @"ColorMask {0}";
private const string STR_DEFINED_IN_PROPERTIES = @"[_ColorMask]";
public ColorWriteMask colorWriteMask;
protected override string GetShaderEntryFormat()
{
return SHADER_ENTRY_FORMAT;
}
protected override string GetShaderEntryValueDefinedInCode()
{
string res = string.Empty;
if (colorWriteMask.HasFlag(ColorWriteMask.Red))
{
res += "R";
}
if (colorWriteMask.HasFlag(ColorWriteMask.Green))
{
res += "G";
}
if (colorWriteMask.HasFlag(ColorWriteMask.Blue))
{
res += "B";
}
if (colorWriteMask.HasFlag(ColorWriteMask.Alpha))
{
res += "A";
}
if (string.IsNullOrEmpty(res))
{
res = "0";
}
return res;
}
protected override string GetShaderEntryValueDefinedInProperties()
{
return STR_DEFINED_IN_PROPERTIES;
}
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 5757ab12f7f268a44a4cc0c229b48c33
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/ColorMaskCommand.cs
uploadId: 865720
@@ -0,0 +1,29 @@
using UnityEngine.Rendering;
namespace AllIn13DShader
{
[System.Serializable]
public class CullCommand : ShaderCommand
{
private const string SHADER_ENTRY_FORMAT = @"Cull {0}";
private const string STR_DEFINED_IN_PROPERTIES = @"[_CullingMode]";
public CullMode cullMode;
protected override string GetShaderEntryFormat()
{
return SHADER_ENTRY_FORMAT;
}
protected override string GetShaderEntryValueDefinedInCode()
{
string res = cullMode.ToString();
return res;
}
protected override string GetShaderEntryValueDefinedInProperties()
{
return STR_DEFINED_IN_PROPERTIES;
}
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 9abdb070dea10dc4b8864fa179806d77
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/CullCommand.cs
uploadId: 865720
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5d5a3268f1162cb44859fa63b91129fc
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a88ccc1bdfb7ccb4788b6169f0e66225, type: 3}
m_Name: ShaderPassCollection
m_EditorClassIdentifier: AllIn13DShaderAssemebly.Editor::AllIn13DShader.ShaderPassCollection
mainPass: {fileID: 11400000, guid: a6c4bacf92f616e46b85269e8937d62e, type: 2}
outlinePass: {fileID: 11400000, guid: d9c53fb10098f244daafa27d2a34f6f1, type: 2}
shadowCasterPass: {fileID: 11400000, guid: cde35f88efc3915459308ded0813329c, type: 2}
depthOnlyPass: {fileID: 11400000, guid: 9c2d274c9d2cd92409f03df624fcc618, type: 2}
depthNormalsPass: {fileID: 11400000, guid: 9c0a77d626be93448a5f98ecd9139d5e, type: 2}
metaPass: {fileID: 11400000, guid: 225f11d6c5bca9e469fcc219041d7cc5, type: 2}
forwardAdd: {fileID: 11400000, guid: 1734ded193e10df49966d25f3bd36a26, type: 2}
@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 02697d53e5a592b43b0b78710cd1fd60
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/Shader Passes/ShaderPassCollection.asset
uploadId: 865720
@@ -0,0 +1,38 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0d35b40778f5ef47a14fca4766c770a, type: 3}
m_Name: ShaderPass_DepthNormals
m_EditorClassIdentifier: AllIn13DShaderAssemebly.Editor::AllIn13DShader.ShaderPassConfig
passType: 4
passNameURP: DepthNormals
passNameBIRP:
lightModeTagURP: DepthNormals
lightModeTagBIRP:
passSymbol: ALLIN1_DEPTH_NORMALS_PASS
vertexProgramName: DepthNormalsVertex
fragmentProgramName: DepthNormalsFragment
blendCommand:
shaderCommandValue: 0
srcBlending: 0
dstBlending: 0
cullCommand:
shaderCommandValue: 2
cullMode: 0
zWriteCommand:
shaderCommandValue: 1
zWriteOn: 1
zTestCommand:
shaderCommandValue: 0
zTestMode: 4
colorMaskCommand:
shaderCommandValue: 0
colorWriteMask: 8
@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 9c0a77d626be93448a5f98ecd9139d5e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/Shader Passes/ShaderPass_DepthNormals.asset
uploadId: 865720
@@ -0,0 +1,39 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0d35b40778f5ef47a14fca4766c770a, type: 3}
m_Name: ShaderPass_DepthOnly
m_EditorClassIdentifier: AllIn13DShaderAssemebly.Editor::AllIn13DShader.ShaderPassConfig
passType: 3
passName: DepthOnly
passNameURP: DepthOnly
passNameBIRP:
lightModeTagURP: DepthOnly
lightModeTagBIRP:
passSymbol: ALLIN1_DEPTH_ONLY_PASS
vertexProgramName: DepthOnlyVertex
fragmentProgramName: DepthOnlyFragment
blendCommand:
shaderCommandValue: 0
srcBlending: 0
dstBlending: 0
cullCommand:
shaderCommandValue: 2
cullMode: 0
zWriteCommand:
shaderCommandValue: 1
zWriteOn: 1
zTestCommand:
shaderCommandValue: 0
zTestMode: 4
colorMaskCommand:
shaderCommandValue: 1
colorWriteMask: 8
@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 9c2d274c9d2cd92409f03df624fcc618
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/Shader Passes/ShaderPass_DepthOnly.asset
uploadId: 865720
@@ -0,0 +1,41 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0d35b40778f5ef47a14fca4766c770a, type: 3}
m_Name: ShaderPass_ForwardAdd
m_EditorClassIdentifier: AllIn13DShaderAssemebly.Editor::AllIn13DShader.ShaderPassConfig
passType: 6
passNameURP:
passNameBIRP: FORWARD_DELTA
lightModeTagURP:
lightModeTagBIRP: ForwardAdd
passSymbol: FORWARD_ADD_PASS
vertexProgramName: BasicVertex
fragmentProgramName: BasicFragmentAdd
blendCommand:
shaderCommandValue: 1
srcBlending: 1
dstBlending: 1
cullCommand:
shaderCommandValue: 2
cullMode: 0
zWriteCommand:
shaderCommandValue: 1
zWriteOn: 0
zTestCommand:
shaderCommandValue: 1
zTestMode: 4
colorMaskCommand:
shaderCommandValue: 0
colorWriteMask: 0
extraPragmaLinesBIRP: "#pragma multi_compile_fwdadd_fullshadows\r\n#pragma multi_compile_fog\r\n#pragma
multi_compile_instancing\r\n#pragma multi_compile _ DOTS_INSTANCING_ON\r"
extraPragmaLinesURP:
@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 1734ded193e10df49966d25f3bd36a26
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/Shader Passes/ShaderPass_ForwardAdd.asset
uploadId: 865720
@@ -0,0 +1,47 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0d35b40778f5ef47a14fca4766c770a, type: 3}
m_Name: ShaderPass_Main
m_EditorClassIdentifier: AllIn13DShaderAssemebly.Editor::AllIn13DShader.ShaderPassConfig
passType: 0
passNameURP: AllIn13D_MainPass_URP
passNameBIRP: AllIn13D_Forward_BIRP
lightModeTagURP: UniversalForward
lightModeTagBIRP: ForwardBase
passSymbol: ALLIN1_FORWARD_PASS
vertexProgramName: BasicVertex
fragmentProgramName: BasicFragment
blendCommand:
shaderCommandValue: 2
srcBlending: 0
dstBlending: 0
cullCommand:
shaderCommandValue: 2
cullMode: 0
zWriteCommand:
shaderCommandValue: 2
zWriteOn: 0
zTestCommand:
shaderCommandValue: 2
zTestMode: 0
colorMaskCommand:
shaderCommandValue: 2
colorWriteMask: 0
extraPragmaLinesBIRP: '#pragma multi_compile_fwdbase
#pragma multi_compile_fog
#pragma
multi_compile_instancing
#pragma multi_compile _ DOTS_INSTANCING_ON'
extraPragmaLinesURP:
@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: a6c4bacf92f616e46b85269e8937d62e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/Shader Passes/ShaderPass_Main.asset
uploadId: 865720
@@ -0,0 +1,39 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0d35b40778f5ef47a14fca4766c770a, type: 3}
m_Name: ShaderPass_Meta
m_EditorClassIdentifier: AllIn13DShaderAssemebly.Editor::AllIn13DShader.ShaderPassConfig
passType: 5
passName: Meta
passNameURP: Meta
passNameBIRP:
lightModeTagURP: Meta
lightModeTagBIRP:
passSymbol: META_PASS
vertexProgramName: AllIn1VertexMeta
fragmentProgramName: AllIn1FragmentMeta
blendCommand:
shaderCommandValue: 0
srcBlending: 0
dstBlending: 0
cullCommand:
shaderCommandValue: 1
cullMode: 0
zWriteCommand:
shaderCommandValue: 0
zWriteOn: 0
zTestCommand:
shaderCommandValue: 0
zTestMode: 4
colorMaskCommand:
shaderCommandValue: 0
colorWriteMask: 0
@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: 225f11d6c5bca9e469fcc219041d7cc5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/Shader Passes/ShaderPass_Meta.asset
uploadId: 865720
@@ -0,0 +1,41 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0d35b40778f5ef47a14fca4766c770a, type: 3}
m_Name: ShaderPass_Outline
m_EditorClassIdentifier: AllIn13DShaderAssemebly.Editor::AllIn13DShader.ShaderPassConfig
passType: 1
passNameURP: AllIn13D_Outline_URP
passNameBIRP: AllIn13D_Outline
lightModeTagURP: OutlinePass
lightModeTagBIRP:
passSymbol: ALLIN1_OUTLINE_PASS
vertexProgramName: OutlinePass_Vertex
fragmentProgramName: OutlinePass_Fragment
blendCommand:
shaderCommandValue: 2
srcBlending: 0
dstBlending: 0
cullCommand:
shaderCommandValue: 1
cullMode: 1
zWriteCommand:
shaderCommandValue: 0
zWriteOn: 0
zTestCommand:
shaderCommandValue: 0
zTestMode: 0
colorMaskCommand:
shaderCommandValue: 0
colorWriteMask: 0
extraPragmaLinesBIRP: "#pragma multi_compile_instancing\r\n#pragma multi_compile_fog\r\n#pragma
multi_compile _ DOTS_INSTANCING_ON\r"
extraPragmaLinesURP:
@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: d9c53fb10098f244daafa27d2a34f6f1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/Shader Passes/ShaderPass_Outline.asset
uploadId: 865720
@@ -0,0 +1,41 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f0d35b40778f5ef47a14fca4766c770a, type: 3}
m_Name: ShaderPass_ShadowCaster
m_EditorClassIdentifier: AllIn13DShaderAssemebly.Editor::AllIn13DShader.ShaderPassConfig
passType: 2
passNameURP: AllIn13D_ShadowCaster_URP
passNameBIRP: AllIn13D_ShadowCaster
lightModeTagURP: ShadowCaster
lightModeTagBIRP: ShadowCaster
passSymbol: SHADOW_CASTER_PASS
vertexProgramName: BasicVertexShadowCaster
fragmentProgramName: BasicFragmentShadowCaster
blendCommand:
shaderCommandValue: 0
srcBlending: 0
dstBlending: 0
cullCommand:
shaderCommandValue: 2
cullMode: 1
zWriteCommand:
shaderCommandValue: 1
zWriteOn: 1
zTestCommand:
shaderCommandValue: 1
zTestMode: 4
colorMaskCommand:
shaderCommandValue: 1
colorWriteMask: 0
extraPragmaLinesBIRP: "#pragma multi_compile_instancing\r\n#pragma multi_compile_shadowcaster\r\n#pragma
multi_compile _ DOTS_INSTANCING_ON\r"
extraPragmaLinesURP:
@@ -0,0 +1,15 @@
fileFormatVersion: 2
guid: cde35f88efc3915459308ded0813329c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/Shader Passes/ShaderPass_ShadowCaster.asset
uploadId: 865720
@@ -0,0 +1,38 @@
namespace AllIn13DShader
{
public abstract class ShaderCommand
{
public ShaderCommandValue shaderCommandValue;
public string GetShaderEntry()
{
string res = string.Empty;
string shaderEntryValue = string.Empty;
switch (shaderCommandValue)
{
case ShaderCommandValue.DEFINED_IN_CODE:
shaderEntryValue = GetShaderEntryValueDefinedInCode();
break;
case ShaderCommandValue.DEFINED_IN_PROPERTIES:
shaderEntryValue = GetShaderEntryValueDefinedInProperties();
break;
}
if (!string.IsNullOrEmpty(shaderEntryValue))
{
string format = GetShaderEntryFormat();
res = string.Format(format, shaderEntryValue);
}
return res;
}
protected abstract string GetShaderEntryFormat();
protected abstract string GetShaderEntryValueDefinedInProperties();
protected abstract string GetShaderEntryValueDefinedInCode();
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 37bf42a5bee9d604ba009aafc01f6ad3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/ShaderCommand.cs
uploadId: 865720
@@ -0,0 +1,9 @@
namespace AllIn13DShader
{
public enum ShaderCommandValue
{
DEFAULT = 0,
DEFINED_IN_CODE = 1,
DEFINED_IN_PROPERTIES = 2,
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: fe27806e63ec1bd48a18efbdb9c344ca
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/ShaderCommandValue.cs
uploadId: 865720
@@ -0,0 +1,48 @@
using UnityEngine;
namespace AllIn13DShader
{
[CreateAssetMenu(menuName = "AllIn13DShader/Shader Pass Collection")]
public class ShaderPassCollection : ScriptableObject
{
public ShaderPassConfig mainPass;
public ShaderPassConfig outlinePass;
public ShaderPassConfig shadowCasterPass;
public ShaderPassConfig depthOnlyPass;
public ShaderPassConfig depthNormalsPass;
public ShaderPassConfig metaPass;
public ShaderPassConfig forwardAdd;
public ShaderPassConfig GetShaderPassConfig(AllIn13DPassType passType)
{
ShaderPassConfig res = null;
switch (passType)
{
case AllIn13DPassType.MAIN:
res = mainPass;
break;
case AllIn13DPassType.OUTLINE:
res = outlinePass;
break;
case AllIn13DPassType.SHADOW_CASTER:
res = shadowCasterPass;
break;
case AllIn13DPassType.DEPTH_ONLY:
res = depthOnlyPass;
break;
case AllIn13DPassType.DEPTH_NORMALS:
res = depthNormalsPass;
break;
case AllIn13DPassType.META:
res = metaPass;
break;
case AllIn13DPassType.FORWARD_ADD:
res = forwardAdd;
break;
}
return res;
}
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: a88ccc1bdfb7ccb4788b6169f0e66225
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/ShaderPassCollection.cs
uploadId: 865720
@@ -0,0 +1,385 @@
using System;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
namespace AllIn13DShader
{
[CreateAssetMenu(menuName = "AllIn13DShader/Shader Pass Config")]
public class ShaderPassConfig : ScriptableObject
{
private const string STENCIL_BLOCK_OUTLINE = @"
Stencil
{
Ref [_StencilRef]
Comp [_OutlineMode]
}";
private const string STENCIL_BLOCK_MAIN_PASS = @"
Stencil
{
Ref [_StencilRef]
Comp Always
Pass Replace
}";
private const string URP_PASS_SYMBOL = "URP_PASS";
private const string BIRP_PASS_SYMBOL = "BIRP_PASS";
private const string EFFECT_LIBRARY_PATH_FORMAT = @"Shaders/ShaderLibrary/{0}.hlsl";
private const string INCLUDE_SHADER_ENTRY_FORMAT = @"#include ""{0}""";
private const string INCLUDE_WITH_PRAGMA_SHADER_ENTRY_FORMAT = @"#include_with_pragmas ""{0}""";
private const string DEFINE_SHADER_ENTRY_FORMAT = @"#define {0}";
private const string LIGHT_MODE_ENTRY_FORMAT = @"""LightMode""=""{0}""";
public AllIn13DPassType passType;
[Header("Pass Name")]
public string passNameURP;
public string passNameBIRP;
[Header("Light Mode")]
public string lightModeTagURP;
public string lightModeTagBIRP;
[Header("Pass Symbol")]
public string passSymbol;
[Header("Vertex/Fragment Program")]
public string vertexProgramName;
public string fragmentProgramName;
[Header("Command")]
public BlendCommand blendCommand;
public CullCommand cullCommand;
public ZWriteCommand zWriteCommand;
public ZTestCommand zTestCommand;
public ColorMaskCommand colorMaskCommand;
[Header("Extra Pragma - BIRP")]
[TextArea]public string extraPragmaLinesBIRP;
[Header("Extra Pragma - URP")]
[TextArea] public string extraPragmaLinesURP;
public string GetHelperLibraryPath(RenderPipelineEnum renderPipeline, string shaderFolder)
{
string res;
switch (renderPipeline)
{
case RenderPipelineEnum.BIRP:
res = Constants.BIRP_HELPER_PATH;
break;
case RenderPipelineEnum.URP:
res = Constants.URP_HELPER_PATH;
break;
default:
res = string.Empty;
break;
}
res = ConvertPathToRelative(res, shaderFolder);
return res;
}
private string GetPipelineFeatuersLibrary(RenderPipelineEnum renderPipeline, string shaderFolder)
{
string res = string.Empty;
if (renderPipeline == RenderPipelineEnum.URP)
{
res = "Shaders/ShaderLibrary/AllIn13DShader_FeaturesURP.hlsl";
}
res = ConvertPathToRelative(res, shaderFolder);
return res;
}
private string GetPipelineFeaturesDefinesPath(RenderPipelineEnum renderPipeline, string shaderFolder)
{
string res = string.Empty;
if (renderPipeline == RenderPipelineEnum.URP)
{
res = "Shaders/ShaderLibrary/AllIn13DShader_FeaturesURP_Defines.hlsl";
}
res = ConvertPathToRelative(res, shaderFolder);
return res;
}
private string GetPipelinePassSymbol(RenderPipelineEnum renderPipeline)
{
string res = string.Empty;
switch (renderPipeline)
{
case RenderPipelineEnum.BIRP:
res = BIRP_PASS_SYMBOL;
break;
case RenderPipelineEnum.URP:
res = URP_PASS_SYMBOL;
break;
}
return res;
}
public string GetStencilBlockShaderEntry(EffectsProfile effectsProfile)
{
string res = string.Empty;
if (passType == AllIn13DPassType.OUTLINE)
{
res = STENCIL_BLOCK_OUTLINE;
}
else if(passType == AllIn13DPassType.MAIN)
{
res = STENCIL_BLOCK_MAIN_PASS;
}
return res;
}
public string GetPipelineFeaturesDefinesShaderEntry(RenderPipelineEnum renderPipeline, string shaderFolder)
{
string definesFilePath = GetPipelineFeaturesDefinesPath(renderPipeline, shaderFolder);
string res = CreateIncludeShaderEntry(definesFilePath);
return res;
}
public string GetPipelineFeaturesLibraryShaderEntry(RenderPipelineEnum renderPipeline, string shaderFolder)
{
string libraryPath = GetPipelineFeatuersLibrary(renderPipeline, shaderFolder);
string res = GetIncludeWithPragmaShaderEntry(libraryPath);
return res;
}
public string GetPipelinePassSymbolShaderEntry(RenderPipelineEnum renderPipeline)
{
string pipelineSymbol = GetPipelinePassSymbol(renderPipeline);
string res = string.Format(DEFINE_SHADER_ENTRY_FORMAT, pipelineSymbol);
return res;
}
public string GetIncludeWithPragmaShaderEntry(string path)
{
string res = string.Format(INCLUDE_WITH_PRAGMA_SHADER_ENTRY_FORMAT, path);
return res;
}
public string CreateIncludeShaderEntry(string value)
{
string res = string.Format(INCLUDE_SHADER_ENTRY_FORMAT, value);
return res;
}
public string GetPassSymbolShaderEntry()
{
string res = string.Format(DEFINE_SHADER_ENTRY_FORMAT, passSymbol);
return res;
}
public string GetLightLibraryShaderEntry(string shaderFolder)
{
string res = ConvertPathToRelative("Shaders/ShaderLibrary/AllIn13DShaderLight.hlsl", shaderFolder);
res = CreateIncludeShaderEntry(res);
return res;
}
public string GetCoreLibraryShaderEntry(string shaderFolder)
{
string res = ConvertPathToRelative("Shaders/ShaderLibrary/AllIn13DShaderCore.hlsl", shaderFolder);
res = CreateIncludeShaderEntry(res);
return res;
}
public string GetCommonStructsShaderEntry(string shaderFolder)
{
string res = ConvertPathToRelative("Shaders/ShaderLibrary/AllIn13DShader_CommonStructs.hlsl", shaderFolder);
res = CreateIncludeShaderEntry(res);
return res;
}
public string GetCommonFunctionsShaderEntry(string shaderFolder)
{
string res = ConvertPathToRelative("Shaders/ShaderLibrary/AllIn13DShader_CommonFunctions.hlsl", shaderFolder);
res = CreateIncludeShaderEntry(res);
return res;
}
public string GetShaderFeaturesLibraryShaderEntry(string shaderFolder)
{
string res = ConvertPathToRelative("Shaders/ShaderLibrary/AllIn13DShader_Features.hlsl", shaderFolder);
res = GetIncludeWithPragmaShaderEntry(res);
return res;
}
public string GetLightModeShaderEntry(RenderPipelineEnum renderPipeline)
{
string res = string.Empty;
string lightTag = string.Empty;
if(renderPipeline == RenderPipelineEnum.BIRP)
{
lightTag = lightModeTagBIRP;
}
else if(renderPipeline == RenderPipelineEnum.URP)
{
lightTag = lightModeTagURP;
}
if (!string.IsNullOrEmpty(lightTag))
{
res = string.Format(LIGHT_MODE_ENTRY_FORMAT, lightTag);
}
return res;
}
public static string GetAllIn1FeaturesEntries(List<EffectsProfileEntry> enabledEntries)
{
string res = string.Empty;
for (int i = 0; i < enabledEntries.Count; i++)
{
res = AppendEntryKeywords(res, enabledEntries[i]);
}
return res;
}
public static string AppendEntryKeywords(string input, EffectsProfileEntry effectProfileEntry)
{
string res = input;
List<string> keywordsEnabled = new List<string>();
effectProfileEntry.CollectKeywords(keywordsEnabled);
for (int i = 0; i < keywordsEnabled.Count; i++)
{
res += CreateDefineEntry(keywordsEnabled[i]);
res += "\n";
}
return res;
}
private string ConvertPathToRelative(string localPath, string shaderFolder)
{
string res = Path.Combine(GlobalConfiguration.GetRootPluginFolderPath(), localPath);
res = Path.GetRelativePath(shaderFolder, res);
res = res.Replace("\\", "/");
return res;
}
public string GetPassFilePath(string shaderFolder)
{
string res = string.Empty;
switch (passType)
{
case AllIn13DPassType.MAIN:
res = Constants.MAIN_PASS_PATH;
break;
case AllIn13DPassType.DEPTH_NORMALS:
res = Constants.DEPTH_NORMALS_PASS_PATH;
break;
case AllIn13DPassType.DEPTH_ONLY:
res = Constants.DEPTH_ONLY_PASS_PATH;
break;
case AllIn13DPassType.FORWARD_ADD:
res = Constants.LIGHT_ADD_PASS_PATH;
break;
case AllIn13DPassType.META:
res = Constants.META_PASS_PATH;
break;
case AllIn13DPassType.NONE:
res = "UNDEFINED";
break;
case AllIn13DPassType.OUTLINE:
res = Constants.OUTLINE_PASS_PATH;
break;
case AllIn13DPassType.SHADOW_CASTER:
res = Constants.SHADOW_CASTER_PASS_PATH;
break;
}
res = ConvertPathToRelative(res, shaderFolder);
return res;
}
public static string CreateDefineEntry(string symbol)
{
string res = string.Format(DEFINE_SHADER_ENTRY_FORMAT, symbol);
return res;
}
public string GetPassName(RenderPipelineEnum renderPipeline)
{
string res = passNameBIRP;
if(renderPipeline == RenderPipelineEnum.URP)
{
res = passNameURP;
}
return res;
}
public string GetEffectsLibrariesShaderEntry(EffectsProfile effectsProfile, string shaderFolder)
{
string res = string.Empty;
List<EffectsProfileGroup> enabledEffectGroups = effectsProfile.GetEnabledEffectsGroups();
for(int i = 0; i < enabledEffectGroups.Count; i++)
{
string libraryFileName = enabledEffectGroups[i].effectGroupConfig.libraryFileName;
if (!string.IsNullOrEmpty(libraryFileName))
{
string path = string.Format(EFFECT_LIBRARY_PATH_FORMAT, libraryFileName);
path = ConvertPathToRelative(path, shaderFolder);
string entry = CreateIncludeShaderEntry(path);
res += entry;
res += "\n";
}
}
return res;
}
public string GetExtraPragmaLines(RenderPipelineEnum renderPipeline)
{
string res = string.Empty;
if(renderPipeline == RenderPipelineEnum.BIRP)
{
res = extraPragmaLinesBIRP;
}
else if(renderPipeline == RenderPipelineEnum.URP)
{
res = extraPragmaLinesURP;
}
return res;
}
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: f0d35b40778f5ef47a14fca4766c770a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/ShaderPassConfig.cs
uploadId: 865720
@@ -0,0 +1,61 @@
using UnityEngine.Rendering;
namespace AllIn13DShader
{
[System.Serializable]
public class ZTestCommand : ShaderCommand
{
private const string SHADER_ENTRY_FORMAT = @"ZTest {0}";
private const string STR_DEFINED_IN_PROPERTIES = @"[_ZTestMode]";
public CompareFunction zTestMode;
protected override string GetShaderEntryFormat()
{
return SHADER_ENTRY_FORMAT;
}
protected override string GetShaderEntryValueDefinedInCode()
{
string res = string.Empty;
switch (zTestMode)
{
case CompareFunction.Disabled:
res = "Disabled";
break;
case CompareFunction.Never:
res = "Never";
break;
case CompareFunction.Less:
res = "Less";
break;
case CompareFunction.Equal:
res = "Equal";
break;
case CompareFunction.LessEqual:
res = "LEqual";
break;
case CompareFunction.Greater:
res = "Greater";
break;
case CompareFunction.NotEqual:
res = "NotEqual";
break;
case CompareFunction.GreaterEqual:
res = "GEqual";
break;
case CompareFunction.Always:
res = "Always";
break;
}
return res;
}
protected override string GetShaderEntryValueDefinedInProperties()
{
return STR_DEFINED_IN_PROPERTIES;
}
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: c3315b3dcfcd94b47a7e672699f6fab8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/ZTestCommand.cs
uploadId: 865720
@@ -0,0 +1,27 @@
namespace AllIn13DShader
{
[System.Serializable]
public class ZWriteCommand : ShaderCommand
{
private const string SHADER_ENTRY_FORMAT = @"ZWrite {0}";
private const string STR_DEFINED_IN_PROPERTIES = @"[_ZWrite]";
public bool zWriteOn;
protected override string GetShaderEntryFormat()
{
return SHADER_ENTRY_FORMAT;
}
protected override string GetShaderEntryValueDefinedInCode()
{
string res = zWriteOn ? "On" : "Off";
return res;
}
protected override string GetShaderEntryValueDefinedInProperties()
{
return STR_DEFINED_IN_PROPERTIES;
}
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: f5a579664b289374ba56c3d9cbc06664
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 316173
packageName: All In 1 3D-Shader
packageVersion: 2.72
assetPath: Assets/Plugins/AllIn13DShader/Editor/ShadersConfigurator/ZWriteCommand.cs
uploadId: 865720