This commit is contained in:
Masataka SUMI
2021-06-10 15:58:53 +09:00
parent b2fe35739c
commit 95042d2ce0
36 changed files with 33 additions and 30 deletions

View File

@@ -16,15 +16,15 @@ namespace VRMShaders.VRM10.MToon10.Runtime
public void Validate()
{
var alphaMode = (AlphaMode) _material.GetInt(MToon10Prop.AlphaMode);
var zWriteMode = (TransparentWithZWriteMode) _material.GetInt(MToon10Prop.TransparentWithZWrite);
var alphaMode = (MToon10AlphaMode) _material.GetInt(MToon10Prop.AlphaMode);
var zWriteMode = (MToon10TransparentWithZWriteMode) _material.GetInt(MToon10Prop.TransparentWithZWrite);
var renderQueueOffset = _material.GetInt(MToon10Prop.RenderQueueOffsetNumber);
var doubleSidedMode = (DoubleSidedMode) _material.GetInt(MToon10Prop.DoubleSided);
var doubleSidedMode = (MToon10DoubleSidedMode) _material.GetInt(MToon10Prop.DoubleSided);
SetUnityShaderPassSettings(_material, alphaMode, zWriteMode, renderQueueOffset, doubleSidedMode);
SetUnityShaderVariants(_material);
}
private static void SetUnityShaderPassSettings(Material material, AlphaMode alphaMode, TransparentWithZWriteMode zWriteMode, int renderQueueOffset, DoubleSidedMode doubleSidedMode)
private static void SetUnityShaderPassSettings(Material material, MToon10AlphaMode alphaMode, MToon10TransparentWithZWriteMode zWriteMode, int renderQueueOffset, MToon10DoubleSidedMode doubleSidedMode)
{
material.SetInt(MToon10Prop.AlphaMode, (int) alphaMode);
material.SetInt(MToon10Prop.TransparentWithZWrite, (int) zWriteMode);
@@ -32,7 +32,7 @@ namespace VRMShaders.VRM10.MToon10.Runtime
switch (alphaMode)
{
case AlphaMode.Opaque:
case MToon10AlphaMode.Opaque:
material.SetOverrideTag(UnityRenderTag.Key, UnityRenderTag.OpaqueValue);
material.SetInt(MToon10Prop.UnitySrcBlend, (int) BlendMode.One);
material.SetInt(MToon10Prop.UnityDstBlend, (int) BlendMode.Zero);
@@ -42,7 +42,7 @@ namespace VRMShaders.VRM10.MToon10.Runtime
renderQueueOffset = 0;
material.renderQueue = (int) RenderQueue.Geometry;
break;
case AlphaMode.Cutout:
case MToon10AlphaMode.Cutout:
material.SetOverrideTag(UnityRenderTag.Key, UnityRenderTag.TransparentCutoutValue);
material.SetInt(MToon10Prop.UnitySrcBlend, (int) BlendMode.One);
material.SetInt(MToon10Prop.UnityDstBlend, (int) BlendMode.Zero);
@@ -52,7 +52,7 @@ namespace VRMShaders.VRM10.MToon10.Runtime
renderQueueOffset = 0;
material.renderQueue = (int) RenderQueue.AlphaTest;
break;
case AlphaMode.Transparent when zWriteMode == TransparentWithZWriteMode.Off:
case MToon10AlphaMode.Transparent when zWriteMode == MToon10TransparentWithZWriteMode.Off:
material.SetOverrideTag(UnityRenderTag.Key, UnityRenderTag.TransparentValue);
material.SetInt(MToon10Prop.UnitySrcBlend, (int) BlendMode.SrcAlpha);
material.SetInt(MToon10Prop.UnityDstBlend, (int) BlendMode.OneMinusSrcAlpha);
@@ -62,7 +62,7 @@ namespace VRMShaders.VRM10.MToon10.Runtime
renderQueueOffset = Mathf.Clamp(renderQueueOffset, -9, 0);
material.renderQueue = (int) RenderQueue.Transparent + renderQueueOffset;
break;
case AlphaMode.Transparent when zWriteMode == TransparentWithZWriteMode.On:
case MToon10AlphaMode.Transparent when zWriteMode == MToon10TransparentWithZWriteMode.On:
material.SetOverrideTag(UnityRenderTag.Key, UnityRenderTag.TransparentValue);
material.SetInt(MToon10Prop.UnitySrcBlend, (int) BlendMode.SrcAlpha);
material.SetInt(MToon10Prop.UnityDstBlend, (int) BlendMode.OneMinusSrcAlpha);
@@ -78,10 +78,10 @@ namespace VRMShaders.VRM10.MToon10.Runtime
switch (doubleSidedMode)
{
case DoubleSidedMode.Off:
case MToon10DoubleSidedMode.Off:
material.SetInt(MToon10Prop.UnityCullMode, (int) CullMode.Back);
break;
case DoubleSidedMode.On:
case MToon10DoubleSidedMode.On:
material.SetInt(MToon10Prop.UnityCullMode, (int) CullMode.Off);
break;
default:
@@ -92,7 +92,7 @@ namespace VRMShaders.VRM10.MToon10.Runtime
material.SetInt(MToon10Prop.RenderQueueOffsetNumber, renderQueueOffset);
}
private static void SetUnityCullingSettings(Material material, DoubleSidedMode doubleSidedMode)
private static void SetUnityCullingSettings(Material material, MToon10DoubleSidedMode doubleSidedMode)
{
}
@@ -101,42 +101,42 @@ namespace VRMShaders.VRM10.MToon10.Runtime
{
material.SetKeyword(
UnityAlphaModeKeyword.AlphaTest,
(AlphaMode) material.GetInt(MToon10Prop.AlphaMode) == AlphaMode.Cutout
(MToon10AlphaMode) material.GetInt(MToon10Prop.AlphaMode) == MToon10AlphaMode.Cutout
);
material.SetKeyword(
UnityAlphaModeKeyword.AlphaBlend,
(AlphaMode) material.GetInt(MToon10Prop.AlphaMode) == AlphaMode.Transparent
(MToon10AlphaMode) material.GetInt(MToon10Prop.AlphaMode) == MToon10AlphaMode.Transparent
);
material.SetKeyword(
UnityAlphaModeKeyword.AlphaPremultiply,
false
);
material.SetKeyword(
NormalMapKeyword.On,
MToon10NormalMapKeyword.On,
material.GetTexture(MToon10Prop.NormalTexture) != null
);
material.SetKeyword(
EmissiveMapKeyword.On,
MToon10EmissiveMapKeyword.On,
material.GetTexture(MToon10Prop.EmissiveTexture) != null
);
material.SetKeyword(
RimMapKeyword.On,
MToon10RimMapKeyword.On,
material.GetTexture(MToon10Prop.MatcapTexture) != null || // Matcap
material.GetTexture(MToon10Prop.RimMultiplyTexture) != null // Rim
);
material.SetKeyword(
ParameterMapKeyword.On,
MToon10ParameterMapKeyword.On,
material.GetTexture(MToon10Prop.ShadingShiftTexture) != null || // Shading Shift (R)
material.GetTexture(MToon10Prop.OutlineWidthMultiplyTexture) != null || // Outline Width (G)
material.GetTexture(MToon10Prop.UvAnimationMaskTexture) != null // UV Anim Mask (B)
);
material.SetKeyword(
OutlineModeKeyword.World,
(OutlineMode) material.GetInt(MToon10Prop.OutlineWidthMode) == OutlineMode.World
MToon10OutlineModeKeyword.World,
(MToon10OutlineMode) material.GetInt(MToon10Prop.OutlineWidthMode) == MToon10OutlineMode.World
);
material.SetKeyword(
OutlineModeKeyword.Screen,
(OutlineMode) material.GetInt(MToon10Prop.OutlineWidthMode) == OutlineMode.Screen
MToon10OutlineModeKeyword.Screen,
(MToon10OutlineMode) material.GetInt(MToon10Prop.OutlineWidthMode) == MToon10OutlineMode.Screen
);
}
}

View File

@@ -1,6 +1,6 @@
namespace VRMShaders.VRM10.MToon10.Runtime
{
public enum AlphaMode
public enum MToon10AlphaMode
{
Opaque = 0,
Cutout = 1,

View File

@@ -1,6 +1,6 @@
namespace VRMShaders.VRM10.MToon10.Runtime
{
public enum DoubleSidedMode
public enum MToon10DoubleSidedMode
{
Off = 0,
On = 1,

View File

@@ -1,6 +1,6 @@
namespace VRMShaders.VRM10.MToon10.Runtime
{
public static class EmissiveMapKeyword
public static class MToon10EmissiveMapKeyword
{
public const string On = "_MTOON_EMISSIVEMAP";
}

View File

@@ -1,6 +1,6 @@
namespace VRMShaders.VRM10.MToon10.Runtime
{
public static class NormalMapKeyword
public static class MToon10NormalMapKeyword
{
public const string On = "_NORMALMAP";
}

View File

@@ -1,6 +1,6 @@
namespace VRMShaders.VRM10.MToon10.Runtime
{
public enum OutlineMode
public enum MToon10OutlineMode
{
None = 0,
World = 1,

View File

@@ -1,6 +1,6 @@
namespace VRMShaders.VRM10.MToon10.Runtime
{
public static class OutlineModeKeyword
public static class MToon10OutlineModeKeyword
{
public const string World = "_MTOON_OUTLINE_WORLD";
public const string Screen = "_MTOON_OUTLINE_SCREEN";

View File

@@ -1,6 +1,6 @@
namespace VRMShaders.VRM10.MToon10.Runtime
{
public static class ParameterMapKeyword
public static class MToon10ParameterMapKeyword
{
public const string On = "_MTOON_PARAMETERMAP";
}

View File

@@ -1,6 +1,6 @@
namespace VRMShaders.VRM10.MToon10.Runtime
{
public static class RimMapKeyword
public static class MToon10RimMapKeyword
{
public const string On = "_MTOON_RIMMAP";
}

View File

@@ -1,6 +1,6 @@
namespace VRMShaders.VRM10.MToon10.Runtime
{
public enum TransparentWithZWriteMode
public enum MToon10TransparentWithZWriteMode
{
Off = 0,
On = 1,

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d1d968d263d340c48c2bebaca85bbbbe
timeCreated: 1623308194