DragonNest/Common/EternityEngine/EtShadowMap.h
Cussrro 47f7895977 Revert "修复编码问题"
This reverts commit 9e69c01767.
2024-12-21 10:04:04 +08:00

78 lines
1.9 KiB
C++

#pragma once
class CEtShadowMap;
extern CEtShadowMap *g_pEtShadowMap;
class CEtShadowMap
{
public:
CEtShadowMap(void);
virtual ~CEtShadowMap(void);
void Clear();
protected:
int m_nShadowMapSize;
ShadowQuality m_ShadowQuality;
ShadowType m_ShadowType;
EtFormat m_ShadowMapFormat;
EtMatrix m_LightViewMat;
EtMatrix m_LightProjMat;
EtMatrix m_LightProjDepthMat;
float m_fShadowRange;
EtColor m_ShadowColor;
EtTextureHandle m_hShadowMap;
EtTextureHandle m_hBlurShadowMap;
EtDepthHandle m_hShadowMapDepth;
float m_fDistanceLightAt;
EtSurface *m_pBackupRenderTarget;
EtSurface *m_pBackupDepthTarget;
bool m_bEnable;
EtMaterialHandle m_hShadowMaterial;
std::vector< SCustomParam > m_vecCustomParam;
int m_nVertexDecl;
bool m_bUseSoftShadow;
public:
virtual void Initialize( ShadowQuality Quality, ShadowType Type );
void ResetRenderTarget();
bool IsEnable() { return m_bEnable; }
EtMatrix *GetLightViewMat() { return &m_LightViewMat; }
EtMatrix *GetLightProjMat() { return &m_LightProjMat; }
EtMatrix *GetLightProjDepthMat() { return &m_LightProjDepthMat; }
float GetShadowRange() { return m_fShadowRange; }
void SetShadowRange( float fRange ) { m_fShadowRange = fRange; }
void SetShadowQuality( ShadowQuality Quality ) { m_ShadowQuality = Quality; }
ShadowQuality GetShadowQuality() { return m_ShadowQuality; }
EtColor *GetShadowColor() { return &m_ShadowColor; }
void SetShadowColor( EtColor &Color ) { m_ShadowColor = Color; }
void DownSampling();
void ClearBuffer();
EtBaseTexture *GetShadowMapTexture();
virtual void DebugRender();
virtual void CalcShadowMat();
virtual void BeginShadow();
virtual void EndShadow();
void ResetShadowMap();
void LoadMaterial();
void Bake( CEtRenderStack *pStack );
virtual float GetObjectScale() { return 1.f; }
};
CEtShadowMap *GetEtShadowMap();
void DeleteShadowMap();
void CreateSimpleSahdowMap( ShadowQuality Quality, ShadowType Type );