// Copyright (C) 2009-present, Panagiotis Christopoulos Charitos and contributors. // All rights reserved. // Code licensed under the BSD License. // http://www.anki3d.org/LICENSE #pragma once #include namespace anki { /// @addtogroup renderer /// @{ /// VolumetricFog effects. class VolumetricFog : public RendererObject { public: Error init(); /// Populate the rendergraph. void populateRenderGraph(RenderingContext& ctx); RenderTargetHandle getRt() const { return m_runCtx.m_rt; } const Array& getVolumeSize() const { return m_volumeSize; } /// Get the last cluster split in Z axis that will be affected by lighting. U32 getFinalClusterInZ() const { return m_finalZSplit; } private: ShaderProgramResourcePtr m_prog; ShaderProgramPtr m_grProg; RenderTargetDesc m_rtDescr; U32 m_finalZSplit = 0; Array m_volumeSize; class { public: RenderTargetHandle m_rt; } m_runCtx; ///< Runtime context. }; /// @} } // end namespace anki