Add Volumetric Fog support for particles to modify local fog

This commit is contained in:
Wojtek Figat
2021-03-05 13:56:07 +01:00
parent dfb502621d
commit 1dee615d6e
22 changed files with 726 additions and 84 deletions

View File

@@ -296,6 +296,21 @@ bool MaterialGenerator::Generate(WriteStream& source, MaterialInfo& materialInfo
eatMaterialGraphBoxWithDefault(baseLayer, MaterialGraphBoxes::Refraction);
eatMaterialGraphBoxWithDefault(baseLayer, MaterialGraphBoxes::SubsurfaceColor);
}
else if (baseLayer->Domain == MaterialDomain::VolumeParticle)
{
eatMaterialGraphBox(baseLayer, MaterialGraphBoxes::Emissive);
eatMaterialGraphBox(baseLayer, MaterialGraphBoxes::Opacity);
eatMaterialGraphBox(baseLayer, MaterialGraphBoxes::Mask);
eatMaterialGraphBox(baseLayer, MaterialGraphBoxes::Color);
eatMaterialGraphBoxWithDefault(baseLayer, MaterialGraphBoxes::Normal);
eatMaterialGraphBoxWithDefault(baseLayer, MaterialGraphBoxes::Metalness);
eatMaterialGraphBoxWithDefault(baseLayer, MaterialGraphBoxes::Specular);
eatMaterialGraphBoxWithDefault(baseLayer, MaterialGraphBoxes::AmbientOcclusion);
eatMaterialGraphBoxWithDefault(baseLayer, MaterialGraphBoxes::Roughness);
eatMaterialGraphBoxWithDefault(baseLayer, MaterialGraphBoxes::Refraction);
eatMaterialGraphBoxWithDefault(baseLayer, MaterialGraphBoxes::SubsurfaceColor);
}
else
{
CRASH;
@@ -422,6 +437,9 @@ bool MaterialGenerator::Generate(WriteStream& source, MaterialInfo& materialInfo
case MaterialDomain::Deformable:
srv = 1; // Mesh deformation buffer
break;
case MaterialDomain::VolumeParticle:
srv = 1; // Particles data
break;
}
for (auto f : features)
{
@@ -504,6 +522,9 @@ bool MaterialGenerator::Generate(WriteStream& source, MaterialInfo& materialInfo
case MaterialDomain::Deformable:
path /= TEXT("Deformable.shader");
break;
case MaterialDomain::VolumeParticle:
path /= TEXT("VolumeParticle.shader");
break;
default:
LOG(Warning, "Unknown material domain.");
return true;