Post Process Effects
Scripting commands
Effect creation:
hndl = ppEffectCreate ["effect_type", priority];
hndls[] = ppEffectCreate [["effect_type0", priority0], ["effect_type1", priority1], ...];
Effect cancellation:
ppEffectDestroy hndl;
ppEffectDestroy [hndl0, hndl1, ..., hndlN];
Parameter setup:
hndl ppEffectAdjust [par0, par1, .... , parN];
Parameter application:
hndl ppEffectCommit time;
[hndl0, ..., hndlN] ppEffectCommit time;
Effect permission:
hndl ppEffectEnable OnOf;
[hndl0, ..., hndlN] ppEffectEnable OnOf;
Priority defines sequence in which are post effects applied.
Example
_hndl = ppEffectCreate ["colorCorrections", 1501];
_hndl ppEffectEnable true;
_hndl ppEffectAdjust [1.0, 1.0, 0.0, [1.0, 0.1, 1.0, 0.75], [0.0, 1.0, 1.0, 1.0], [0.199, 0.587, 0.114, 0.0]];
_hndl ppEffectCommit 0;
sleep 10;
ppEffectDestroy _hndl;
Table of priorities
Priority | PostEffect | Popis |
---|---|---|
2050 | FilmGrain | CfgOpticsEffect::TankCommanderOptics1(2) |
1550 | ColorCorrections | CfgOpticsEffect::TankGunnerOptics1(2) |
450 | DynamicBlur | CfgOpticsEffect::OpticsBlur1(2,3) |
250 | Chromatic Aberration | CfgOpticsEffect::OpticsCHAbera1(2,3) |
Parameters of individual effects
RadialBlur
Title: "RadialBlur"; Base Priority: 100
Will not do anything if RADIAL BLUR is disabled in Video Options.
Parameter | Meaning | Type | Range |
---|---|---|---|
powerX, powerY | relative blur degree on axes X,Y | float | 0... |
offsetX, offsetY | relative size (X,Y) of un-blurred centre | float | 0... |
Syntax:
hndRadBlur ppEffectAdjust [powerX, powerY, offsetX, offsetY];
Defaults:
hndRadBlur ppEffectAdjust [0.01, 0.01, 0.06, 0.06];
Copypaste example:
0 = ["RadialBlur", 100, [100, 0.5, 0.1, 0.5]] spawn {
params ["_name", "_priority", "_effect", "_handle"];
while {
_handle = ppEffectCreate [_name, _priority];
_handle < 0
} do {
_priority = _priority + 1;
};
_handle ppEffectEnable true;
_handle ppEffectAdjust _effect;
_handle ppEffectCommit 5;
waitUntil {ppEffectCommitted _handle};
uiSleep 3;
comment "admire effect for a sec";
_handle ppEffectEnable false;
ppEffectDestroy _handle;
};
ChromAberration
Title "ChromAberration"; Base Priority: 200
Parameter | Meaning | Type | Range |
---|---|---|---|
aberationPowerX, aberationPowerY | relative effect strength (sample spacing from each other) axes X, Y | float | |
correction | correction according to screen aspect ratio | bool |
Syntax:
hndlChromAberr ppEffectAdjust [aberationPowerX, aberationPowerY, correction];
Defaults:
hndlChromAberr ppEffectAdjust [0.005, 0.005, false];
Copypaste example:
0 = ["ChromAberration", 200, [0.05, 0.05, true]] spawn {
params ["_name", "_priority", "_effect", "_handle"];
while {
_handle = ppEffectCreate [_name, _priority];
_handle < 0
} do {
_priority = _priority + 1;
};
_handle ppEffectEnable true;
_handle ppEffectAdjust _effect;
_handle ppEffectCommit 5;
waitUntil {ppEffectCommitted _handle};
uiSleep 3;
comment "admire effect for a sec";
_handle ppEffectEnable false;
ppEffectDestroy _handle;
};
WetDistortion
Title: "WetDistortion"; Base Priority: 300
Effect cancels automatically under water.
Parameter | Meaning | Type | Range |
---|---|---|---|
value | effect blurriness (0 to 1, values above 1 cause unusual) | float | 0...1 |
top, bottom | effect power (top/bottom of screen separately) | float | 0...1 |
horizontal1, horizontal2, vertical1, vertical2 | waves speeds (frequency/PI) | float | |
horizontal1, horizontal2, vertical1, vertical2 | waves amplitudes | float | |
randX, randY, posX, posY | phase coefficients: random value influence coefficient inside vertex | float |
Syntax:
hndlWetDist ppEffectAdjust [
value,
top, bottom,
horizontal1, horizontal2, vertical1, vertical2,
horizontal1, horizontal2, vertical1, vertical2,
randX, randY, posX, posY
];
Defaults:
hndlWetDist ppEffectAdjust [
1,
1, 1,
4.10, 3.70, 2.50, 1.85,
0.0054, 0.0041, 0.0090, 0.0070,
0.5, 0.3, 10.0, 6.0
];
Copypaste example:
0 = ["WetDistortion", 300, [
1,
0, 1,
4.10, 3.70, 2.50, 1.85,
0.0054, 0.0041, 0.05, 0.0070,
1, 1, 1, 1
]] spawn {
params ["_name", "_priority", "_effect", "_handle"];
while {
_handle = ppEffectCreate [_name, _priority];
_handle < 0
} do {
_priority = _priority + 1;
};
_handle ppEffectEnable true;
_handle ppEffectAdjust _effect;
_handle ppEffectCommit 5;
waitUntil {ppEffectCommitted _handle};
uiSleep 3;
comment "admire effect for a sec";
_handle ppEffectEnable false;
ppEffectDestroy _handle;
};
ColorCorrections
Title: "ColorCorrections"; Base Priority: 1500
Parameter | Meaning | Type | Range |
---|---|---|---|
brightness | image brightness (0 - black, 1 - unchanged, 2 - white ) | float | 0...2 |
contrast | image contrast (1 - normal contrast) | float | 0... |
offset | image contrast offset (0 - unchanged ) | float | |
blendR, blendG, blendB, blendA | color for blending ( R,G,B - color, A - blend factor (0 - original color, 1 - blend color )) | float | 0...1 |
colorizeR, colorizeG, colorizeB, colorizeA | color for colorization ( R,G,B - color, A - saturation (0 - original color, 1 - B&W multiplied by colorize color)) | float | 0...1 |
weightR, weightG, weightB, NA | RGB weights for desaturation (0.299, 0.587, 0.114, NA) | float |
Syntax:
hndlClrCorr ppEffectAdjust [
brightness,
contrast,
offset,
blendR, blendG, blendB, blendA,
colorizeR, colorizeG, colorizeB, colorizeA,
weightR, weightG, weightB, NA
];
Defaults:
hndlClrCorr ppEffectAdjust [
1,
1,
0,
0, 0, 0, 0,
1, 1, 1, 1,
0.299, 0.587, 0.114, 0
];
Copypaste example:
0 = ["ColorCorrections", 1500, [
1,
0.4,
0,
0, 0, 0, 0,
1, 1, 1, 0,
1, 1, 1, 0
]] spawn {
params ["_name", "_priority", "_effect", "_handle"];
while {
_handle = ppEffectCreate [_name, _priority];
_handle < 0
} do {
_priority = _priority + 1;
};
_handle ppEffectEnable true;
_handle ppEffectAdjust _effect;
_handle ppEffectCommit 5;
waitUntil {ppEffectCommitted _handle};
uiSleep 3;
comment "admire effect for a sec";
_handle ppEffectEnable false;
ppEffectDestroy _handle;
};
DynamicBlur
Title: "DynamicBlur"; Base Priority: 400
Parameter | Meaning | Type | Range |
---|---|---|---|
value | blurriness | float | 0... |
Syntax:
hndlDynBlur ppEffectAdjust [value];
Defaults:
hndlDynBlur ppEffectAdjust [0];
Copypaste example:
0 = ["DynamicBlur", 400, [10]] spawn {
params ["_name", "_priority", "_effect", "_handle"];
while {
_handle = ppEffectCreate [_name, _priority];
_handle < 0
} do {
_priority = _priority + 1;
};
_handle ppEffectEnable true;
_handle ppEffectAdjust _effect;
_handle ppEffectCommit 5;
waitUntil {ppEffectCommitted _handle};
uiSleep 3;
comment "admire effect for a sec";
_handle ppEffectEnable false;
ppEffectDestroy _handle;
};
FilmGrain
Title: "FilmGrain"; Base Priority 2000
Number of parameters is flexible ... it may be defined 1 to 6 parameters, meaning of individual parameters is following:
Parameter | Meaning | Type | Range |
---|---|---|---|
intensity | intensity | float | 0...1 |
sharpness | sharpness | float | 0...20 |
grainSize | grain size | float | 1...8 |
intensityX0 | intensityX0 | float | |
intensityX1 | intensityX1 | float | |
monochromatic | monochromatic | bool |
Syntax:
hndlFilmGrain ppEffectAdjust [
intensity,
sharpness,
grainSize,
intensityX0,
intensityX1,
monochromatic
];
Defaults:
hndlFilmGrain ppEffectAdjust [
0.1,
1.5,
1.7,
0.2,
1.0,
true
];
Copypaste example:
0 = ["FilmGrain", 2000, [
1,
0.15,
7,
0.2,
1.0,
true
]] spawn {
params ["_name", "_priority", "_effect", "_handle"];
while {
_handle = ppEffectCreate [_name, _priority];
_handle < 0
} do {
_priority = _priority + 1;
};
_handle ppEffectEnable true;
_handle ppEffectAdjust _effect;
_handle ppEffectCommit 5;
waitUntil {ppEffectCommitted _handle};
uiSleep 3;
comment "admire effect for a sec";
_handle ppEffectEnable false;
ppEffectDestroy _handle;
};
ColorInversion
Title: "ColorInversion"; Base Priority: 2500
Parameter | Meaning | Type | Range |
---|---|---|---|
Red | Inversion of R channel | float | 0...2 |
Green | Inversion of G channel | float | 0...2 |
Blue | Inversion of B channel | float | 0...2 |
Syntax:
hndlClrInversion ppEffectAdjust [Red, Green, Blue];
Defaults:
hndlClrInversion ppEffectAdjust [0, 0, 0];
Copypaste example:
0 = ["ColorInversion", 2500, [0.5, 0.5, 0.5]] spawn {
params ["_name", "_priority", "_effect", "_handle"];
while {
_handle = ppEffectCreate [_name, _priority];
_handle < 0
} do {
_priority = _priority + 1;
};
_handle ppEffectEnable true;
_handle ppEffectAdjust _effect;
_handle ppEffectCommit 5;
waitUntil {ppEffectCommitted _handle};
uiSleep 3;
comment "admire effect for a sec";
_handle ppEffectEnable false;
ppEffectDestroy _handle;
};
See also: ppEffectAdjust, ppEffectCommit, ppEffectCommitted, ppEffectCreate, ppEffectDestroy, ppEffectEnable, ppEffectEnabled, ppEffectForceInNVG