//!FilmGrain - PostProcessEffectType.FilmGrain
/*!
Be advised, for this to take any effect, 'g_Game.NightVissionLightParams' needs to have non-zero 'noiseIntensity' parameter.
/note set by 'PPELightIntensityParamsNative.PARAM_NOISE_MULT' currently
*/
class PPEFilmGrain: PPEClassBase
{
static const int PARAM_INTENSITY = 0;
static const int PARAM_SHARPNESS = 1;
static const int PARAM_GRAINSIZE = 2;
static const int PARAM_INTENSITYX0 = 3;
static const int PARAM_INTENSITYX1 = 4;
static const int PARAM_MONOCHROMATIC = 5;
static const int PARAM_SIMPLE = 6;
static const int PARAM_DISTORT = 7;
static const int PARAM_FREQUENCY = 8;
//static const int PARAM_NOISEMAP = 9;
static const int L_1_NVG = 100;
static const int L_1_TOXIC_TINT = 200;
static const int L_2_NVG = 100;
static const int L_2_TOXIC_TINT = 200;
override int GetPostProcessEffectID()
{
return PostProcessEffectType.FilmGrain;
}
override string GetDefaultMaterialPath()
{
return "Graphics/Materials/postprocess/filmgrainNV"; //TODO - differentiate between filmgrainNV?
}
override void RegisterMaterialParameters()
{
RegisterParameterScalarFloat(PARAM_INTENSITY,"Intensity",0.0,0.0,1.0);
RegisterParameterScalarFloat(PARAM_SHARPNESS,"Sharpness",2.35,0.0,20.0);
RegisterParameterScalarFloat(PARAM_GRAINSIZE,"GrainSize",2.75,1.0,9.0);
RegisterParameterScalarFloat(PARAM_INTENSITYX0,"IntensityX0",0.0,0.0,1.0);
RegisterParameterScalarFloat(PARAM_INTENSITYX1,"IntensityX1",0.0,0.0,1.0);
RegisterParameterScalarBool(PARAM_MONOCHROMATIC,"Monochromatic",true);
RegisterParameterScalarBool(PARAM_SIMPLE,"Simple",false);
RegisterParameterScalarBool(PARAM_DISTORT,"Distort",true);
RegisterParameterScalarFloat(PARAM_FREQUENCY,"Frequency",20.0,1.0,1000.0);
//RegisterParameterTexture(PARAM_NOISEMAP,"NoiseMap","{0B1C7AEDC4645C8A}System/textures/noise.edds");
}
}