public DeferredRenderTechnic(DeferredRenderTechnicInitDescription desc) : base(PostEffectType.Deferred)
        {
            this.desc                = desc;
            deferredGBuffer          = desc.DeferredGBuffer;
            deferredLightMap         = desc.DeferredLightMap;
            deferredFinalCombination = desc.DeferredFinalCombination;
            forwardPass              = desc.ForwardPass;
            if (desc.LightDebug)
            {
                ActiveLogger.LogMessage("LighDebug is not implemented yet, will be disabled", LogLevel.Warning);
            }

            if (desc.DefferedDebug)
            {
                if (desc.RenderTargetsNameToDefferedDebug != null)
                {
                    if (desc.RenderTargetsNameToDefferedDebug.Count() != 4)
                    {
                        ActiveLogger.LogMessage("RenderTargetsNameToDefferedDebug must be 4, Deferred Degug Disabled", LogLevel.RecoverableError);
                        desc.DefferedDebug = false;
                    }
                }
                else
                {
                    ActiveLogger.LogMessage("RenderTargetsNameToDefferedDebug must be 4, Deferred Degub Disabled", LogLevel.RecoverableError);
                    desc.DefferedDebug = false;
                }
            }
        }
        public DeferredRenderTechnic(DeferredRenderTechnicInitDescription desc) : base(PostEffectType.Deferred)
        {
            this.desc = desc;        
            deferredGBuffer = desc.DeferredGBuffer;
            deferredLightMap = desc.DeferredLightMap;
            deferredFinalCombination  = desc.DeferredFinalCombination;
            forwardPass = desc.ForwardPass;
            if (desc.LightDebug)
                ActiveLogger.LogMessage("LighDebug is not implemented yet, will be disabled", LogLevel.Warning);

            if (desc.DefferedDebug)
            {
                if (desc.RenderTargetsNameToDefferedDebug != null)
                {
                    if (desc.RenderTargetsNameToDefferedDebug.Count() != 4)
                    {
                        ActiveLogger.LogMessage("RenderTargetsNameToDefferedDebug must be 4, Deferred Degug Disabled", LogLevel.RecoverableError);
                        desc.DefferedDebug = false;
                    }
                }
                else
                {
                    ActiveLogger.LogMessage("RenderTargetsNameToDefferedDebug must be 4, Deferred Degub Disabled", LogLevel.RecoverableError);
                    desc.DefferedDebug = false;
                }
            }
        }