mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-09-08 20:08:53 -05:00
mv
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3f051e7d892a4bccbcc8fd1f4c2ca162
|
||||
timeCreated: 1622456532
|
||||
@@ -21,65 +21,65 @@ namespace VRMShaders.VRM10.MToon10.Editor
|
||||
|
||||
using (new LabelScope("Rendering"))
|
||||
{
|
||||
PopupEnum<AlphaMode>("Alpha Mode", props[Prop.AlphaMode], materialEditor);
|
||||
var alphaMode = (AlphaMode) (int) props[Prop.AlphaMode].floatValue;
|
||||
PopupEnum<AlphaMode>("Alpha Mode", props[MToon10Prop.AlphaMode], materialEditor);
|
||||
var alphaMode = (AlphaMode) (int) props[MToon10Prop.AlphaMode].floatValue;
|
||||
|
||||
if (alphaMode == AlphaMode.Transparent)
|
||||
{
|
||||
PopupEnum<TransparentWithZWriteMode>(
|
||||
"Transparent With ZWrite Mode",
|
||||
props[Prop.TransparentWithZWrite],
|
||||
props[MToon10Prop.TransparentWithZWrite],
|
||||
materialEditor
|
||||
);
|
||||
}
|
||||
|
||||
if (alphaMode == AlphaMode.Cutout)
|
||||
{
|
||||
materialEditor.ShaderProperty(props[Prop.AlphaCutoff], "Cutoff");
|
||||
materialEditor.ShaderProperty(props[MToon10Prop.AlphaCutoff], "Cutoff");
|
||||
}
|
||||
|
||||
PopupEnum<DoubleSidedMode>("Double Sided", props[Prop.DoubleSided], materialEditor);
|
||||
PopupEnum<DoubleSidedMode>("Double Sided", props[MToon10Prop.DoubleSided], materialEditor);
|
||||
|
||||
materialEditor.ShaderProperty(props[Prop.RenderQueueOffsetNumber], "RenderQueue Offset");
|
||||
materialEditor.ShaderProperty(props[MToon10Prop.RenderQueueOffsetNumber], "RenderQueue Offset");
|
||||
}
|
||||
|
||||
using (new LabelScope("Lighting"))
|
||||
{
|
||||
materialEditor.TexturePropertySingleLine(
|
||||
new GUIContent("Lit Color, Alpha", "Lit (RGB), Alpha (A)"),
|
||||
props[Prop.BaseColorTexture],
|
||||
props[Prop.BaseColorFactor]
|
||||
props[MToon10Prop.BaseColorTexture],
|
||||
props[MToon10Prop.BaseColorFactor]
|
||||
);
|
||||
materialEditor.TexturePropertySingleLine(
|
||||
new GUIContent("Shade Color", "Shade (RGB)"),
|
||||
props[Prop.ShadeColorTexture],
|
||||
props[Prop.ShadeColorFactor]
|
||||
props[MToon10Prop.ShadeColorTexture],
|
||||
props[MToon10Prop.ShadeColorFactor]
|
||||
);
|
||||
materialEditor.TexturePropertySingleLine(
|
||||
new GUIContent("Normal Map", "Normal Map (RGB)"),
|
||||
props[Prop.NormalTexture],
|
||||
props[Prop.NormalTextureScale]
|
||||
props[MToon10Prop.NormalTexture],
|
||||
props[MToon10Prop.NormalTextureScale]
|
||||
);
|
||||
materialEditor.ShaderProperty(props[Prop.ShadingShiftFactor], "Shading Shift");
|
||||
materialEditor.ShaderProperty(props[Prop.ShadingToonyFactor], "Shading Toony");
|
||||
materialEditor.ShaderProperty(props[MToon10Prop.ShadingShiftFactor], "Shading Shift");
|
||||
materialEditor.ShaderProperty(props[MToon10Prop.ShadingToonyFactor], "Shading Toony");
|
||||
materialEditor.TexturePropertySingleLine(
|
||||
new GUIContent("Additive Shading Shift", "Shading Shift (R)"),
|
||||
props[Prop.ShadingShiftTexture],
|
||||
props[Prop.ShadingShiftTextureScale]
|
||||
props[MToon10Prop.ShadingShiftTexture],
|
||||
props[MToon10Prop.ShadingShiftTextureScale]
|
||||
);
|
||||
}
|
||||
|
||||
using (new LabelScope("Global Illumination"))
|
||||
{
|
||||
materialEditor.ShaderProperty(props[Prop.GiEqualizationFactor], "GI Equalization");
|
||||
materialEditor.ShaderProperty(props[MToon10Prop.GiEqualizationFactor], "GI Equalization");
|
||||
}
|
||||
|
||||
using (new LabelScope("Emission"))
|
||||
{
|
||||
materialEditor.TexturePropertySingleLine(
|
||||
new GUIContent("Emission", "Emission (RGB)"),
|
||||
props[Prop.EmissiveTexture],
|
||||
props[Prop.EmissiveFactor]
|
||||
props[MToon10Prop.EmissiveTexture],
|
||||
props[MToon10Prop.EmissiveFactor]
|
||||
);
|
||||
}
|
||||
|
||||
@@ -87,48 +87,48 @@ namespace VRMShaders.VRM10.MToon10.Editor
|
||||
{
|
||||
materialEditor.TexturePropertySingleLine(
|
||||
new GUIContent("Rim Color", "Rim Color (RGB)"),
|
||||
props[Prop.RimMultiplyTexture]
|
||||
props[MToon10Prop.RimMultiplyTexture]
|
||||
);
|
||||
materialEditor.ShaderProperty(
|
||||
props[Prop.RimLightingMixFactor],
|
||||
props[MToon10Prop.RimLightingMixFactor],
|
||||
new GUIContent("Rim LightingMix")
|
||||
);
|
||||
EditorGUILayout.Space();
|
||||
|
||||
materialEditor.TexturePropertySingleLine(
|
||||
new GUIContent("Matcap Rim", "Matcap Rim (RGB)"),
|
||||
props[Prop.MatcapTexture]
|
||||
props[MToon10Prop.MatcapTexture]
|
||||
);
|
||||
EditorGUILayout.Space();
|
||||
|
||||
materialEditor.ShaderProperty(
|
||||
props[Prop.ParametricRimColorFactor],
|
||||
props[MToon10Prop.ParametricRimColorFactor],
|
||||
new GUIContent("Parametric Rim Color")
|
||||
);
|
||||
materialEditor.ShaderProperty(
|
||||
props[Prop.ParametricRimFresnelPowerFactor],
|
||||
props[MToon10Prop.ParametricRimFresnelPowerFactor],
|
||||
new GUIContent("Parametric Rim Fresnel Power")
|
||||
);
|
||||
materialEditor.ShaderProperty(
|
||||
props[Prop.ParametricRimLiftFactor],
|
||||
props[MToon10Prop.ParametricRimLiftFactor],
|
||||
new GUIContent("Parametric Rim Lift")
|
||||
);
|
||||
}
|
||||
|
||||
using (new LabelScope("Outline"))
|
||||
{
|
||||
PopupEnum<OutlineMode>("Outline Mode", props[Prop.OutlineWidthMode], materialEditor);
|
||||
PopupEnum<OutlineMode>("Outline Mode", props[MToon10Prop.OutlineWidthMode], materialEditor);
|
||||
materialEditor.TexturePropertySingleLine(
|
||||
new GUIContent("Outline Width", "Outline Width (G) [meter]"),
|
||||
props[Prop.OutlineWidthMultiplyTexture],
|
||||
props[Prop.OutlineWidthFactor]
|
||||
props[MToon10Prop.OutlineWidthMultiplyTexture],
|
||||
props[MToon10Prop.OutlineWidthFactor]
|
||||
);
|
||||
materialEditor.ShaderProperty(
|
||||
props[Prop.OutlineColorFactor],
|
||||
props[MToon10Prop.OutlineColorFactor],
|
||||
new GUIContent("Outline Color")
|
||||
);
|
||||
materialEditor.ShaderProperty(
|
||||
props[Prop.OutlineLightingMixFactor],
|
||||
props[MToon10Prop.OutlineLightingMixFactor],
|
||||
new GUIContent("Outline LightingMix")
|
||||
);
|
||||
}
|
||||
@@ -137,18 +137,18 @@ namespace VRMShaders.VRM10.MToon10.Editor
|
||||
{
|
||||
materialEditor.TexturePropertySingleLine(
|
||||
new GUIContent("Mask", "Mask (B)"),
|
||||
props[Prop.UvAnimationMaskTexture]
|
||||
props[MToon10Prop.UvAnimationMaskTexture]
|
||||
);
|
||||
materialEditor.ShaderProperty(
|
||||
props[Prop.UvAnimationScrollXSpeedFactor],
|
||||
props[MToon10Prop.UvAnimationScrollXSpeedFactor],
|
||||
new GUIContent("Translate X")
|
||||
);
|
||||
materialEditor.ShaderProperty(
|
||||
props[Prop.UvAnimationScrollYSpeedFactor],
|
||||
props[MToon10Prop.UvAnimationScrollYSpeedFactor],
|
||||
new GUIContent("Translate Y")
|
||||
);
|
||||
materialEditor.ShaderProperty(
|
||||
props[Prop.UvAnimationRotationSpeedFactor],
|
||||
props[MToon10Prop.UvAnimationRotationSpeedFactor],
|
||||
new GUIContent("Rotation")
|
||||
);
|
||||
}
|
||||
@@ -165,11 +165,11 @@ namespace VRMShaders.VRM10.MToon10.Editor
|
||||
var mat = materials[0];
|
||||
|
||||
EditorGUILayout.LabelField("RenderQueue", mat.renderQueue.ToString());
|
||||
EditorGUILayout.LabelField("Cull", ((CullMode) props[Prop.UnityCullMode].floatValue).ToString());
|
||||
EditorGUILayout.LabelField("SrcBlend", ((BlendMode) props[Prop.UnitySrcBlend].floatValue).ToString());
|
||||
EditorGUILayout.LabelField("DstBlend", ((BlendMode) props[Prop.UnityDstBlend].floatValue).ToString());
|
||||
EditorGUILayout.LabelField("ZWrite", ((UnityZWriteMode) props[Prop.UnityZWrite].floatValue).ToString());
|
||||
EditorGUILayout.LabelField("AlphaToMask", ((UnityAlphaToMaskMode) props[Prop.UnityAlphaToMask].floatValue).ToString());
|
||||
EditorGUILayout.LabelField("Cull", ((CullMode) props[MToon10Prop.UnityCullMode].floatValue).ToString());
|
||||
EditorGUILayout.LabelField("SrcBlend", ((BlendMode) props[MToon10Prop.UnitySrcBlend].floatValue).ToString());
|
||||
EditorGUILayout.LabelField("DstBlend", ((BlendMode) props[MToon10Prop.UnityDstBlend].floatValue).ToString());
|
||||
EditorGUILayout.LabelField("ZWrite", ((UnityZWriteMode) props[MToon10Prop.UnityZWrite].floatValue).ToString());
|
||||
EditorGUILayout.LabelField("AlphaToMask", ((UnityAlphaToMaskMode) props[MToon10Prop.UnityAlphaToMask].floatValue).ToString());
|
||||
EditorGUILayout.LabelField("Enabled Keywords", string.Join("\n", mat.shaderKeywords), EditorStyles.textArea);
|
||||
}
|
||||
}
|
||||
|
||||
3
Assets/VRMShaders/VRM10/MToon10/Runtime/Extensions.meta
Normal file
3
Assets/VRMShaders/VRM10/MToon10/Runtime/Extensions.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 757975a3fecf43b1ad7b288185f6c7fd
|
||||
timeCreated: 1623307417
|
||||
@@ -1,7 +1,7 @@
|
||||
using UnityEngine;
|
||||
using VRMShaders.VRM10.MToon10.Runtime;
|
||||
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public static class MaterialExtensions
|
||||
{
|
||||
@@ -17,17 +17,17 @@ namespace VRMShaders.VRM10.MToon10.Editor
|
||||
}
|
||||
}
|
||||
|
||||
public static int GetInt(this Material mat, Prop prop)
|
||||
public static int GetInt(this Material mat, MToon10Prop prop)
|
||||
{
|
||||
return mat.GetInt(prop.ToUnityShaderLabName());
|
||||
}
|
||||
|
||||
public static void SetInt(this Material mat, Prop prop, int val)
|
||||
public static void SetInt(this Material mat, MToon10Prop prop, int val)
|
||||
{
|
||||
mat.SetInt(prop.ToUnityShaderLabName(), val);
|
||||
}
|
||||
|
||||
public static Texture GetTexture(this Material mat, Prop prop)
|
||||
public static Texture GetTexture(this Material mat, MToon10Prop prop)
|
||||
{
|
||||
return mat.GetTexture(prop.ToUnityShaderLabName());
|
||||
}
|
||||
7
Assets/VRMShaders/VRM10/MToon10/Runtime/MToon10Meta.cs
Normal file
7
Assets/VRMShaders/VRM10/MToon10/Runtime/MToon10Meta.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public static class MToon10Meta
|
||||
{
|
||||
public static readonly string UnityShaderName = "Hidden/VRM10/vrmc_materials_mtoon";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4cb4057134654c769422a3618b76bccc
|
||||
timeCreated: 1623307086
|
||||
@@ -5,7 +5,7 @@ namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
/// <summary>
|
||||
/// Migrate from VRM 0.x MToon to VRM 1.0 vrmc_materials_mtoon
|
||||
/// </summary>
|
||||
public sealed class MToonMigrator
|
||||
public static class MToon10Migrator
|
||||
{
|
||||
/// <summary>
|
||||
/// mtoon.shadingToonyFactor
|
||||
@@ -1,63 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public static class MToon10Properties
|
||||
{
|
||||
private static readonly Dictionary<Prop, string> _unityShaderLabNames = new Dictionary<Prop, string>
|
||||
{
|
||||
[Prop.AlphaMode] = "_AlphaMode",
|
||||
[Prop.TransparentWithZWrite] = "_TransparentWithZWrite",
|
||||
[Prop.AlphaCutoff] = "_Cutoff",
|
||||
[Prop.RenderQueueOffsetNumber] = "_RenderQueueOffset",
|
||||
[Prop.DoubleSided] = "_DoubleSided",
|
||||
|
||||
[Prop.BaseColorFactor] = "_Color",
|
||||
[Prop.BaseColorTexture] = "_MainTex",
|
||||
[Prop.ShadeColorFactor] = "_ShadeColor",
|
||||
[Prop.ShadeColorTexture] = "_ShadeTex",
|
||||
[Prop.NormalTexture] = "_BumpMap",
|
||||
[Prop.NormalTextureScale] = "_BumpScale",
|
||||
[Prop.ShadingShiftFactor] = "_ShadingShiftFactor",
|
||||
[Prop.ShadingShiftTexture] = "_ShadingShiftTex",
|
||||
[Prop.ShadingShiftTextureScale] = "_ShadingShiftTexScale",
|
||||
[Prop.ShadingToonyFactor] = "_ShadingToonyFactor",
|
||||
|
||||
[Prop.GiEqualizationFactor] = "_GiEqualization",
|
||||
|
||||
[Prop.EmissiveFactor] = "_EmissionColor",
|
||||
[Prop.EmissiveTexture] = "_EmissionMap",
|
||||
|
||||
[Prop.MatcapTexture] = "_MatcapTex",
|
||||
[Prop.ParametricRimColorFactor] = "_RimColor",
|
||||
[Prop.ParametricRimFresnelPowerFactor] = "_RimFresnelPower",
|
||||
[Prop.ParametricRimLiftFactor] = "_RimLift",
|
||||
[Prop.RimMultiplyTexture] = "_RimTex",
|
||||
[Prop.RimLightingMixFactor] = "_RimLightingMix",
|
||||
|
||||
[Prop.OutlineWidthMode] = "_OutlineWidthMode",
|
||||
[Prop.OutlineWidthFactor] = "_OutlineWidth",
|
||||
[Prop.OutlineWidthMultiplyTexture] = "_OutlineWidthTex",
|
||||
[Prop.OutlineColorFactor] = "_OutlineColor",
|
||||
[Prop.OutlineLightingMixFactor] = "_OutlineLightingMix",
|
||||
|
||||
[Prop.UvAnimationMaskTexture] = "_UvAnimMaskTex",
|
||||
[Prop.UvAnimationScrollXSpeedFactor] = "_UvAnimScrollXSpeed",
|
||||
[Prop.UvAnimationScrollYSpeedFactor] = "_UvAnimScrollYSpeed",
|
||||
[Prop.UvAnimationRotationSpeedFactor] = "_UvAnimRotationSpeed",
|
||||
|
||||
[Prop.UnityCullMode] = "_M_CullMode",
|
||||
[Prop.UnitySrcBlend] = "_M_SrcBlend",
|
||||
[Prop.UnityDstBlend] = "_M_DstBlend",
|
||||
[Prop.UnityZWrite] = "_M_ZWrite",
|
||||
[Prop.UnityAlphaToMask] = "_M_AlphaToMask",
|
||||
};
|
||||
|
||||
public static IReadOnlyDictionary<Prop, string> UnityShaderLabNames => _unityShaderLabNames;
|
||||
|
||||
public static string ToUnityShaderLabName(this Prop prop)
|
||||
{
|
||||
return UnityShaderLabNames[prop];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@ using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using VRMShaders.VRM10.MToon10.Runtime;
|
||||
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public sealed class MToonValidator
|
||||
{
|
||||
@@ -16,58 +16,58 @@ namespace VRMShaders.VRM10.MToon10.Editor
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
var alphaMode = (AlphaMode) _material.GetInt(Prop.AlphaMode);
|
||||
var zWriteMode = (TransparentWithZWriteMode) _material.GetInt(Prop.TransparentWithZWrite);
|
||||
var renderQueueOffset = _material.GetInt(Prop.RenderQueueOffsetNumber);
|
||||
var doubleSidedMode = (DoubleSidedMode) _material.GetInt(Prop.DoubleSided);
|
||||
var alphaMode = (AlphaMode) _material.GetInt(MToon10Prop.AlphaMode);
|
||||
var zWriteMode = (TransparentWithZWriteMode) _material.GetInt(MToon10Prop.TransparentWithZWrite);
|
||||
var renderQueueOffset = _material.GetInt(MToon10Prop.RenderQueueOffsetNumber);
|
||||
var doubleSidedMode = (DoubleSidedMode) _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)
|
||||
{
|
||||
material.SetInt(Prop.AlphaMode, (int) alphaMode);
|
||||
material.SetInt(Prop.TransparentWithZWrite, (int) zWriteMode);
|
||||
material.SetInt(Prop.DoubleSided, (int) doubleSidedMode);
|
||||
material.SetInt(MToon10Prop.AlphaMode, (int) alphaMode);
|
||||
material.SetInt(MToon10Prop.TransparentWithZWrite, (int) zWriteMode);
|
||||
material.SetInt(MToon10Prop.DoubleSided, (int) doubleSidedMode);
|
||||
|
||||
switch (alphaMode)
|
||||
{
|
||||
case AlphaMode.Opaque:
|
||||
material.SetOverrideTag(UnityRenderTag.Key, UnityRenderTag.OpaqueValue);
|
||||
material.SetInt(Prop.UnitySrcBlend, (int) BlendMode.One);
|
||||
material.SetInt(Prop.UnityDstBlend, (int) BlendMode.Zero);
|
||||
material.SetInt(Prop.UnityZWrite, (int) UnityZWriteMode.On);
|
||||
material.SetInt(Prop.UnityAlphaToMask, (int) UnityAlphaToMaskMode.Off);
|
||||
material.SetInt(MToon10Prop.UnitySrcBlend, (int) BlendMode.One);
|
||||
material.SetInt(MToon10Prop.UnityDstBlend, (int) BlendMode.Zero);
|
||||
material.SetInt(MToon10Prop.UnityZWrite, (int) UnityZWriteMode.On);
|
||||
material.SetInt(MToon10Prop.UnityAlphaToMask, (int) UnityAlphaToMaskMode.Off);
|
||||
|
||||
renderQueueOffset = 0;
|
||||
material.renderQueue = (int) RenderQueue.Geometry;
|
||||
break;
|
||||
case AlphaMode.Cutout:
|
||||
material.SetOverrideTag(UnityRenderTag.Key, UnityRenderTag.TransparentCutoutValue);
|
||||
material.SetInt(Prop.UnitySrcBlend, (int) BlendMode.One);
|
||||
material.SetInt(Prop.UnityDstBlend, (int) BlendMode.Zero);
|
||||
material.SetInt(Prop.UnityZWrite, (int) UnityZWriteMode.On);
|
||||
material.SetInt(Prop.UnityAlphaToMask, (int) UnityAlphaToMaskMode.On);
|
||||
material.SetInt(MToon10Prop.UnitySrcBlend, (int) BlendMode.One);
|
||||
material.SetInt(MToon10Prop.UnityDstBlend, (int) BlendMode.Zero);
|
||||
material.SetInt(MToon10Prop.UnityZWrite, (int) UnityZWriteMode.On);
|
||||
material.SetInt(MToon10Prop.UnityAlphaToMask, (int) UnityAlphaToMaskMode.On);
|
||||
|
||||
renderQueueOffset = 0;
|
||||
material.renderQueue = (int) RenderQueue.AlphaTest;
|
||||
break;
|
||||
case AlphaMode.Transparent when zWriteMode == TransparentWithZWriteMode.Off:
|
||||
material.SetOverrideTag(UnityRenderTag.Key, UnityRenderTag.TransparentValue);
|
||||
material.SetInt(Prop.UnitySrcBlend, (int) BlendMode.SrcAlpha);
|
||||
material.SetInt(Prop.UnityDstBlend, (int) BlendMode.OneMinusSrcAlpha);
|
||||
material.SetInt(Prop.UnityZWrite, (int) UnityZWriteMode.Off);
|
||||
material.SetInt(Prop.UnityAlphaToMask, (int) UnityAlphaToMaskMode.Off);
|
||||
material.SetInt(MToon10Prop.UnitySrcBlend, (int) BlendMode.SrcAlpha);
|
||||
material.SetInt(MToon10Prop.UnityDstBlend, (int) BlendMode.OneMinusSrcAlpha);
|
||||
material.SetInt(MToon10Prop.UnityZWrite, (int) UnityZWriteMode.Off);
|
||||
material.SetInt(MToon10Prop.UnityAlphaToMask, (int) UnityAlphaToMaskMode.Off);
|
||||
|
||||
renderQueueOffset = Mathf.Clamp(renderQueueOffset, -9, 0);
|
||||
material.renderQueue = (int) RenderQueue.Transparent + renderQueueOffset;
|
||||
break;
|
||||
case AlphaMode.Transparent when zWriteMode == TransparentWithZWriteMode.On:
|
||||
material.SetOverrideTag(UnityRenderTag.Key, UnityRenderTag.TransparentValue);
|
||||
material.SetInt(Prop.UnitySrcBlend, (int) BlendMode.SrcAlpha);
|
||||
material.SetInt(Prop.UnityDstBlend, (int) BlendMode.OneMinusSrcAlpha);
|
||||
material.SetInt(Prop.UnityZWrite, (int) UnityZWriteMode.On);
|
||||
material.SetInt(Prop.UnityAlphaToMask, (int) UnityAlphaToMaskMode.Off);
|
||||
material.SetInt(MToon10Prop.UnitySrcBlend, (int) BlendMode.SrcAlpha);
|
||||
material.SetInt(MToon10Prop.UnityDstBlend, (int) BlendMode.OneMinusSrcAlpha);
|
||||
material.SetInt(MToon10Prop.UnityZWrite, (int) UnityZWriteMode.On);
|
||||
material.SetInt(MToon10Prop.UnityAlphaToMask, (int) UnityAlphaToMaskMode.Off);
|
||||
|
||||
renderQueueOffset = Mathf.Clamp(renderQueueOffset, 0, +9);
|
||||
material.renderQueue = (int) RenderQueue.GeometryLast + 1 + renderQueueOffset; // Transparent First + N
|
||||
@@ -79,17 +79,17 @@ namespace VRMShaders.VRM10.MToon10.Editor
|
||||
switch (doubleSidedMode)
|
||||
{
|
||||
case DoubleSidedMode.Off:
|
||||
material.SetInt(Prop.UnityCullMode, (int) CullMode.Back);
|
||||
material.SetInt(MToon10Prop.UnityCullMode, (int) CullMode.Back);
|
||||
break;
|
||||
case DoubleSidedMode.On:
|
||||
material.SetInt(Prop.UnityCullMode, (int) CullMode.Off);
|
||||
material.SetInt(MToon10Prop.UnityCullMode, (int) CullMode.Off);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(doubleSidedMode), doubleSidedMode, null);
|
||||
}
|
||||
|
||||
// Set after validation
|
||||
material.SetInt(Prop.RenderQueueOffsetNumber, renderQueueOffset);
|
||||
material.SetInt(MToon10Prop.RenderQueueOffsetNumber, renderQueueOffset);
|
||||
}
|
||||
|
||||
private static void SetUnityCullingSettings(Material material, DoubleSidedMode doubleSidedMode)
|
||||
@@ -101,11 +101,11 @@ namespace VRMShaders.VRM10.MToon10.Editor
|
||||
{
|
||||
material.SetKeyword(
|
||||
UnityAlphaModeKeyword.AlphaTest,
|
||||
(AlphaMode) material.GetInt(Prop.AlphaMode) == AlphaMode.Cutout
|
||||
(AlphaMode) material.GetInt(MToon10Prop.AlphaMode) == AlphaMode.Cutout
|
||||
);
|
||||
material.SetKeyword(
|
||||
UnityAlphaModeKeyword.AlphaBlend,
|
||||
(AlphaMode) material.GetInt(Prop.AlphaMode) == AlphaMode.Transparent
|
||||
(AlphaMode) material.GetInt(MToon10Prop.AlphaMode) == AlphaMode.Transparent
|
||||
);
|
||||
material.SetKeyword(
|
||||
UnityAlphaModeKeyword.AlphaPremultiply,
|
||||
@@ -113,30 +113,30 @@ namespace VRMShaders.VRM10.MToon10.Editor
|
||||
);
|
||||
material.SetKeyword(
|
||||
NormalMapKeyword.On,
|
||||
material.GetTexture(Prop.NormalTexture) != null
|
||||
material.GetTexture(MToon10Prop.NormalTexture) != null
|
||||
);
|
||||
material.SetKeyword(
|
||||
EmissiveMapKeyword.On,
|
||||
material.GetTexture(Prop.EmissiveTexture) != null
|
||||
material.GetTexture(MToon10Prop.EmissiveTexture) != null
|
||||
);
|
||||
material.SetKeyword(
|
||||
RimMapKeyword.On,
|
||||
material.GetTexture(Prop.MatcapTexture) != null || // Matcap
|
||||
material.GetTexture(Prop.RimMultiplyTexture) != null // Rim
|
||||
material.GetTexture(MToon10Prop.MatcapTexture) != null || // Matcap
|
||||
material.GetTexture(MToon10Prop.RimMultiplyTexture) != null // Rim
|
||||
);
|
||||
material.SetKeyword(
|
||||
ParameterMapKeyword.On,
|
||||
material.GetTexture(Prop.ShadingShiftTexture) != null || // Shading Shift (R)
|
||||
material.GetTexture(Prop.OutlineWidthMultiplyTexture) != null || // Outline Width (G)
|
||||
material.GetTexture(Prop.UvAnimationMaskTexture) != null // UV Anim Mask (B)
|
||||
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(Prop.OutlineWidthMode) == OutlineMode.World
|
||||
(OutlineMode) material.GetInt(MToon10Prop.OutlineWidthMode) == OutlineMode.World
|
||||
);
|
||||
material.SetKeyword(
|
||||
OutlineModeKeyword.Screen,
|
||||
(OutlineMode) material.GetInt(Prop.OutlineWidthMode) == OutlineMode.Screen
|
||||
(OutlineMode) material.GetInt(MToon10Prop.OutlineWidthMode) == OutlineMode.Screen
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f9b3c71ed31c4ffba700ebf1f8705524
|
||||
timeCreated: 1623307328
|
||||
@@ -1,6 +1,6 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public enum Prop
|
||||
public enum MToon10Prop
|
||||
{
|
||||
// Rendering
|
||||
AlphaMode,
|
||||
@@ -0,0 +1,63 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public static class MToon10Properties
|
||||
{
|
||||
private static readonly Dictionary<MToon10Prop, string> _unityShaderLabNames = new Dictionary<MToon10Prop, string>
|
||||
{
|
||||
[MToon10Prop.AlphaMode] = "_AlphaMode",
|
||||
[MToon10Prop.TransparentWithZWrite] = "_TransparentWithZWrite",
|
||||
[MToon10Prop.AlphaCutoff] = "_Cutoff",
|
||||
[MToon10Prop.RenderQueueOffsetNumber] = "_RenderQueueOffset",
|
||||
[MToon10Prop.DoubleSided] = "_DoubleSided",
|
||||
|
||||
[MToon10Prop.BaseColorFactor] = "_Color",
|
||||
[MToon10Prop.BaseColorTexture] = "_MainTex",
|
||||
[MToon10Prop.ShadeColorFactor] = "_ShadeColor",
|
||||
[MToon10Prop.ShadeColorTexture] = "_ShadeTex",
|
||||
[MToon10Prop.NormalTexture] = "_BumpMap",
|
||||
[MToon10Prop.NormalTextureScale] = "_BumpScale",
|
||||
[MToon10Prop.ShadingShiftFactor] = "_ShadingShiftFactor",
|
||||
[MToon10Prop.ShadingShiftTexture] = "_ShadingShiftTex",
|
||||
[MToon10Prop.ShadingShiftTextureScale] = "_ShadingShiftTexScale",
|
||||
[MToon10Prop.ShadingToonyFactor] = "_ShadingToonyFactor",
|
||||
|
||||
[MToon10Prop.GiEqualizationFactor] = "_GiEqualization",
|
||||
|
||||
[MToon10Prop.EmissiveFactor] = "_EmissionColor",
|
||||
[MToon10Prop.EmissiveTexture] = "_EmissionMap",
|
||||
|
||||
[MToon10Prop.MatcapTexture] = "_MatcapTex",
|
||||
[MToon10Prop.ParametricRimColorFactor] = "_RimColor",
|
||||
[MToon10Prop.ParametricRimFresnelPowerFactor] = "_RimFresnelPower",
|
||||
[MToon10Prop.ParametricRimLiftFactor] = "_RimLift",
|
||||
[MToon10Prop.RimMultiplyTexture] = "_RimTex",
|
||||
[MToon10Prop.RimLightingMixFactor] = "_RimLightingMix",
|
||||
|
||||
[MToon10Prop.OutlineWidthMode] = "_OutlineWidthMode",
|
||||
[MToon10Prop.OutlineWidthFactor] = "_OutlineWidth",
|
||||
[MToon10Prop.OutlineWidthMultiplyTexture] = "_OutlineWidthTex",
|
||||
[MToon10Prop.OutlineColorFactor] = "_OutlineColor",
|
||||
[MToon10Prop.OutlineLightingMixFactor] = "_OutlineLightingMix",
|
||||
|
||||
[MToon10Prop.UvAnimationMaskTexture] = "_UvAnimMaskTex",
|
||||
[MToon10Prop.UvAnimationScrollXSpeedFactor] = "_UvAnimScrollXSpeed",
|
||||
[MToon10Prop.UvAnimationScrollYSpeedFactor] = "_UvAnimScrollYSpeed",
|
||||
[MToon10Prop.UvAnimationRotationSpeedFactor] = "_UvAnimRotationSpeed",
|
||||
|
||||
[MToon10Prop.UnityCullMode] = "_M_CullMode",
|
||||
[MToon10Prop.UnitySrcBlend] = "_M_SrcBlend",
|
||||
[MToon10Prop.UnityDstBlend] = "_M_DstBlend",
|
||||
[MToon10Prop.UnityZWrite] = "_M_ZWrite",
|
||||
[MToon10Prop.UnityAlphaToMask] = "_M_AlphaToMask",
|
||||
};
|
||||
|
||||
public static IReadOnlyDictionary<MToon10Prop, string> UnityShaderLabNames => _unityShaderLabNames;
|
||||
|
||||
public static string ToUnityShaderLabName(this MToon10Prop prop)
|
||||
{
|
||||
return UnityShaderLabNames[prop];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5f987f36ced048ae95acea66b5eeb2dc
|
||||
timeCreated: 1623307328
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public enum AlphaMode
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public enum DoubleSidedMode
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public static class EmissiveMapKeyword
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public static class NormalMapKeyword
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public enum OutlineMode
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public static class OutlineModeKeyword
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public static class ParameterMapKeyword
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public static class RimMapKeyword
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public enum TransparentWithZWriteMode
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public static class UnityAlphaModeKeyword
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public enum UnityAlphaToMaskMode
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public static class UnityRenderTag
|
||||
{
|
||||
@@ -1,4 +1,4 @@
|
||||
namespace VRMShaders.VRM10.MToon10.Editor
|
||||
namespace VRMShaders.VRM10.MToon10.Runtime
|
||||
{
|
||||
public enum UnityZWriteMode
|
||||
{
|
||||
Reference in New Issue
Block a user