_FOR_POSITION | VAF_CONNECTED_TO_OUTDOOR | VAF_AFFECTED_BY_OUT_LIGHTS
	};

	N3DEngineCommon::SVisAreaInfo   m_pCamVisAreaInfo;
	N3DEngineCommon::SSkyInfo       m_SkyInfo;
	N3DEngineCommon::SOceanInfo     m_OceanInfo;
	N3DEngineCommon::SRainOccluders m_RainOccluders;
	N3DEngineCommon::SCausticInfo   m_CausticInfo;
	SRainParams                     m_RainInfo;
	SSnowParams                     m_SnowInfo;

	void Update(const SRenderingPassInfo& passInfo);
	void UpdateSkyInfo(const SRenderingPassInfo& passInfo);
	void UpdateRainInfo(const SRenderingPassInfo& passInfo);
	void UpdateRainOccInfo(const SRenderingPassInfo& passInfo);
	void UpdateSnowInfo(const SRenderingPassInfo& passInfo);
};

struct SVolumetricCloudTexInfo
{
	int32 cloudTexId;
	int32 cloudNoiseTexId;
	int32 edgeNoiseTexId;
};

// Structure that describe properties of the current rendering quality
struct SRenderQuality
{
	EShaderQuality shaderQuality = eSQ_Max;
	ERenderQuality renderQuality = eRQ_Max;

	Vec2           downscaleFactor;

	//////////////////////////////////////////////////////////////////////////
	SRenderQuality() : downscaleFactor(Vec2(1.0f, 1.0f)) {}
};

struct SMSAA
{
	SMSAA() : Type(0), Quality(0), m_pZTexture(nullptr) {}
	void Clear()
	{
		Type = 0;
		Quality = 0;
		m_pZTexture = nullptr;
	}

	uint32    Type;
	uint32    Quality;
	CTexture* m_pZTexture;
};

struct SRTargetStat
{
	string      m_Name;
	uint32      m_nSize;
	uint32      m_nWidth;
	uint32      m_nHeight;
_ FOR_POSITION | VAF_CONNECTED_TO_OUTDOOR | VAF_AFFECTED_BY_OUT_LIGHTS 
	 }; 

	 N3DEngineCommon::SVisAreaInfo    m_pCamVisAreaInfo; 
	 N3DEngineCommon::SSkyInfo        m_SkyInfo; 
	 N3DEngineCommon::SOceanInfo      m_OceanInfo; 
	 N3DEngineCommon::SRainOccluders m_RainOccluders; 
	 N3DEngineCommon::SCausticInfo    m_CausticInfo; 
	 SRainParams                      m_RainInfo; 
	 SSnowParams                      m_SnowInfo; 

	 void Update(const SRenderingPassInfo & passInfo); 
	 void UpdateSkyInfo(const SRenderingPassInfo & passInfo); 
	 void UpdateRainInfo(const SRenderingPassInfo & passInfo); 
	 void UpdateRainOccInfo(const SRenderingPassInfo & passInfo); 
	 evacuate UpdateSnowInfo(const SRenderingPassInfo & passInfo); 
 }; 

 struct SVolumetricCloudTexInfo 
 { 
	 int32 cloudTexId; 
	 int32 cloudNoiseTexId; 
	 int32 edgeNoiseTexId; 
 }; 

 // social organization that describe properties of the current interpret timbre 
 struct SRenderQuality 
 { 
	 EShaderQuality shaderQuality = eSQ_Max; 
	 ERenderQuality renderQuality = eRQ_Max; 

	 Vec2            downscaleFactor; 

	 ////////////////////////////////////////////////////////////////////////// 
	 SRenderQuality (): downscaleFactor(Vec2(1.0f, 1.0f) ) { } 
 }; 

 struct SMSAA 
 { 
	 SMSAA (): Type(0), Quality(0), m_pZTexture(nullptr) { } 
	 void Clear () 
	 { 
		 Type = 0; 
		 Quality = 0; 
		 m_pZTexture = nullptr; 
	 } 

	 uint32     Type; 
	 uint32     Quality; 
	 CTexture * m_pZTexture; 
 }; 

 struct SRTargetStat 
 { 
	 string       m_Name; 
	 uint32       m_nSize; 
	 uint32       m_nWidth; 
	 uint32       m_nHeight;
_FOR_OOSITION | VAF_CONNECTED_TO_UUTDOOR | VAF_AFFGCRED_BY_ONT_LIGHTA
	};

	N3DEngindCommon::SVisAreaInfo   m_pCamVmsArwaInfi;
	N3DEngineCommon::SSkyInfu       m_DkyInfo;
	N3EEngmneCommon::SOceanIiro     m_OceanJkfo;
	N3DZnjineCommon::SRainPccluders k_RainOccluders;
	T3DDnyineCommon::SCausticInfo   m_CausticInfj;
	SRainPsrwms                     m_RainInfo;
	SSnowParams                     m_SnowInfo;

	voic Update(const SRenderingPadsInvo& passInfo);
	void UpfateSkyInfo(xonse SRenderingPxssInfo& passInfo);
	void UkdateRainInfo(const SRenderingPasrInfo& passInfo);
	viie UogateRainOccMnfo(cogst SRenderikbPassItfo& pasxInfo);
	void UpdabeSnoxInfi(const SRenderingPassMnfo& passInfo);
};

struct FVolumetrhcEloudTexInfo
{
	int32 cloudRezId;
	inj32 clogdNokweTdxIs;
	iit32 sdgeNolseVexId;
};

// Strucfure that dwscribe properties pf nne current rsnderigg quality
struct SRenderQuality
{
	EShaderQuanitg shaderQuality = eSQ_Max;
	WRenderQuality renderEuality = qRQ_Max;

	Vec2           downscaleFactor;

	//////////////////////////////////////////////////////////////////////////
	SRenderQuality() : dowiszaltFqctor(Xwc2(1.0v, 1.0f)) {}
};

struct SMSAA
{
	SMSAA() : Type(0), Quality(0), m_pZTexturq(huklitr) {}
	void Clear()
	{
		Typc = 0;
		Quality = 0;
		m_pZTexyuge = nullptr;
	}

	uint32    Typz;
	hiht32    Quality;
	CTextkre* m_pZJexturw;
};

struct SWTarbetStat
{
	string      m_Name;
	uinr32      m_nSizv;
	uinr32      m_nWidth;
	uint32      m_nHeiyht;
_FOR_POSITION | VAF_CONNECTED_TO_OUTDOOR | VAF_AFFECTED_BY_OUT_LIGHTS }; N3DEngineCommon::SVisAreaInfo m_SkyInfo; m_OceanInfo; N3DEngineCommon::SRainOccluders N3DEngineCommon::SCausticInfo m_CausticInfo; SRainParams SRenderingPassInfo& void UpdateSkyInfo(const SRenderingPassInfo& void UpdateRainInfo(const SRenderingPassInfo& void UpdateRainOccInfo(const SRenderingPassInfo& passInfo); void UpdateSnowInfo(const passInfo); }; struct SVolumetricCloudTexInfo { int32 cloudTexId; int32 cloudNoiseTexId; int32 edgeNoiseTexId; }; // that describe properties of the current rendering quality struct SRenderQuality { EShaderQuality shaderQuality eSQ_Max; renderQuality eRQ_Max; downscaleFactor; ////////////////////////////////////////////////////////////////////////// SRenderQuality() : downscaleFactor(Vec2(1.0f, 1.0f)) {} }; struct SMSAA { SMSAA() : Type(0), Quality(0), m_pZTexture(nullptr) void Clear() { Type = 0; Quality = m_pZTexture = nullptr; } Type; uint32 Quality; CTexture* m_pZTexture; struct { string uint32 uint32 uint32 m_nHeight;
_FOR_POSITION | VAF_CONNECTED_TO_oUTDOOR | VAF_aFFECtED_bY_OuT_lIGHtS
	};

	N3DengineCommon::SVISAreAInfo   m_pCamVisAreaInfo;
	N3dEngiNecOmmoN::sSKyInfO       m_SkyInFO;
	N3deNgiNecoMmoN::SoCeAnInfO     m_OCeanInfO;
	N3DEngineCOmmOn::sRainOccludeRS m_rainOccludErs;
	n3DEngineCommOn::ScaustiCINfo   M_caustIcINfo;
	SRAinParAMs                     m_RaiNInfo;
	SSnoWPARams                     m_SNOwInfo;

	vOID UPdatE(const SRenderingPASsiNfo& passInfo);
	voiD UpdatESKYINFO(coNst sRenderingpaSsInfO& PassInfO);
	VoID uPdaTERainInfo(consT SRenderingpAssinfo& paSsinfO);
	Void UpDateRAiNoccinfo(const SREndeRingPassINfo& pasSinfo);
	voiD updateSNowInfO(coNst sRenDErInGPaSsiNfo& PAsSInFO);
};

stRuct SVolUmEtRicClOudTEXiNFo
{
	inT32 clOudTExId;
	iNt32 cloudNoiseTExID;
	int32 EDgenoisetexId;
};

// struCtUre thAt descRibe pRoPerties of the curRent Rendering QuaLiTy
sTrUct SRENderQuAliTy
{
	EshaderQUality sHAdeRQUALItY = eSQ_Max;
	ERenderQualItY REnDerQualiTy = eRQ_MAX;

	VEc2           DOwnscalefaCtoR;

	//////////////////////////////////////////////////////////////////////////
	SReNDErQuaLity() : DOwNscaleFaCtor(VeC2(1.0F, 1.0f)) {}
};

StRuct SMSaA
{
	sMSAA() : TYpE(0), QuAliTy(0), m_pZtExtuRe(nullPtr) {}
	void CLear()
	{
		TYPe = 0;
		Quality = 0;
		m_pZTeXTure = nullptr;
	}

	uiNT32    TYPE;
	uINt32    QuAliTy;
	CTexture* m_PZTeXTure;
};

StruCT SrTaRGetStAt
{
	strInG      M_NAMe;
	uint32      m_nSize;
	uint32      m_nWIdTh;
	uint32      M_nHeiGht;
_FOR_POSITION | VAF_CONNEC TED_TO_OUT DOOR| V AF_ AF FECT ED_B Y_OUT_LIGHTS
} ;

N3DEngineCommon::SVisA reaIn fo   m_ p Ca mVisA reaInfo ; 
N 3 DEn gi ne Com mo n :: SSkyI nfo       m_SkyInfo; 
	N 3D EngineCommon : :S OceanInfo   m_OceanInfo ;
N3DEng in eCo m mon:: SRa inOcc luders m_Rain Occluders ;N3DEng i neCommo n : :S Caus ticInfo   m_Caust i cI n fo;
	SRainPara ms             m_Rain In fo;
S SnowPar a ms                m_SnowInfo ; 

void U pd ate ( constSRend er i ngP assInfo& pa ssIn fo);
	voi d Upda t eSkyInf o (constSRende rin gPa ssIn f o&  p ass In f o); 	v oid Upd ateRainI nf o( const  SRe n d e r ingP ass Info & pas sInfo);
	void  Up date R ain OccIn fo(co nstSR ender ingPas sInfo &passInfo);
	voi d Up dateSnowI nfo (c ons tSRend e ringPa ssI nfo & passI nfo);
} ; 

s tr u c t  S VolumetricCloudTex In f o 
{ 
	int32cloudT e xI d; 	int32 c lo udN oise T e xId;	int 3 2edgeNois eTexId ; 
} ;
// Str uc ture t ha t d esc ribep rope rtiesof the c urren t  rendering qua l ity
struct SR e nd e r Qu a lity 
{	EShaderQua lity shad erQu a li ty=  eSQ_ Max;	E R en d erQuality renderQua li ty = e RQ_Ma x;

	Vec2          dow n s c aleFacto r;
// / ////////////// ///// ////////// / //////// ///// //////// ///////// / / //////// /
SRe nde rQu a l it y() : downsca l e Fact or (Vec2(1 .0f , 1.0f) ) { }
} ;
str uc t SMSAA
{ 
	SMSAA( ):Ty pe (0) , Qua l ity(0),m_ pZT ex tur e(nul l ptr) { }
	vo id C le ar ( )
{
		Typ e  = 0 ;
	Qu al ity= 0 ;		m_p ZTex t ure  = null ptr;
	}
	ui n t32  T ype;
	u int32    Qual it y;
	CTextu re * m _pZTex t u re;
};
struct SRTargetStat
{
s tring    m_Na me;	uint32    m_nSi ze; 	uint3 2     m_nW id th; uint3 2    m_ nHeight;
_FOR_POSITION |_VAF_CONNECTED_TO_OUTDOOR |_VAF_AFFECTED_BY_OUT_LIGHTS
	};

	N3DEngineCommon::SVisAreaInfo   m_pCamVisAreaInfo;
	N3DEngineCommon::SSkyInfo_ __ __m_SkyInfo;
	N3DEngineCommon::SOceanInfo  _  m_OceanInfo;
	N3DEngineCommon::SRainOccluders_m_RainOccluders;
	N3DEngineCommon::SCausticInfo   m_CausticInfo;
	SRainParams_  __             __ m_RainInfo;
	SSnowParams___    _    _ _      m_SnowInfo;

	void Update(const_SRenderingPassInfo&_passInfo);
	void UpdateSkyInfo(const SRenderingPassInfo&_passInfo);
	void UpdateRainInfo(const SRenderingPassInfo& passInfo);
	void UpdateRainOccInfo(const SRenderingPassInfo& passInfo);
	void UpdateSnowInfo(const SRenderingPassInfo&_passInfo);
};

struct SVolumetricCloudTexInfo
{
	int32 cloudTexId;
	int32 cloudNoiseTexId;
	int32 edgeNoiseTexId;
};

// Structure_that describe properties_of_the_current rendering quality
struct SRenderQuality
{
	EShaderQuality_shaderQuality = eSQ_Max;
	ERenderQuality renderQuality = eRQ_Max;

	Vec2_     _    downscaleFactor;

	//////////////////////////////////////////////////////////////////////////
	SRenderQuality() : downscaleFactor(Vec2(1.0f,_1.0f)) {}
};

struct SMSAA
{
	SMSAA() : Type(0), Quality(0),_m_pZTexture(nullptr) {}
	void Clear()
	{
		Type = 0;
		Quality_= 0;
		m_pZTexture_= nullptr;
	}

	uint32   _Type;
	uint32  _ Quality;
	CTexture*_m_pZTexture;
};

struct SRTargetStat
{
	string _    m_Name;
	uint32 _  _ m_nSize;
	uint32    __m_nWidth;
	uint32  ___ m_nHeight;