#include <TerrainClipmapManager.h>
Inherits TerrainMacroMaterialNotificationBus::Handler, TerrainAreaMaterialNotificationBus::Handler, and AzFramework::Terrain::TerrainDataNotificationBus::Handler.
Public Types | |
enum | ClipmapName : uint32_t { MacroColor = 0 , MacroNormal , DetailColor , DetailNormal , DetailHeight , DetailRoughness , DetailSpecularF0 , DetailMetalness , DetailOcclusion , Count } |
Name for each clipmap image. | |
Public Member Functions | |
AZ_RTTI (TerrainClipmapManager, "{5892AEE6-F3FA-4DFC-BBEC-77E1B91506A2}") | |
AZ_DISABLE_COPY_MOVE (TerrainClipmapManager) | |
void | SetConfiguration (const ClipmapConfiguration &config) |
bool | IsClipmapEnabled () const |
void | Initialize (AZ::Data::Instance< AZ::RPI::ShaderResourceGroup > &terrainSrg) |
bool | IsInitialized () const |
void | Reset () |
void | TriggerFullRefresh () |
Reset full refresh flag so that all the clipmap image will be repainted. | |
void | UpdateSrgIndices (AZ::Data::Instance< AZ::RPI::ShaderResourceGroup > &srg) |
void | Update (const AZ::Vector3 &cameraPosition, const AZ::RPI::Scene *scene, AZ::Data::Instance< AZ::RPI::ShaderResourceGroup > &terrainSrg) |
void | ImportClipmap (ClipmapName clipmapName, AZ::RHI::FrameGraphAttachmentInterface attachmentDatabase) const |
void | UseClipmap (ClipmapName clipmapName, AZ::RHI::ScopeAttachmentAccess access, AZ::RHI::FrameGraphInterface frameGraph) const |
AZ::Data::Instance< AZ::RPI::AttachmentImage > | GetClipmapImage (ClipmapName clipmapName) const |
Get the clipmap images for passes using them. | |
void | GetMacroDispatchThreadNum (uint32_t &outThreadX, uint32_t &outThreadY, uint32_t &outThreadZ) const |
Get the dispatch thread num for the clipmap compute shader based on the current frame. | |
void | GetDetailDispatchThreadNum (uint32_t &outThreadX, uint32_t &outThreadY, uint32_t &outThreadZ) const |
uint32_t | GetClipmapSize () const |
Get the size of the clipmap from config. | |
bool | HasMacroClipmapUpdate () const |
Returns if there are clipmap regions requiring update. | |
bool | HasDetailClipmapUpdate () const |
Static Public Attributes | |
static constexpr const char * | ClipmapDataShaderInput = "m_clipmapData" |
Shader input names. | |
static constexpr const char * | ClipmapImageShaderInput [ClipmapName::Count] |
Friends | |
class | TerrainClipmapGenerationPass |
This class manages all terrain clipmaps' creation and update. It should be owned by the TerrianFeature Processor and provide data and images for the ClipmapGenerationPass and terrain forward rendering pass.
void Terrain::TerrainClipmapManager::ImportClipmap | ( | ClipmapName | clipmapName, |
AZ::RHI::FrameGraphAttachmentInterface | attachmentDatabase | ||
) | const |
Import the clipmap to the frame graph and set scope attachment access, so that the compute pass can build dependencies accordingly.
|
staticconstexpr |