mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-10-02 07:42:25 -05:00
Remove dependency on MToon0X
This commit is contained in:
@@ -1,14 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using MToon;
|
||||
using UniGLTF;
|
||||
using UniGLTF.Extensions.VRMC_materials_mtoon;
|
||||
using UniJSON;
|
||||
using UnityEngine;
|
||||
using VRMShaders.VRM10.MToon10.Runtime;
|
||||
using VRMShaders.VRM10.MToon10.Runtime.MToon0X;
|
||||
using ColorSpace = VRMShaders.ColorSpace;
|
||||
using OutlineWidthMode = MToon.OutlineWidthMode;
|
||||
using RenderMode = MToon.RenderMode;
|
||||
|
||||
namespace UniVRM10
|
||||
{
|
||||
@@ -44,14 +42,14 @@ namespace UniVRM10
|
||||
}
|
||||
switch (mtoon.Definition.Rendering.RenderMode)
|
||||
{
|
||||
case RenderMode.Opaque:
|
||||
case MToon0XRenderMode.Opaque:
|
||||
break;
|
||||
case RenderMode.Cutout:
|
||||
case MToon0XRenderMode.Cutout:
|
||||
break;
|
||||
case RenderMode.Transparent:
|
||||
case MToon0XRenderMode.Transparent:
|
||||
transparentRenderQueues.Add(mtoon.Definition.Rendering.RenderQueueOffsetNumber);
|
||||
break;
|
||||
case RenderMode.TransparentWithZWrite:
|
||||
case MToon0XRenderMode.TransparentWithZWrite:
|
||||
transparentZWriteRenderQueues.Add(mtoon.Definition.Rendering.RenderQueueOffsetNumber);
|
||||
break;
|
||||
default:
|
||||
@@ -104,25 +102,25 @@ namespace UniVRM10
|
||||
// Rendering
|
||||
switch (mtoon.Definition.Rendering.RenderMode)
|
||||
{
|
||||
case RenderMode.Opaque:
|
||||
case MToon0XRenderMode.Opaque:
|
||||
gltfMaterial.alphaMode = "OPAQUE";
|
||||
dst.TransparentWithZWrite = false;
|
||||
gltfMaterial.alphaCutoff = 0.5f;
|
||||
dst.RenderQueueOffsetNumber = 0;
|
||||
break;
|
||||
case RenderMode.Cutout:
|
||||
case MToon0XRenderMode.Cutout:
|
||||
gltfMaterial.alphaMode = "MASK";
|
||||
dst.TransparentWithZWrite = false;
|
||||
gltfMaterial.alphaCutoff = mtoon.Definition.Color.CutoutThresholdValue;
|
||||
dst.RenderQueueOffsetNumber = 0;
|
||||
break;
|
||||
case RenderMode.Transparent:
|
||||
case MToon0XRenderMode.Transparent:
|
||||
gltfMaterial.alphaMode = "BLEND";
|
||||
dst.TransparentWithZWrite = false;
|
||||
gltfMaterial.alphaCutoff = 0.5f;
|
||||
dst.RenderQueueOffsetNumber = Mathf.Clamp(transparentRenderQueueMap[mtoon.Definition.Rendering.RenderQueueOffsetNumber], -9, 0);
|
||||
break;
|
||||
case RenderMode.TransparentWithZWrite:
|
||||
case MToon0XRenderMode.TransparentWithZWrite:
|
||||
gltfMaterial.alphaMode = "BLEND";
|
||||
dst.TransparentWithZWrite = true;
|
||||
gltfMaterial.alphaCutoff = 0.5f;
|
||||
@@ -133,13 +131,13 @@ namespace UniVRM10
|
||||
}
|
||||
switch (mtoon.Definition.Rendering.CullMode)
|
||||
{
|
||||
case MToon.CullMode.Back:
|
||||
case MToon0XCullMode.Back:
|
||||
gltfMaterial.doubleSided = false;
|
||||
break;
|
||||
case MToon.CullMode.Off:
|
||||
case MToon0XCullMode.Off:
|
||||
gltfMaterial.doubleSided = true;
|
||||
break;
|
||||
case MToon.CullMode.Front:
|
||||
case MToon0XCullMode.Front:
|
||||
// GLTF not support
|
||||
gltfMaterial.doubleSided = true;
|
||||
break;
|
||||
@@ -294,15 +292,15 @@ namespace UniVRM10
|
||||
const float oneHundredth = 0.01f;
|
||||
switch (mtoon.Definition.Outline.OutlineWidthMode)
|
||||
{
|
||||
case OutlineWidthMode.None:
|
||||
case MToon0XOutlineWidthMode.None:
|
||||
dst.OutlineWidthMode = UniGLTF.Extensions.VRMC_materials_mtoon.OutlineWidthMode.none;
|
||||
dst.OutlineWidthFactor = null;
|
||||
break;
|
||||
case OutlineWidthMode.WorldCoordinates:
|
||||
case MToon0XOutlineWidthMode.WorldCoordinates:
|
||||
dst.OutlineWidthMode = UniGLTF.Extensions.VRMC_materials_mtoon.OutlineWidthMode.worldCoordinates;
|
||||
dst.OutlineWidthFactor = mtoon.Definition.Outline.OutlineWidthValue * centimeterToMeter;
|
||||
break;
|
||||
case OutlineWidthMode.ScreenCoordinates:
|
||||
case MToon0XOutlineWidthMode.ScreenCoordinates:
|
||||
dst.OutlineWidthMode = UniGLTF.Extensions.VRMC_materials_mtoon.OutlineWidthMode.screenCoordinates;
|
||||
// NOTE: 従来は、縦幅の半分を 100% としたときの % の値だった。
|
||||
// 1.0 では縦幅を 1 としたときの値とするので、 1/200 する。
|
||||
@@ -329,10 +327,10 @@ namespace UniVRM10
|
||||
dst.OutlineColorFactor = mtoon.Definition.Outline.OutlineColor.ToFloat3(ColorSpace.sRGB, ColorSpace.Linear);
|
||||
switch (mtoon.Definition.Outline.OutlineColorMode)
|
||||
{
|
||||
case OutlineColorMode.FixedColor:
|
||||
case MToon0XOutlineColorMode.FixedColor:
|
||||
dst.OutlineLightingMixFactor = 0.0f;
|
||||
break;
|
||||
case OutlineColorMode.MixedLighting:
|
||||
case MToon0XOutlineColorMode.MixedLighting:
|
||||
dst.OutlineLightingMixFactor = mtoon.Definition.Outline.OutlineLightingMixValue;
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -4,6 +4,7 @@ using UniGLTF;
|
||||
using UniJSON;
|
||||
using UnityEngine;
|
||||
using VRMShaders;
|
||||
using VRMShaders.VRM10.MToon10.Runtime.MToon0X;
|
||||
using ColorSpace = VRMShaders.ColorSpace;
|
||||
|
||||
namespace UniVRM10
|
||||
@@ -16,28 +17,28 @@ namespace UniVRM10
|
||||
/// </summary>
|
||||
internal sealed class Vrm0XMToonValue
|
||||
{
|
||||
public MToon.MToonDefinition Definition { get; }
|
||||
public MToon0XDefinition Definition { get; }
|
||||
public Dictionary<string, float[]> TextureOffsetScales { get; }
|
||||
public Vrm0XMToonTextureIndexMap TextureIndexMap { get; }
|
||||
|
||||
public Vrm0XMToonValue(JsonNode vrmMaterial)
|
||||
{
|
||||
var definition = new MToon.MToonDefinition
|
||||
var definition = new MToon0XDefinition
|
||||
{
|
||||
Color = new MToon.ColorDefinition { },
|
||||
Lighting = new MToon.LightingDefinition
|
||||
Color = new MToon0XColorDefinition { },
|
||||
Lighting = new MToon0XLightingDefinition
|
||||
{
|
||||
LightingInfluence = new MToon.LightingInfluenceDefinition { },
|
||||
LitAndShadeMixing = new MToon.LitAndShadeMixingDefinition { },
|
||||
Normal = new MToon.NormalDefinition { }
|
||||
LightingInfluence = new MToon0XLightingInfluenceDefinition { },
|
||||
LitAndShadeMixing = new MToon0XLitAndShadeMixingDefinition { },
|
||||
Normal = new MToon0XNormalDefinition { }
|
||||
},
|
||||
Emission = new MToon.EmissionDefinition { },
|
||||
MatCap = new MToon.MatCapDefinition { },
|
||||
Meta = new MToon.MetaDefinition { },
|
||||
Outline = new MToon.OutlineDefinition { },
|
||||
Rendering = new MToon.RenderingDefinition { },
|
||||
Rim = new MToon.RimDefinition { },
|
||||
TextureOption = new MToon.TextureUvCoordsDefinition { }
|
||||
Emission = new MToon0XEmissionDefinition { },
|
||||
MatCap = new MToon0XMatCapDefinition { },
|
||||
Meta = new MToon0XMetaDefinition { },
|
||||
Outline = new MToon0XOutlineDefinition { },
|
||||
Rendering = new MToon0XRenderingDefinition { },
|
||||
Rim = new MToon0XRimDefinition { },
|
||||
TextureOption = new MToon0XTextureUvCoordsDefinition { }
|
||||
};
|
||||
|
||||
var offsetScale = new Dictionary<string, float[]>();
|
||||
@@ -100,10 +101,10 @@ namespace UniVRM10
|
||||
{
|
||||
// Rendering
|
||||
case "_BlendMode":
|
||||
definition.Rendering.RenderMode = (MToon.RenderMode)(int)value;
|
||||
definition.Rendering.RenderMode = (MToon0XRenderMode)(int)value;
|
||||
break;
|
||||
case "_CullMode":
|
||||
definition.Rendering.CullMode = (MToon.CullMode)(int)value;
|
||||
definition.Rendering.CullMode = (MToon0XCullMode)(int)value;
|
||||
break;
|
||||
case "_Cutoff":
|
||||
definition.Color.CutoutThresholdValue = value;
|
||||
@@ -147,7 +148,7 @@ namespace UniVRM10
|
||||
|
||||
// Outline
|
||||
case "_OutlineColorMode":
|
||||
definition.Outline.OutlineColorMode = (MToon.OutlineColorMode)value;
|
||||
definition.Outline.OutlineColorMode = (MToon0XOutlineColorMode)value;
|
||||
break;
|
||||
case "_OutlineLightingMix":
|
||||
definition.Outline.OutlineLightingMixValue = value;
|
||||
@@ -163,7 +164,7 @@ namespace UniVRM10
|
||||
{
|
||||
value = 0;
|
||||
}
|
||||
definition.Outline.OutlineWidthMode = (MToon.OutlineWidthMode)value;
|
||||
definition.Outline.OutlineWidthMode = (MToon0XOutlineWidthMode)value;
|
||||
break;
|
||||
|
||||
// UV Animation
|
||||
@@ -230,7 +231,7 @@ namespace UniVRM10
|
||||
|
||||
definition.Rendering.RenderQueueOffsetNumber =
|
||||
vrmMaterial["renderQueue"].GetInt32() -
|
||||
MToon.Utils.GetRenderQueueRequirement(definition.Rendering.RenderMode).DefaultValue;
|
||||
MToon0XUtils.GetRenderQueueRequirement(definition.Rendering.RenderMode).DefaultValue;
|
||||
|
||||
Definition = definition;
|
||||
TextureOffsetScales = offsetScale;
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
"rootNamespace": "",
|
||||
"references": [
|
||||
"GUID:2ef84b520212e174a94668c7a0862d3b",
|
||||
"GUID:a9bc101fb0471f94a8f99fd242fdd934",
|
||||
"GUID:8d76e605759c3f64a957d63ef96ada7c",
|
||||
"GUID:da3e51d19d51a544fa14d43fee843098",
|
||||
"GUID:bce005214fa49654d93927908c15b1f2",
|
||||
|
||||
Reference in New Issue
Block a user