class CREWaterVolume : public CRendElementBase;
CREWaterVolume.h
struct SOceanParams { Vec3 m_fogColor; Vec3 m_fogColorShallow; float m_fogDensity; };
CREWaterVolume.h
Vec3 m_fogColor;
Vec3 m_fogColorShallow;
float m_fogDensity;
SOceanParams();
struct SParams { const SVF_P3F_C4B_T2F* m_pVertices; const uint16* m_pIndices; size_t m_numVertices; size_t m_numIndices; Vec3 m_center; AABB m_WSBBox; Plane m_fogPlane; float m_fogDensity; Vec3 m_fogColor; bool m_fogColorAffectedBySun; float m_fogShadowing; bool m_caustics; float m_causticIntensity; float m_causticTiling; float m_causticHeight; bool m_viewerInsideVolume; bool m_viewerCloseToWaterPlane; bool m_viewerCloseToWaterVolume; };
CREWaterVolume.h
float m_causticHeight;
float m_causticIntensity;
bool m_caustics;
float m_causticTiling;
Vec3 m_center;
Vec3 m_fogColor;
bool m_fogColorAffectedBySun;
float m_fogDensity;
Plane m_fogPlane;
float m_fogShadowing;
size_t m_numIndices;
size_t m_numVertices;
const uint16* m_pIndices;
const SVF_P3F_C4B_T2F* m_pVertices;
bool m_viewerCloseToWaterPlane;
bool m_viewerCloseToWaterVolume;
bool m_viewerInsideVolume;
AABB m_WSBBox;
SParams();
bool m_drawFastPath;
bool m_drawWaterSurface;
const SOceanParams* m_pOceanParams;
const SParams* m_pParams;
virtual ~CREWaterVolume();
CREWaterVolume();
virtual void GetMemoryUsage(ICrySizer * pSizer) const;
virtual void mfCenter(Vec3& vCenter, CRenderObject * pObj);
virtual bool mfDraw(CShader* ef, SShaderPass* sfm);
virtual void mfGetPlane(Plane& pl);
virtual void mfPrepare(bool bCheckOverflow);
False - mergable, True - static mesh