GBufferRenderModule
class GBufferRenderModule : public cauldron::RenderModule, public cauldron::ContentListenerGBuffer 渲染模块负责渲染所有已加载场景实体。如果初始化为执行此操作,还将输出当前帧的运动矢量。
继承自: public cauldron::RenderModule, public cauldron::ContentListener
公共接口
构造函数
GBufferRenderModule
inline GBufferRenderModule()构造。
属性: inline
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 62, column 5)
析构函数
~GBufferRenderModule
virtual ~GBufferRenderModule()销毁。
属性: virtual
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 67, column 13)
公共函数
初始化
virtual void Init(const json &initData) override初始化函数。设置目标指针和其他全局数据。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
initData | const json & | “ |
属性: virtual
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 72, column 10)
执行
virtual void Execute(double deltaTime, cauldron::CommandList *pCmdList) override渲染场景中所有活动的几何实体。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
属性: virtual
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 77, column 10)
OnNewContentLoaded
virtual void OnNewContentLoaded(cauldron::ContentBlock *pContentBlock) override内容加载时调用的回调,以便我们根据需要创建其他管线。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
pContentBlock | cauldron::ContentBlock * | “ |
属性: virtual
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 82, column 10)
OnContentUnloaded
virtual void OnContentUnloaded(cauldron::ContentBlock *pContentBlock) override内容卸载时调用的回调。允许我们根据需要进行清理。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
pContentBlock | cauldron::ContentBlock * | “ |
属性: virtual
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 87, column 10)
私有接口
私有函数
GetPipelinePermutationID
uint32_t GetPipelinePermutationID(const cauldron::Surface *pSurface)参数
| 名称 | 类型 | 默认 |
|---|---|---|
pSurface | const cauldron::Surface * | “ |
返回: uint32_t
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 95, column 14)
AddTexture
int32_t AddTexture(const cauldron::Material *pMaterial, const cauldron::TextureClass textureClass, int32_t &textureSamplerIndex)参数
| 名称 | 类型 | 默认 |
|---|---|---|
pMaterial | const cauldron::Material * | “ |
textureClass | const cauldron::TextureClass | “ |
textureSamplerIndex | int32_t & | “ |
返回: int32_t
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 96, column 14)
RemoveTexture
void RemoveTexture(int32_t index)参数
| 名称 | 类型 | 默认 |
|---|---|---|
index | int32_t | “ |
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 97, column 10)
私有成员
bool m_VariableShading
bool m_VariableShading = = false属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 101, column 37)
bool m_GenerateMotionVectors
bool m_GenerateMotionVectors = = false属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 102, column 37)
cauldron::RootSignature * m_pRootSignature
cauldron::RootSignature * m_pRootSignature = = nullptr属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 103, column 36)
cauldron::ParameterSet * m_pParameterSet
cauldron::ParameterSet * m_pParameterSet = = nullptr属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 104, column 36)
const cauldron::Texture * m_pAlbedoRenderTarget
const cauldron::Texture * m_pAlbedoRenderTarget = = nullptr属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 105, column 36)
const cauldron::Texture * m_pNormalRenderTarget
const cauldron::Texture * m_pNormalRenderTarget = = nullptr属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 106, column 36)
const cauldron::Texture * m_pAoRoughnessMetallicTarget
const cauldron::Texture * m_pAoRoughnessMetallicTarget = = nullptr属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 107, column 36)
const cauldron::Texture * m_pDepthTarget
const cauldron::Texture * m_pDepthTarget = = nullptr属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 108, column 36)
const cauldron::Texture * m_pMotionVector
const cauldron::Texture * m_pMotionVector = = nullptr属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 109, column 36)
std::vector<const cauldron::RasterView *> m_RasterViews
std::vector<const cauldron::RasterView *> m_RasterViews = = {}属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 110, column 17)
std::vector<BoundTexture> m_Textures
std::vector<BoundTexture> m_Textures属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 117, column 23)
std::vector<cauldron::Sampler *> m_Samplers
std::vector<cauldron::Sampler *> m_Samplers属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 118, column 17)
std::mutex m_CriticalSection
std::mutex m_CriticalSection属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 119, column 16)
std::vector<PipelineRenderGroup> m_PipelineRenderGroups
std::vector<PipelineRenderGroup> m_PipelineRenderGroups属性: private
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 136, column 28)
来源: framework/rendermodules/gbuffer/gbufferrendermodule.h (line 55, column 1)