Post Process Effects

From Bohemia Interactive Community
Revision as of 21:08, 8 November 2018 by Killzone Kid (talk | contribs) (→‎Advanced effects: priority)
Jump to navigation Jump to search

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;

Check if enabled (Since Arma 3 logo black.png1.55):

ppEffectEnabled hndl;

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 Description
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

RadialBlur will not do anything if RADIAL BLUR is disabled in Video Options
Parameter Meaning Type Range Defaults
powerX relative blur degree on axis X float 0... 0.01
powerY relative blur degree on axis Y float 0... 0.01
offsetX relative size X of un-blurred centre float 0... 0.06
offsetY relative size Y of un-blurred centre float 0... 0.06

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}; systemChat "admire effect for a sec"; uiSleep 3; _handle ppEffectEnable false; ppEffectDestroy _handle; };

ChromAberration

Title "ChromAberration"; Base Priority: 200

Parameter Meaning Type Range Defaults
aberrationPowerX relative effect strength (sample spacing from each other) axis X float 0... 0.005
aberrationPowerY relative effect strength (sample spacing from each other) axis Y float 0... 0.005
aspectCorrection enable/disable correction according to screen aspect ratio bool true, false false

Syntax: hndlChromAberr ppEffectAdjust [aberrationPowerX, aberrationPowerY, aspectCorrection];

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}; systemChat "admire effect for a sec"; uiSleep 3; _handle ppEffectEnable false; ppEffectDestroy _handle; };

WetDistortion

Title: "WetDistortion"; Base Priority: 300

Effect cancels automatically under water.

Parameter Meaning Type Range Defaults
value blurriness of distorted image (0 to 1, values above 1 cause unusual) float 0..1 1
top, bottom effect power (top/bottom of screen separately) float 0..1 1, 1
horizontal1, horizontal2, vertical1, vertical2 waves speeds (frequency/PI) float 0... 4.10, 3.70, 2.50, 1.85
horizontal1, horizontal2, vertical1, vertical2 waves amplitudes (delta texture coordinates) float 0... 0.0054, 0.0041, 0.0090, 0.0070
randX, randY coefficients for phase computing; weight of random vertex data on horizontal/vertical wave phases float 0... 0.5, 0.3
posX, posY coefficients for phase computing; weight of vertex X/Y-position on horizontal/vertical wave phases float 0... 10.0, 6.0

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}; systemChat "admire effect for a sec"; uiSleep 3; _handle ppEffectEnable false; ppEffectDestroy _handle; };

ColorCorrections

Title: "ColorCorrections"; Base Priority: 1500

Parameter Meaning Type Range Defaults
brightness image brightness (0 - black, 1 - unchanged, 2 - white ) float 0..2 1
contrast image contrast (1 - normal contrast) float 0... 1
offset image contrast offset (0 - unchanged ) float 0... 0
[r, g, b, a] color for blending (r, g, b - color, a - blend factor (0 - original color, 1 - blend color )) float 0..1 [0, 0, 0, 0]
[r, g, b, a] color for colorization ( r, g, b - color, a - saturation (0 - original color, 1 - B&W multiplied by colorize color)) float 0..1 [1, 1, 1, 1]
[r, g, b, 0] color rgb weights for desaturation float 0..1 [0.299, 0.587, 0.114, 0]
[

    radialMajorAxisRadius,
    radialMinorAxisRadius,
    radialRotationDeg,
    radialCenterX,
    radialCenterY,
    radialInnerRadiusCoef,
    radialInterpCoef
]

radial color (optional, Arma 3 only)

major axis radius of ellipse
minor axis radius of ellipse
rotation of ellipse axis (in degrees)
centerX of ellipse on the screen (in relative coords, [-0.5] -> [0.5], where 0 is in the screen center)
centerY of ellipse on the screen (in relative coords, [-0.5] -> [0.5], where 0 is in the screen center)
coefficient for inner radius (where effect is not applied)
coefficient for color interpolation between inner and outer radius
 


float
float
float
float
float
float
float
 


0..1
0..1
0..359
-1..1
-1..1
0..1
0...
 

[
    -1,
    -1,
    0,
    0,
    0,
    0,
    0
]

Syntax: hndlClrCorr ppEffectAdjust [ brightness, contrast, offset, [blendR, blendG, blendB, blendA], [colorizeR, colorizeG, colorizeB, colorizeA], [weightR, weightG, weightB, 0], [a, b, angle, cx, cy, innerRCoef, interpCoef] ];

Defaults: hndlClrCorr ppEffectAdjust [ 1, 1, 0, [0, 0, 0, 0], [1, 1, 1, 1], [0.299, 0.587, 0.114, 0], [-1, -1, 0, 0, 0, 0, 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}; systemChat "admire effect for a sec"; uiSleep 3; _handle ppEffectEnable false; ppEffectDestroy _handle; };

DynamicBlur

Title: "DynamicBlur"; Base Priority: 400

Parameter Meaning Type Range Defaults
value blurriness float 0... 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}; systemChat "admire effect for a sec"; uiSleep 3; _handle ppEffectEnable false; ppEffectDestroy _handle; };

FilmGrain

Title: "FilmGrain"; Base Priority 2000

Arma 3
in Arma 3 the monochromatic parameter is numeric. Use 0 for monochrome, any other value for colour

Number of parameters is flexible: it may be defined from 1 to 6 parameters, meaning of individual parameters is following:

Parameter Meaning Type Range Default
intensity intensity float 0..1 0.005
sharpness sharpness float 1..20 1.25
grainSize grain size float 1..8 2.01
intensityX0 intensityX0 float -x..0..+x 0.75
intensityX1 intensityX1 float -x..0..+x 1.0
Logo A2.png1.00 monochromatic monochromatic bool true, false true
Arma 3 logo black.png1.00 Arma 3 monochromatic monochromatic integer 0, 1 0

Syntax: hndlFilmGrain ppEffectAdjust [ intensity, sharpness, grainSize, intensityX0, intensityX1, monochromatic ];

Defaults: hndlFilmGrain ppEffectAdjust [ 0.005, 1.25, 2.01, 0.75, 1.0, true // 0 for Arma 3 ];

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}; systemChat "admire effect for a sec"; uiSleep 3; _handle ppEffectEnable false; ppEffectDestroy _handle; };

Arma 3 logo black.png1.00 Arma 3 example: 0 = ["FilmGrain", 2000, [1, 0.15, 7, 0.2, 1.0, 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}; systemChat "admire effect for a sec"; uiSleep 3; _handle ppEffectEnable false; ppEffectDestroy _handle; };

ColorInversion

Title: "ColorInversion"; Base Priority: 2500

Parameter Meaning Type Range Defaults
Red Inversion of R channel (image inversion (0..no blur, 1..very blurred) float 0..1 0
Green Inversion of G channel (image inversion (0..no blur, 1..very blurred) float 0..1 0
Blue Inversion of B channel (image inversion (0..no blur, 1..very blurred) float 0..1 0

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}; systemChat "admire effect for a sec"; uiSleep 3; _handle ppEffectEnable false; ppEffectDestroy _handle; };

Advanced effects

The advanced effects are not intended to be used by the end user. They cannot be created by ppEffectCreate and their adjustments (via ppEffectAdjust) are immediate and do not require ppEffectCommit.

LightShafts

Title: "LightShafts"; Base Priority: N/A

Parameter Meaning Type Range Defaults
sunInnerRadius Inner radius of the sun on the screen (in relative coords [0,1]) used for light source rendering - light has full intensity here float 0.001...1.0 0.01
sunOuterRadius Outer radius of the sun on the screen (in relative coords [0,1]) used for light source rendering - light fades from inner to outer radius float (sunInnerRadius + 0.1)... 0.6
exposure Sun rays exposure - global strength of the effect float 0... 0.49
decay Sun rays decay - (how fast rays decay) 1.0 - no decay, 0.9 - slow decay, 0.5 - fast decay...) float 0...1.0 0.89

Syntax: "LightShafts" ppEffectAdjust [sunInnerRadius, sunOuterRadius, exposure, decay];

Defaults: "LightShafts" ppEffectAdjust [0.01, 0.6, 0.49, 0.89];

Copypaste example: [] spawn { systemChat "look at the sun"; uiSleep 3; "LightShafts" ppEffectEnable true; "LightShafts" ppEffectAdjust [0.1,0.25,0.1,1.25]; systemChat "admire effect for a sec"; uiSleep 5; "LightShafts" ppEffectEnable false; systemChat "back to normal"; };

HBAOPlus

HBAOPlus requires DirectX 11 feature level 11 or above as well as being enabled in Video Options to affect display.

Title: "HBAOPlus"; Base Priority: ?

Parameter Meaning Type Range Defaults
radius AO radius in meters float 0... 2
bias hide low-tessellation artifacts float 0..0.5 0.3
smallScaleAO scale factor for the small-scale AO, the greater the darker float 0..2 1
largeScaleAO scale factor for the large-scale AO, the greater the darker float 0..2 1
powerExponent final AO output is pow(AO, powerExponent) float 1..4 2
blurRadius 0 = disabled blur, 1 = enabled with a radius of 2, 2 = enabled with a radius of 4. integer 0, 1, 2 1
blurSharpness blur sharpness float 0... 4
depthThresholdSharpness depth threshold sharpness float 0... 5
foregroundAO limit the occlusion scale in the foreground float 0... 2
backgroundAO limit the occlusion scale in the background float 0... 0

Syntax: "HBAOPlus" ppEffectAdjust [radius, bias, smallScaleAO, largeScaleAO, powerExponent, blurRadius, blurSharpness, depthThresholdSharpness, foregroundAO, backgroundAO];

Defaults - depend on HBAO+ setting in Video Options: "HBAOPlus" ppEffectAdjust [2, 0.3, 1, 1, 2, 1, 4, 5, 2, 0];

Copypaste example: "HBAOPlus" ppEffectAdjust [2, 0.3, 1, 1, 2, 1, 4, 5, 2, 0]; systemChat "admire effect for a sec"; uiSleep 3; "HBAOPlus" ppEffectAdjust [1, 1.0, 1, 1, 1, 1, 1, 1, 1, 1];


See also: ppEffectAdjust, ppEffectCommit, ppEffectCommitted, ppEffectCreate, ppEffectDestroy, ppEffectEnable, ppEffectEnabled, ppEffectForceInNVG