TranslucencyRenderModule
class TranslucencyRenderModule : public cauldron::RenderModule, public cauldron::ContentListenerTranslucency渲染模块负责以排序(从后往前)的方式渲染所有半透明的几何体和粒子。
依赖项: OptionalTransparencyOptions
继承自: public cauldron::RenderModule, public cauldron::ContentListener
公共接口
构造函数
TranslucencyRenderModule
inline TranslucencyRenderModule()构造。
属性: inline
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 78 行,第 5 列)
析构函数
~TranslucencyRenderModule
virtual ~TranslucencyRenderModule()销毁。
属性: virtual
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 83 行,第 13 列)
公共函数
初始化
virtual void Init(const json &initData) override初始化函数。设置目标指针和其他全局数据。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
initData | const json & | “ |
属性: virtual
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 88 行,第 10 列)
执行
virtual void Execute(double deltaTime, cauldron::CommandList *pCmdList) override渲染场景中所有活动的半透明几何体和粒子。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
属性: virtual
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 93 行,第 10 列)
OnNewContentLoaded
virtual void OnNewContentLoaded(cauldron::ContentBlock *pContentBlock) override当加载新内容时调用的回调函数,以便我们可以在需要时创建其他管线。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
pContentBlock | cauldron::ContentBlock * | “ |
属性: virtual
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 98 行,第 10 列)
OnContentUnloaded
virtual void OnContentUnloaded(cauldron::ContentBlock *pContentBlock) override内容卸载时调用的回调。允许我们根据需要进行清理。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
pContentBlock | cauldron::ContentBlock * | “ |
属性: virtual
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 103 行,第 10 列)
AddOptionalTransparencyOptions
void AddOptionalTransparencyOptions(const OptionalTransparencyOptions &options)设置要附加到创建的管线的可选透明度选项。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
options | const OptionalTransparencyOptions & | “ |
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 108 行,第 10 列)
私有接口
私有函数
CreatePipelineObject
uint32_t CreatePipelineObject(const cauldron::Surface *pSurface)参数
| 名称 | 类型 | 默认 |
|---|---|---|
pSurface | const cauldron::Surface * | “ |
返回: uint32_t
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 116 行,第 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/translucency/translucencyrendermodule.h (第 117 行,第 14 列)
RemoveTexture
void RemoveTexture(int32_t index)参数
| 名称 | 类型 | 默认 |
|---|---|---|
index | int32_t | “ |
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 118 行,第 10 列)
私有成员
bool m_VariableShading
bool m_VariableShading = = false属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 121 行,第 10 列)
uint32_t m_ShadowMapCount
uint32_t m_ShadowMapCount = = 0属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 122 行,第 21 列)
LightingCBData m_LightingConstantData
LightingCBData m_LightingConstantData属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 125 行,第 20 列)
cauldron::RootSignature * m_pRootSignature
cauldron::RootSignature * m_pRootSignature = = nullptr属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 127 行,第 36 列)
cauldron::ParameterSet * m_pParameterSet
cauldron::ParameterSet * m_pParameterSet = = nullptr属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 128 行,第 36 列)
const cauldron::Texture * m_pColorRenderTarget
const cauldron::Texture * m_pColorRenderTarget = = nullptr属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 130 行,第 36 列)
const cauldron::Texture * m_pDepthTarget
const cauldron::Texture * m_pDepthTarget = = nullptr属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 131 行,第 36 列)
std::vector<const cauldron::RasterView *> m_RasterViews
std::vector<const cauldron::RasterView *> m_RasterViews = = {}属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 133 行,第 17 列)
OptionalTransparencyOptions m_OptionalTransparencyOptions
OptionalTransparencyOptions m_OptionalTransparencyOptions = = {}属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 135 行,第 37 列)
std::vector<BoundTexture> m_Textures
std::vector<BoundTexture> m_Textures属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 142 行,第 23 列)
std::vector<cauldron::Sampler *> m_Samplers
std::vector<cauldron::Sampler *> m_Samplers属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 143 行,第 17 列)
std::mutex m_CriticalSection
std::mutex m_CriticalSection属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 144 行,第 16 列)
std::vector<PipelineHashObject> m_PipelineHashObjects
std::vector<PipelineHashObject> m_PipelineHashObjects属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 159 行,第 17 列)
std::vector<TranslucentRenderData> m_TranslucentRenderSurfaces
std::vector<TranslucentRenderData> m_TranslucentRenderSurfaces属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 170 行,第 17 列)
cauldron::RootSignature * m_pParticlesRenderRootSignature
cauldron::RootSignature * m_pParticlesRenderRootSignature = = nullptr属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 172 行,第 36 列)
cauldron::ParameterSet * m_pParticlesRenderParameters
cauldron::ParameterSet * m_pParticlesRenderParameters = = nullptr属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 173 行,第 36 列)
std::vector<PipelineHashObject> m_pParticlesRenderPipelineHashObjects
std::vector<PipelineHashObject> m_pParticlesRenderPipelineHashObjects属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 174 行,第 17 列)
cauldron::IndirectWorkload * m_pIndirectWorkload
cauldron::IndirectWorkload * m_pIndirectWorkload = = nullptr属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 176 行,第 32 列)
std::vector<ParticlesRenderData> m_RenderParticleSpawners
std::vector<ParticlesRenderData> m_RenderParticleSpawners属性: private
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 192 行,第 17 列)
被使用于: FSRRenderModule
来源: framework/rendermodules/translucency/translucencyrendermodule.h (第 71 行,第 1 列)