Add Global Illumination sampling option to transparent materials (eg. particles)

This commit is contained in:
Wojciech Figat
2022-07-14 14:28:42 +02:00
parent 4cc7bb96f5
commit 0d8ebd332e
10 changed files with 113 additions and 2 deletions

View File

@@ -5,6 +5,7 @@
#include "MaterialShader.h"
#include "Engine/Core/Math/Rectangle.h"
#include "Engine/Core/Types/Span.h"
#include "Engine/Renderer/GI/DynamicDiffuseGlobalIllumination.h"
// Material shader features are plugin-based functionalities that are reusable between different material domains.
struct MaterialShaderFeature
@@ -74,6 +75,22 @@ struct LightmapFeature : MaterialShaderFeature
#endif
};
// Material shader feature that adds Global Illumination sampling feature (light probes).
struct GlobalIlluminationFeature : MaterialShaderFeature
{
enum { SRVs = 3 };
PACK_STRUCT(struct Data
{
DynamicDiffuseGlobalIlluminationPass::ConstantsData DDGI;
});
static bool Bind(MaterialShader::BindParameters& params, Span<byte>& cb, int32& srv);
#if USE_EDITOR
static void Generate(GeneratorData& data);
#endif
};
// Material shader feature that adds distortion vectors rendering pass.
struct DistortionFeature : MaterialShaderFeature
{