SkyDomeRenderModule
class SkyDomeRenderModule : public cauldron::RenderModuleSkyDomeRenderModule 负责渲染设置的 ibl 地图到背景或生成程序化天空。
依赖项: UpscalerInformation
继承自: public cauldron::RenderModule
公共接口
构造函数
SkyDomeRenderModule
inline SkyDomeRenderModule()构造。
属性: inline
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 58 行, 第 5 列)
析构函数
~SkyDomeRenderModule
virtual ~SkyDomeRenderModule()销毁。
属性: virtual
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 63 行, 第 13 列)
公共函数
初始化
virtual void Init(const json &initData) override初始化函数。设置资源指针、管道对象、根签名和参数集。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
initData | const json & | “ |
属性: virtual
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 68 行, 第 10 列)
执行
virtual void Execute(double deltaTime, cauldron::CommandList *pCmdList) override调用通用函数。如果时间改变,则调用 ExecuteSkydomeGeneration。最后,调用 ExecuteSkydomeRender。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
属性: virtual
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 73 行, 第 10 列)
ExecuteSkydomeGeneration
void ExecuteSkydomeGeneration(cauldron::CommandList *pCmdList)程序化生成天穹。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
pCmdList | cauldron::CommandList * | “ |
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 78 行, 第 10 列)
ExecuteSkydomeRender
void ExecuteSkydomeRender(cauldron::CommandList *pCmdList)将天穹渲染到颜色渲染目标。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
pCmdList | cauldron::CommandList * | “ |
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 83 行, 第 10 列)
私有接口
私有函数
InitSkyDome
void InitSkyDome()源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 91 行, 第 10 列)
InitProcedural
void InitProcedural()源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 92 行, 第 10 列)
InitSampleDirections
void InitSampleDirections()源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 93 行, 第 10 列)
InitSunlight
void InitSunlight()源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 94 行, 第 10 列)
UpdateSunDirection
void UpdateSunDirection()源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 96 行, 第 10 列)
TextureLoadComplete
void TextureLoadComplete(const std::vector<const cauldron::Texture *> &textureList, void *)参数
| 名称 | 类型 | 默认 |
|---|---|---|
textureList | const std::vector<const cauldron::Texture *> & | “ |
| “ | void * | “ |
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 99 行, 第 10 列)
私有成员
bool m_IsProcedural
bool m_IsProcedural = = false属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 102 行, 第 33 列)
bool m_pShouldRunSkydomeGeneration
bool m_pShouldRunSkydomeGeneration = = true属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 103 行, 第 33 列)
std::atomic_bool m_CubemapGenerateReady
std::atomic_bool m_CubemapGenerateReady = = true属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 104 行, 第 33 列)
std::atomic_bool m_CubemapCopyReady
std::atomic_bool m_CubemapCopyReady = = false属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 105 行, 第 33 列)
SkydomeCBData m_SkydomeConstantData
SkydomeCBData m_SkydomeConstantData属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 106 行, 第 20 列)
const cauldron::Texture * m_pSkyTexture
const cauldron::Texture * m_pSkyTexture = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 107 行, 第 32 列)
const cauldron::Texture * m_pSkyTextureGenerated
const cauldron::Texture * m_pSkyTextureGenerated = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 108 行, 第 29 列)
uint32_t m_pWidth
uint32_t m_pWidth属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 109 行, 第 14 列)
uint32_t m_pHeight
uint32_t m_pHeight属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 110 行, 第 14 列)
cauldron::RootSignature * m_pRootSignatureSkyDomeGeneration
cauldron::RootSignature * m_pRootSignatureSkyDomeGeneration = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 113 行, 第 29 列)
cauldron::PipelineObject * m_pPipelineObjEnvironmentCube
cauldron::PipelineObject * m_pPipelineObjEnvironmentCube = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 114 行, 第 30 列)
cauldron::ParameterSet * m_pParametersEnvironmentCube
cauldron::ParameterSet * m_pParametersEnvironmentCube = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 115 行, 第 28 列)
ProceduralCBData m_pProceduralConstantData
ProceduralCBData m_pProceduralConstantData属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 116 行, 第 25 列)
cauldron::LightComponentData m_pSunlightCompData
cauldron::LightComponentData m_pSunlightCompData = = {}属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 117 行, 第 34 列)
cauldron::LightComponent * m_pSunlightComponent
cauldron::LightComponent * m_pSunlightComponent = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 118 行, 第 33 列)
cauldron::Entity * m_pSunlight
cauldron::Entity * m_pSunlight = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 119 行, 第 33 列)
UpscalerInformation m_pUpscalerInfo
UpscalerInformation m_pUpscalerInfo属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 120 行, 第 25 列)
cauldron::RootSignature * m_pRootSignatureApplySkydome
cauldron::RootSignature * m_pRootSignatureApplySkydome = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 123 行, 第 29 列)
cauldron::PipelineObject * m_pPipelineObjApplySkydome
cauldron::PipelineObject * m_pPipelineObjApplySkydome = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 124 行, 第 30 列)
cauldron::ParameterSet * m_pParametersApplySkydome
cauldron::ParameterSet * m_pParametersApplySkydome = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 125 行, 第 28 列)
const cauldron::Texture * m_pRenderTarget
const cauldron::Texture * m_pRenderTarget = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 126 行, 第 32 列)
const cauldron::Texture * m_pDepthTarget
const cauldron::Texture * m_pDepthTarget = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 127 行, 第 32 列)
std::vector<const cauldron::RasterView *> m_pRasterViews
std::vector<const cauldron::RasterView *> m_pRasterViews = = {}属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 128 行, 第 17 列)
cauldron::CommandList * m_pComputeCmdList
cauldron::CommandList * m_pComputeCmdList = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 131 行, 第 27 列)
uint64_t m_SignalValue
uint64_t m_SignalValue = = 0属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 132 行, 第 28 列)
const cauldron::Texture * m_pIrradianceCube
const cauldron::Texture * m_pIrradianceCube = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 134 行, 第 30 列)
const cauldron::Texture * m_pIrradianceCubeGenerated
const cauldron::Texture * m_pIrradianceCubeGenerated = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 135 行, 第 30 列)
cauldron::PipelineObject * m_pPipelineObjIrradianceCube
cauldron::PipelineObject * m_pPipelineObjIrradianceCube = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 136 行, 第 30 列)
cauldron::ParameterSet * m_pParametersIrradianceCube
cauldron::ParameterSet * m_pParametersIrradianceCube = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 137 行, 第 30 列)
const cauldron::Texture * m_pPrefilteredCube
const cauldron::Texture * m_pPrefilteredCube = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 139 行, 第 43 列)
const cauldron::Texture * m_pPrefilteredCubeGenerated
const cauldron::Texture * m_pPrefilteredCubeGenerated = = nullptr属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 140 行, 第 43 列)
std::vector<const cauldron::Buffer *> m_pSampleDirections
std::vector<const cauldron::Buffer *> m_pSampleDirections = = {}属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 141 行, 第 19 列)
std::vector<cauldron::PipelineObject *> m_pPipelineObjPrefilteredCube
std::vector<cauldron::PipelineObject *> m_pPipelineObjPrefilteredCube = = {}属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 142 行, 第 17 列)
std::vector<cauldron::ParameterSet *> m_pParametersPrefilteredCube
std::vector<cauldron::ParameterSet *> m_pParametersPrefilteredCube = = {}属性: private
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 143 行, 第 19 列)
源文件: framework/rendermodules/skydome/skydomerendermodule.h (第 51 行, 第 1 列)