protected void SetGraphicsSetting()
        {
            Shader.globalRenderPipeline = "InfinityRenderPipeline";

            GraphicsSettings.lightsUseLinearIntensity  = true;
            GraphicsSettings.lightsUseColorTemperature = true;
            InfinityRenderPipelineAsset PipelineAsset = (InfinityRenderPipelineAsset)GraphicsSettings.currentRenderPipeline;

            GraphicsSettings.useScriptableRenderPipelineBatching = PipelineAsset.EnableSRPBatch;

            SupportedRenderingFeatures.active = new SupportedRenderingFeatures()
            {
                reflectionProbeModes      = SupportedRenderingFeatures.ReflectionProbeModes.Rotation,
                defaultMixedLightingModes = SupportedRenderingFeatures.LightmapMixedBakeModes.IndirectOnly,
                mixedLightingModes        = SupportedRenderingFeatures.LightmapMixedBakeModes.IndirectOnly | SupportedRenderingFeatures.LightmapMixedBakeModes.Shadowmask,
                lightmapBakeTypes         = LightmapBakeType.Baked | LightmapBakeType.Mixed | LightmapBakeType.Realtime,
                lightmapsModes            = LightmapsMode.NonDirectional | LightmapsMode.CombinedDirectional,
                lightProbeProxyVolumes    = true,
                motionVectors             = true,
                receiveShadows            = true,
                reflectionProbes          = true,
                rendererPriority          = true,
                overridesFog = true,
                overridesOtherLightingSettings = true,
                editableMaterialRenderQueue    = true
                , enlighten                = true
                , overridesLODBias         = true
                , overridesMaximumLODLevel = true
                , terrainDetailUnsupported = true
            };
        }
        public InfinityRenderPipeline()
        {
            SetGraphicsSetting();

            GPUScene            = new FGPUScene();
            ViewUnifrom         = new ViewUnifromBuffer();
            GraphBuilder        = new RDGGraphBuilder("InfinityGraph");
            RenderPipelineAsset = (InfinityRenderPipelineAsset)GraphicsSettings.currentRenderPipeline;

            DepthPassMeshProcessor   = new FMeshPassProcessor(GPUScene);
            GBufferPassMeshProcessor = new FMeshPassProcessor(GPUScene);
            ForwardPassMeshProcessor = new FMeshPassProcessor(GPUScene);
        }