diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs
index cfafbec45..3c952fc04 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs
@@ -12,7 +12,7 @@ namespace UniGLTF
{
public override void OnImportAsset(AssetImportContext ctx)
{
- Import(this, ctx, m_reverseAxis.ToAxes(), m_useUrpMaterial);
+ Import(this, ctx, m_reverseAxis.ToAxes(), m_renderPipeline);
}
}
}
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs
index 97a08b914..39d8914ba 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs
@@ -12,7 +12,7 @@ namespace UniGLTF
{
public override void OnImportAsset(AssetImportContext ctx)
{
- Import(this, ctx, m_reverseAxis.ToAxes(), m_useUrpMaterial);
+ Import(this, ctx, m_reverseAxis.ToAxes(), m_renderPipeline);
}
}
}
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterBase.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterBase.cs
index b1bf91d3b..54a5c72dc 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterBase.cs
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterBase.cs
@@ -1,8 +1,6 @@
using UnityEngine;
-using UnityEditor;
using System.Linq;
using VRMShaders;
-using UnityEngine.Rendering;
#if UNITY_2020_2_OR_NEWER
using UnityEditor.AssetImporters;
#else
@@ -21,17 +19,20 @@ namespace UniGLTF
public ScriptedImporterAxes m_reverseAxis = default;
[SerializeField]
- public bool m_useUrpMaterial;
+ public RenderPipelineTypes m_renderPipeline;
- static IMaterialDescriptorGenerator GetMaterialGenerator(bool useUrpMaterial)
+ static IMaterialDescriptorGenerator GetMaterialGenerator(RenderPipelineTypes renderPipeline)
{
- if (useUrpMaterial)
+ switch (renderPipeline)
{
- return new GltfUrpMaterialDescriptorGenerator();
- }
- else
- {
- return new GltfMaterialDescriptorGenerator();
+ case RenderPipelineTypes.Builtin:
+ return new GltfUrpMaterialDescriptorGenerator();
+
+ case RenderPipelineTypes.UniversalRenderPipeline:
+ return new GltfMaterialDescriptorGenerator();
+
+ default:
+ throw new System.NotImplementedException();
}
}
@@ -41,7 +42,7 @@ namespace UniGLTF
///
///
///
- protected static void Import(ScriptedImporter scriptedImporter, AssetImportContext context, Axes reverseAxis, bool useUrpMaterial)
+ protected static void Import(ScriptedImporter scriptedImporter, AssetImportContext context, Axes reverseAxis, RenderPipelineTypes renderPipeline)
{
#if VRM_DEVELOP
Debug.Log("OnImportAsset to " + scriptedImporter.assetPath);
@@ -62,7 +63,7 @@ namespace UniGLTF
.Where(x => x.Value != null)
.ToDictionary(kv => new SubAssetKey(kv.Value.GetType(), kv.Key.name), kv => kv.Value);
- IMaterialDescriptorGenerator materialGenerator = GetMaterialGenerator(useUrpMaterial);
+ IMaterialDescriptorGenerator materialGenerator = GetMaterialGenerator(renderPipeline);
using (var loader = new ImporterContext(data, extractedObjects, materialGenerator: materialGenerator))
{
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporter.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporter.cs
index 0ed65d3f7..518019a0c 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporter.cs
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporter.cs
@@ -14,7 +14,7 @@ namespace UniGLTF
{
public override void OnImportAsset(AssetImportContext ctx)
{
- Import(this, ctx, m_reverseAxis.ToAxes(), m_useUrpMaterial);
+ Import(this, ctx, m_reverseAxis.ToAxes(), m_renderPipeline);
}
}
}
diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/URP/UrpPipelineTypes.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/URP/UrpPipelineTypes.cs
new file mode 100644
index 000000000..cbcb80e40
--- /dev/null
+++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/URP/UrpPipelineTypes.cs
@@ -0,0 +1,12 @@
+namespace UniGLTF
+{
+ ///
+ /// TODO: HDRP ?
+ /// TODO: UserCustom ?
+ ///
+ public enum RenderPipelineTypes
+ {
+ Builtin,
+ UniversalRenderPipeline,
+ }
+}
diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/URP/UrpPipelineTypes.cs.meta b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/URP/UrpPipelineTypes.cs.meta
new file mode 100644
index 000000000..6f9f7c807
--- /dev/null
+++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/MaterialIO/URP/UrpPipelineTypes.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c2ddf76db17176b4bb4480924f97c9d3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporter.cs b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporter.cs
index d0414cc82..af17de1ff 100644
--- a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporter.cs
+++ b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporter.cs
@@ -15,11 +15,11 @@ namespace UniVRM10
public bool MigrateToVrm1 = default;
[SerializeField]
- public bool UseUrp = default;
+ public UniGLTF.RenderPipelineTypes RenderPipeline = default;
public override void OnImportAsset(AssetImportContext ctx)
{
- VrmScriptedImporterImpl.Import(this, ctx, MigrateToVrm1, UseUrp);
+ VrmScriptedImporterImpl.Import(this, ctx, MigrateToVrm1, RenderPipeline);
}
}
}
diff --git a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterImpl.cs b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterImpl.cs
index 20e67c7a4..4878c1493 100644
--- a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterImpl.cs
+++ b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterImpl.cs
@@ -1,9 +1,7 @@
using System.Linq;
using UnityEngine;
using UniGLTF;
-using System.IO;
using System;
-using UniJSON;
using VRMShaders;
#if UNITY_2020_2_OR_NEWER
using UnityEditor.AssetImporters;
@@ -16,7 +14,22 @@ namespace UniVRM10
{
public static class VrmScriptedImporterImpl
{
- public static void Import(ScriptedImporter scriptedImporter, AssetImportContext context, bool migrateToVrm1, bool useUrp)
+ static IMaterialDescriptorGenerator GetMaterialDescriptorGenerator(RenderPipelineTypes renderPipeline)
+ {
+ switch (renderPipeline)
+ {
+ case RenderPipelineTypes.Builtin:
+ return new Vrm10MaterialDescriptorGenerator();
+
+ case RenderPipelineTypes.UniversalRenderPipeline:
+ return new Vrm10UrpMaterialDescriptorGenerator();
+
+ default:
+ throw new NotImplementedException();
+ }
+ }
+
+ public static void Import(ScriptedImporter scriptedImporter, AssetImportContext context, bool migrateToVrm1, RenderPipelineTypes renderPipeline)
{
#if VRM_DEVELOP
Debug.Log("OnImportAsset to " + scriptedImporter.assetPath);
@@ -35,15 +48,7 @@ namespace UniVRM10
.Where(kv => kv.Value != null)
.ToDictionary(kv => new SubAssetKey(kv.Value.GetType(), kv.Key.name), kv => kv.Value);
- IMaterialDescriptorGenerator materialGenerator;
- if (useUrp)
- {
- materialGenerator = new Vrm10UrpMaterialDescriptorGenerator();
- }
- else
- {
- materialGenerator = new Vrm10MaterialDescriptorGenerator();
- }
+ var materialGenerator = GetMaterialDescriptorGenerator(renderPipeline);
using (var loader = new Vrm10Importer(result.Data, result.Vrm, extractedObjects, materialGenerator: materialGenerator))
{