Quellcode durchsuchen

Atom/rbarrand/baked shader variant example (#16)

* Add BakedShaderVariantExampleComponent to measure performance with shader variants. Add shadervariantlist files for standardpbr and enhanced pbr.
hershey5045 vor 4 Jahren
Ursprung
Commit
72ae3c7c8a

+ 2 - 0
Gem/Code/Source/AtomSampleViewerModule.cpp

@@ -17,6 +17,7 @@
 #include <AssetLoadTestComponent.h>
 #include <AuxGeomExampleComponent.h>
 #include <AtomSampleViewerSystemComponent.h>
+#include <BakedShaderVariantExampleComponent.h>
 #include <BistroBenchmarkComponent.h>
 #include <BloomExampleComponent.h>
 #include <CheckerboardExampleComponent.h>
@@ -126,6 +127,7 @@ namespace AtomSampleViewer
             m_descriptors.insert(m_descriptors.end(), {
                 AreaLightExampleComponent::CreateDescriptor(),
                 AssetLoadTestComponent::CreateDescriptor(),
+                BakedShaderVariantExampleComponent::CreateDescriptor(),
                 BistroBenchmarkComponent::CreateDescriptor(),
                 BloomExampleComponent::CreateDescriptor(),
                 CheckerboardExampleComponent::CreateDescriptor(),

+ 227 - 0
Gem/Code/Source/BakedShaderVariantExampleComponent.cpp

@@ -0,0 +1,227 @@
+/*
+ * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+ * its licensors.
+ *
+ * For complete copyright and license terms please see the LICENSE at the root of this
+ * distribution (the "License"). All use of this software is governed by the License,
+ * or, if provided, by the license below or the license accompanying this file. Do not
+ * remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *
+ */
+
+#include <Automation/ScriptRunnerBus.h>
+#include <Automation/ScriptableImGui.h>
+#include <BakedShaderVariantExampleComponent.h>
+#include <SampleComponentConfig.h>
+#include <SampleComponentManager.h>
+
+#include <Atom/Feature/Material/MaterialAssignment.h>
+#include <Atom/RPI.Reflect/Asset/AssetUtils.h>
+#include <Atom/RPI.Reflect/Material/MaterialAsset.h>
+#include <Atom/RPI.Reflect/Model/ModelAsset.h>
+
+#include <Atom/RPI.Public/Pass/PassFilter.h>
+#include <Atom/RPI.Public/RPISystemInterface.h>
+#include <AzCore/Console/Console.h>
+#include <AzCore/IO/Path/Path.h>
+#include <AzCore/Utils/Utils.h>
+#include <AzFramework/Asset/AssetProcessorMessages.h>
+#include <AzFramework/Asset/AssetSystemBus.h>
+#include <AzFramework/IO/LocalFileIO.h>
+
+#include <RHI/BasicRHIComponent.h>
+
+namespace AtomSampleViewer
+{
+    using namespace AZ;
+    using namespace RPI;
+
+    namespace
+    {
+        namespace Products
+        {
+            static constexpr const char ModelFilePath[] = "objects/plane.azmodel";
+        } // namespace Products
+    } // namespace
+
+    void BakedShaderVariantExampleComponent::Reflect(ReflectContext* context)
+    {
+        if (SerializeContext* serializeContext = azrtti_cast<SerializeContext*>(context))
+        {
+            serializeContext->Class<BakedShaderVariantExampleComponent, CommonSampleComponentBase>()->Version(0);
+        }
+    }
+
+    BakedShaderVariantExampleComponent::BakedShaderVariantExampleComponent()
+        : m_imguiSidebar{"@user@/BakedShaderVariantExampleComponent/sidebar.xml"}
+        , m_materialBrowser{"@user@/BakedShaderVariantExampleComponent/material_browser.xml"}
+        , m_imGuiFrameTimer(FrameTimeLogSize, FrameTimeLogSize)
+        , m_imGuiForwardPassTimer(PassTimeLogSize, PassTimeLogSize)
+    {
+    }
+
+    void BakedShaderVariantExampleComponent::Activate()
+    {
+        TickBus::Handler::BusConnect();
+        m_imguiSidebar.Activate();
+
+        m_materialBrowser.SetFilter([this](const AZ::Data::AssetInfo& assetInfo) {
+            if (!AzFramework::StringFunc::Path::IsExtension(assetInfo.m_relativePath.c_str(), "azmaterial"))
+            {
+                return false;
+            }
+            return assetInfo.m_assetId.m_subId == 0;
+        });
+        m_materialBrowser.Activate();
+
+        Data::AssetId modelAssetId;
+        Data::AssetCatalogRequestBus::BroadcastResult(
+            modelAssetId, &Data::AssetCatalogRequestBus::Events::GetAssetIdByPath, Products::ModelFilePath, nullptr, false);
+        AZ_Assert(modelAssetId.IsValid(), "Failed to get model asset id: %s", Products::ModelFilePath);
+        m_modelAsset.Create(modelAssetId);
+
+        const Transform cameraTransform = Transform::CreateFromQuaternionAndTranslation(
+            Quaternion::CreateFromAxisAngle(Vector3::CreateAxisZ(), AZ::Constants::Pi), Vector3{0.0f, 0.4f, 0.0f});
+        AZ::TransformBus::Event(GetCameraEntityId(), &AZ::TransformBus::Events::SetWorldTM, cameraTransform);
+
+        m_meshFeatureProcessor = Scene::GetFeatureProcessorForEntityContextId<Render::MeshFeatureProcessorInterface>(GetEntityContextId());
+
+        InitLightingPresets(true);
+
+        Transform meshTransform =
+            Transform::CreateFromQuaternion(Quaternion::CreateFromAxisAngle(Vector3::CreateAxisX(), -AZ::Constants::HalfPi));
+        m_meshHandle = m_meshFeatureProcessor->AcquireMesh(m_modelAsset, m_material);
+        m_meshFeatureProcessor->SetTransform(m_meshHandle, meshTransform);
+
+        AZStd::vector<AZStd::string> passHierarchy;
+        passHierarchy.push_back("ForwardMSAAPass");
+        AZ::RPI::PassHierarchyFilter passFilter(passHierarchy);
+        AZStd::vector<AZ::RPI::Pass*> foundPasses = AZ::RPI::PassSystemInterface::Get()->FindPasses(passFilter);
+        m_forwardPass = foundPasses[0];
+        m_forwardPass->SetTimestampQueryEnabled(true);
+
+        SetRootVariantUsage(true);
+    }
+
+    void BakedShaderVariantExampleComponent::Deactivate()
+    {
+        SetRootVariantUsage(false);
+        
+        m_forwardPass->SetTimestampQueryEnabled(false);
+
+        m_meshFeatureProcessor->ReleaseMesh(m_meshHandle);
+
+        Data::AssetBus::Handler::BusDisconnect();
+        TickBus::Handler::BusDisconnect();
+        m_imguiSidebar.Deactivate();
+
+        m_material = nullptr;
+
+        ShutdownLightingPresets();
+    }
+
+    void BakedShaderVariantExampleComponent::OnTick(float deltaTime, ScriptTimePoint /*scriptTime*/)
+    {
+        m_imGuiFrameTimer.PushValue(deltaTime);
+
+        AZ::RPI::TimestampResult forwardTimestampResult = m_forwardPass->GetLatestTimestampResult();
+        double gpuForwardFrameTimeMs = aznumeric_cast<double>(forwardTimestampResult.GetDurationInNanoseconds()) / 1000000;
+        m_imGuiForwardPassTimer.PushValue(gpuForwardFrameTimeMs);
+
+
+        bool materialNeedsUpdate = false;
+        if (m_imguiSidebar.Begin())
+        {
+            ImGuiLightingPreset();
+
+            ImGuiAssetBrowser::WidgetSettings assetBrowserSettings;
+
+            assetBrowserSettings.m_labels.m_root = "Materials";
+            materialNeedsUpdate |= m_materialBrowser.Tick(assetBrowserSettings);
+
+            ImGui::Spacing();
+            ImGui::Separator();
+            ImGui::Spacing();
+
+
+            ImGui::Text("Shader Variant Usage:");
+            if (ScriptableImGui::Button("Force Root Variant"))
+            {
+                SetRootVariantUsage(true);
+            }
+            ImGui::SameLine();
+            if (ScriptableImGui::Button("Optimize Variant"))
+            {
+                SetRootVariantUsage(false);
+            }
+
+            ImGui::Spacing();
+            ImGui::Separator();
+            ImGui::Spacing();
+
+            ImGui::Text("FPS");
+            ImGuiHistogramQueue::WidgetSettings settings;
+            settings.m_reportInverse = true;
+            settings.m_units = "fps";
+            m_imGuiFrameTimer.Tick(deltaTime, settings);
+
+            ImGui::Spacing();
+            ImGui::Separator();
+            ImGui::Spacing();
+
+            ImGui::Text("GPU Forward Pass");
+            ImGuiHistogramQueue::WidgetSettings gpuMetricsSettings;
+            gpuMetricsSettings.m_units = "ms";
+            m_imGuiForwardPassTimer.Tick(gpuForwardFrameTimeMs, gpuMetricsSettings);
+
+            ImGui::Spacing();
+            ImGui::Separator();
+            ImGui::Spacing();
+
+            if (m_material && ImGui::Button("Material Details..."))
+            {
+                m_imguiMaterialDetails.SetMaterial(m_material);
+                m_imguiMaterialDetails.OpenDialog();
+            }
+
+            m_imguiSidebar.End();
+        }
+
+        m_imguiMaterialDetails.Tick();
+
+        if (materialNeedsUpdate)
+        {
+            MaterialChange();
+        }
+    }
+
+    void BakedShaderVariantExampleComponent::SetRootVariantUsage(bool enabled)
+    {
+        AZ::IConsole* console = AZ::Interface<AZ::IConsole>::Get();
+        console->PerformCommand(AZStd::string::format("r_forceRootShaderVariantUsage %s", enabled ? "true" : "false").c_str());
+    }
+
+    void BakedShaderVariantExampleComponent::MaterialChange()
+    {
+        AZ::Data::AssetId selectedMaterialAssetId = m_materialBrowser.GetSelectedAssetId();
+        if (!selectedMaterialAssetId.IsValid())
+        {
+            selectedMaterialAssetId =
+                AZ::RPI::AssetUtils::GetAssetIdForProductPath(DefaultPbrMaterialPath, AZ::RPI::AssetUtils::TraceLevel::Error);
+
+            if (!selectedMaterialAssetId.IsValid())
+            {
+                AZ_Error("BakedShaderVariantExampleComponent", false, "Failed to select material to render with.");
+                return;
+            }
+        }
+        else
+        {
+            AZ::Data::Asset<AZ::RPI::MaterialAsset> materialAsset;
+            materialAsset.Create(selectedMaterialAssetId);
+            m_material = AZ::RPI::Material::FindOrCreate(materialAsset);
+            m_meshFeatureProcessor->SetMaterialAssignmentMap(m_meshHandle, m_material);
+        }
+    }
+} // namespace AtomSampleViewer

+ 75 - 0
Gem/Code/Source/BakedShaderVariantExampleComponent.h

@@ -0,0 +1,75 @@
+/*
+ * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
+ * its licensors.
+ *
+ * For complete copyright and license terms please see the LICENSE at the root of this
+ * distribution (the "License"). All use of this software is governed by the License,
+ * or, if provided, by the license below or the license accompanying this file. Do not
+ * remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *
+ */
+
+#pragma once
+
+#include <Atom/RPI.Reflect/Material/MaterialAsset.h>
+#include <Atom/RPI.Reflect/Model/ModelAsset.h>
+#include <AzCore/Component/TickBus.h>
+#include <AzFramework/Asset/AssetSystemTypes.h>
+#include <CommonSampleComponentBase.h>
+#include <Utils/ImGuiSidebar.h>
+#include <Utils/ImGuiAssetBrowser.h>
+#include <Utils/ImGuiMaterialDetails.h>
+#include <Utils/ImGuiHistogramQueue.h>
+
+namespace AtomSampleViewer
+{
+    //! This test is for collecting metrics on the shader variant system by allowing users to switch from using
+    //! root shader variant to the optimized variant. To generate shader variants, use the Shader Management Console.
+    //! The shader options used by the material can be verified using the Material Details button in the sidebar.
+    //! FPS and root pass metrics are shown on the sidebar as well. To view metrics for specific passes, use the GPU
+    //! profiler.
+    class BakedShaderVariantExampleComponent final
+        : public CommonSampleComponentBase
+        , public AZ::TickBus::Handler
+        , public AZ::Data::AssetBus::Handler
+    {
+    public:
+        AZ_COMPONENT(BakedShaderVariantExampleComponent, "{4986DD5D-347E-4E11-BBD5-E364061666A1}", CommonSampleComponentBase);
+        BakedShaderVariantExampleComponent();
+
+        static void Reflect(AZ::ReflectContext* context);
+
+        // AZ::Component overrides...
+        void Activate() override;
+        void Deactivate() override;
+
+    private:
+        AZ_DISABLE_COPY_MOVE(BakedShaderVariantExampleComponent);
+
+        // AZ::TickBus::Handler overrides...
+        void OnTick(float deltaTime, AZ::ScriptTimePoint scriptTime) override;
+
+        void MaterialChange();
+        void SetRootVariantUsage(bool enabled);
+
+        static constexpr uint32_t FrameTimeLogSize = 50;
+        static constexpr uint32_t PassTimeLogSize = 50;
+        ImGuiSidebar m_imguiSidebar;
+        ImGuiMaterialDetails m_imguiMaterialDetails;
+        ImGuiAssetBrowser m_materialBrowser;
+        ImGuiHistogramQueue m_imGuiFrameTimer;
+        ImGuiHistogramQueue m_imGuiForwardPassTimer;
+
+        AZ::Render::MeshFeatureProcessorInterface* m_meshFeatureProcessor = nullptr;
+
+        AZ::Data::Asset<AZ::RPI::MaterialAsset> m_materialAsset;
+        AZ::Data::Instance<AZ::RPI::Material> m_material;
+        AZ::Data::Asset<AZ::RPI::ModelAsset> m_modelAsset;
+        AZ::Render::MeshFeatureProcessorInterface::MeshHandle m_meshHandle;
+
+        AZ::RHI::Ptr<AZ::RPI::Pass> m_forwardPass;
+
+        size_t m_selectedShaderIndex = 0;
+    };
+} // namespace AtomSampleViewer

+ 2 - 0
Gem/Code/Source/SampleComponentManager.cpp

@@ -69,6 +69,7 @@
 #include <AreaLightExampleComponent.h>
 #include <AssetLoadTestComponent.h>
 #include <AuxGeomExampleComponent.h>
+#include <BakedShaderVariantExampleComponent.h>
 #include <BistroBenchmarkComponent.h>
 #include <BloomExampleComponent.h>
 #include <CheckerboardExampleComponent.h>
@@ -257,6 +258,7 @@ namespace AtomSampleViewer
         SampleComponentManager::RegisterSampleComponent(SampleEntry::NewRHISample( "RHI/TrianglesConstantBuffer", azrtti_typeid<TrianglesConstantBufferExampleComponent>() ));
         SampleComponentManager::RegisterSampleComponent(SampleEntry::NewRPISample( "RPI/AssetLoadTest", azrtti_typeid<AssetLoadTestComponent>() ));
         SampleComponentManager::RegisterSampleComponent(SampleEntry::NewRPISample( "RPI/AuxGeom", azrtti_typeid<AuxGeomExampleComponent>() ));
+        SampleComponentManager::RegisterSampleComponent(SampleEntry::NewRPISample( "RPI/BakedShaderVariant", azrtti_typeid<BakedShaderVariantExampleComponent>() ));
         SampleComponentManager::RegisterSampleComponent(SampleEntry::NewRPISample( "RPI/BistroBenchmark", azrtti_typeid<BistroBenchmarkComponent>() ));
         SampleComponentManager::RegisterSampleComponent(SampleEntry::NewRPISample( "RPI/CullingAndLod", azrtti_typeid<CullingAndLodExampleComponent>() ));
         SampleComponentManager::RegisterSampleComponent(SampleEntry::NewRPISample( "RPI/Decals", azrtti_typeid<DecalExampleComponent>() ));

+ 2 - 0
Gem/Code/atomsampleviewergem_private_files.cmake

@@ -91,6 +91,8 @@ set(FILES
     Source/AuxGeomExampleComponent.h
     Source/AuxGeomSharedDrawFunctions.cpp
     Source/AuxGeomSharedDrawFunctions.h
+    Source/BakedShaderVariantExampleComponent.h
+    Source/BakedShaderVariantExampleComponent.cpp
     Source/BistroBenchmarkComponent.cpp
     Source/BistroBenchmarkComponent.h
     Source/BloomExampleComponent.cpp

+ 245 - 0
ShaderVariants/Materials/Types/EnhancedPBR_ForwardPass.shadervariantlist

@@ -0,0 +1,245 @@
+{
+    "Shader": "Materials/Types/EnhancedPBR_ForwardPass.shader",
+    "Variants": [
+        {
+            "StableId": 1,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "true",
+                "o_detail_blendMask_useTexture": "true",
+                "o_detail_normal_useTexture": "true",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        },
+        {
+            "StableId": 2,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "false",
+                "o_detail_blendMask_useTexture": "false",
+                "o_detail_normal_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        },
+        {
+            "StableId": 3,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "false",
+                "o_detail_blendMask_useTexture": "false",
+                "o_detail_normal_useTexture": "true",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        },
+        {
+            "StableId": 4,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "true",
+                "o_detail_blendMask_useTexture": "false",
+                "o_detail_normal_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        },
+        {
+            "StableId": 5,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "false",
+                "o_detail_blendMask_useTexture": "true",
+                "o_detail_normal_useTexture": "true",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        },
+        {
+            "StableId": 6,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "true",
+                "o_detail_blendMask_useTexture": "true",
+                "o_detail_normal_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        }
+    ]
+}

+ 245 - 0
ShaderVariants/Materials/Types/EnhancedPBR_ForwardPass_EDS.shadervariantlist

@@ -0,0 +1,245 @@
+{
+    "Shader": "Materials/Types/EnhancedPBR_ForwardPass_EDS.shader",
+    "Variants": [
+        {
+            "StableId": 1,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "true",
+                "o_detail_blendMask_useTexture": "true",
+                "o_detail_normal_useTexture": "true",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        },
+        {
+            "StableId": 2,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "false",
+                "o_detail_blendMask_useTexture": "false",
+                "o_detail_normal_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        },
+        {
+            "StableId": 3,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "false",
+                "o_detail_blendMask_useTexture": "false",
+                "o_detail_normal_useTexture": "true",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        },
+        {
+            "StableId": 4,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "true",
+                "o_detail_blendMask_useTexture": "false",
+                "o_detail_normal_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        },
+        {
+            "StableId": 5,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "false",
+                "o_detail_blendMask_useTexture": "true",
+                "o_detail_normal_useTexture": "true",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        },
+        {
+            "StableId": 6,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_detail_baseColor_useTexture": "true",
+                "o_detail_blendMask_useTexture": "true",
+                "o_detail_normal_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAnisotropy": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false"
+            }
+        }
+    ]
+}

+ 1428 - 0
ShaderVariants/Materials/Types/StandardPBR_ForwardPass.shadervariantlist

@@ -0,0 +1,1428 @@
+{
+    "Shader": "Materials/Types/StandardPBR_ForwardPass.shader",
+    "Variants": [
+        {
+            "StableId": 1,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 2,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 3,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "true",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 4,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "true",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 5,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 6,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "true",
+                "o_clearCoat_factor_useTexture": "true",
+                "o_clearCoat_feature_enabled": "true",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 7,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Cutout",
+                "o_opacity_source": "OpacitySource::Split",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 8,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 9,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "true",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 10,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Cutout",
+                "o_opacity_source": "OpacitySource::Split",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 11,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 12,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "true",
+                "o_clearCoat_normal_useTexture": "true",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 13,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 14,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "true",
+                "o_emissive_useTexture": "true",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 15,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "true",
+                "o_emissive_useTexture": "true",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 16,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 17,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "true",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "true",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 18,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Lerp",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 19,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 20,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Blended",
+                "o_opacity_source": "OpacitySource::Split",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 21,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "true",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 22,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::POM",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "true",
+                "o_parallax_quality": "ParallaxQuality::High",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "true"
+            }
+        },
+        {
+            "StableId": 23,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "true",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 24,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "true",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "true",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 25,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 26,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 27,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Cutout",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 28,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "true",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 29,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::LinearLight",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 30,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Blended",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 31,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 32,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "true",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Lerp",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 33,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "true",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Lerp",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 34,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "true",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::POM",
+                "o_parallax_enablePixelDepthOffset": "true",
+                "o_parallax_feature_enabled": "true",
+                "o_parallax_quality": "ParallaxQuality::High",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "true"
+            }
+        },
+        {
+            "StableId": 35,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "true",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::ThickObject",
+                "o_transmission_useTexture": "true",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 36,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::POM",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "true",
+                "o_parallax_quality": "ParallaxQuality::High",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "true"
+            }
+        },
+        {
+            "StableId": 37,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "true",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 38,
+            "Options": {
+                "o_applySpecularAA": "true",
+                "o_emissiveEnabled": "false",
+                "o_enableAreaLights": "false",
+                "o_enableDirectionalLights": "false",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "false",
+                "o_enableShadows": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_specularF0_enableMultiScatterCompensation": "false"
+            }
+        }
+    ]
+}

+ 1411 - 0
ShaderVariants/Materials/Types/StandardPBR_ForwardPass_EDS.shadervariantlist

@@ -0,0 +1,1411 @@
+{
+    "Shader": "Materials/Types/StandardPBR_ForwardPass_EDS.shader",
+    "Variants": [
+        {
+            "StableId": 1,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 2,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 3,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "true",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 4,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "true",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 5,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 6,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "true",
+                "o_clearCoat_factor_useTexture": "true",
+                "o_clearCoat_feature_enabled": "true",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 7,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Cutout",
+                "o_opacity_source": "OpacitySource::Split",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 8,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 9,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "true",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 10,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Cutout",
+                "o_opacity_source": "OpacitySource::Split",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 11,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 12,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "true",
+                "o_clearCoat_normal_useTexture": "true",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 13,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 14,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "true",
+                "o_emissive_useTexture": "true",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 15,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "true",
+                "o_emissive_useTexture": "true",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 16,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 17,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "true",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "true",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 18,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Lerp",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 19,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 20,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Blended",
+                "o_opacity_source": "OpacitySource::Split",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 21,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "true",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 22,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::POM",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "true",
+                "o_parallax_quality": "ParallaxQuality::High",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "true"
+            }
+        },
+        {
+            "StableId": 23,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "true",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 24,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "true",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "true",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "true",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 25,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 26,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 27,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Cutout",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 28,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "true",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 29,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::LinearLight",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 30,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Blended",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 31,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 32,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "true",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Lerp",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 33,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "true",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Lerp",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "true",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 34,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "true",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "true",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::POM",
+                "o_parallax_enablePixelDepthOffset": "true",
+                "o_parallax_feature_enabled": "true",
+                "o_parallax_quality": "ParallaxQuality::High",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "true"
+            }
+        },
+        {
+            "StableId": 35,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "true",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::ThickObject",
+                "o_transmission_useTexture": "true",
+                "o_useDepthMap": "false"
+            }
+        },
+        {
+            "StableId": 36,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "false",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "true",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "true",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::POM",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "true",
+                "o_parallax_quality": "ParallaxQuality::High",
+                "o_roughness_useTexture": "true",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "true"
+            }
+        },
+        {
+            "StableId": 37,
+            "Options": {
+                "o_ambientOcclusion_useTexture": "true",
+                "o_applySpecularAA": "false",
+                "o_baseColorTextureBlendMode": "TextureBlendMode::Multiply",
+                "o_baseColor_useTexture": "false",
+                "o_clearCoat_enabled": "false",
+                "o_clearCoat_factor_useTexture": "false",
+                "o_clearCoat_feature_enabled": "false",
+                "o_clearCoat_normal_useTexture": "false",
+                "o_clearCoat_roughness_useTexture": "false",
+                "o_emissiveEnabled": "false",
+                "o_emissive_useTexture": "false",
+                "o_enableAreaLights": "true",
+                "o_enableDirectionalLights": "true",
+                "o_enableIBL": "true",
+                "o_enablePunctualLights": "true",
+                "o_enableShadows": "true",
+                "o_enableSubsurfaceScattering": "false",
+                "o_materialUseForwardPassIBLSpecular": "false",
+                "o_metallic_useTexture": "false",
+                "o_normal_useTexture": "false",
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low",
+                "o_roughness_useTexture": "false",
+                "o_specularF0_enableMultiScatterCompensation": "false",
+                "o_specularF0_useTexture": "false",
+                "o_subsurfaceScattering_useTexture": "false",
+                "o_transmission_mode": "TransmissionMode::None",
+                "o_transmission_useTexture": "false",
+                "o_useDepthMap": "false"
+            }
+        }
+    ]
+}

+ 71 - 0
ShaderVariants/Materials/Types/StandardPBR_Shadowmap_WithPS.shadervariantlist

@@ -0,0 +1,71 @@
+{
+    "Shader": "Materials/Types/StandardPBR_Shadowmap_WithPS.shader",
+    "Variants": [
+        {
+            "StableId": 1,
+            "Options": {
+                "o_opacity_mode": "OpacityMode::Cutout",
+                "o_opacity_source": "OpacitySource::Split",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low"
+            }
+        },
+        {
+            "StableId": 2,
+            "Options": {
+                "o_opacity_mode": "OpacityMode::Blended",
+                "o_opacity_source": "OpacitySource::Split",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low"
+            }
+        },
+        {
+            "StableId": 3,
+            "Options": {
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::POM",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "true",
+                "o_parallax_quality": "ParallaxQuality::High"
+            }
+        },
+        {
+            "StableId": 4,
+            "Options": {
+                "o_opacity_mode": "OpacityMode::Cutout",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low"
+            }
+        },
+        {
+            "StableId": 5,
+            "Options": {
+                "o_opacity_mode": "OpacityMode::Blended",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::Basic",
+                "o_parallax_enablePixelDepthOffset": "false",
+                "o_parallax_feature_enabled": "false",
+                "o_parallax_quality": "ParallaxQuality::Low"
+            }
+        },
+        {
+            "StableId": 6,
+            "Options": {
+                "o_opacity_mode": "OpacityMode::Opaque",
+                "o_opacity_source": "OpacitySource::Packed",
+                "o_parallax_algorithm": "ParallaxAlgorithm::POM",
+                "o_parallax_enablePixelDepthOffset": "true",
+                "o_parallax_feature_enabled": "true",
+                "o_parallax_quality": "ParallaxQuality::High"
+            }
+        }
+    ]
+}