Post Process Effects: Difference between revisions
m (category) |
Lou Montana (talk | contribs) m (Text replacement - "\{\{( *)Informative( *)\|" to "{{$1Feature$2|$2Informative$2|") |
||
Line 67: | Line 67: | ||
Title: "RadialBlur"; Base Priority: 100 | Title: "RadialBlur"; Base Priority: 100 | ||
{{Informative|RadialBlur will not do anything if RADIAL BLUR is disabled in Video Options}} | {{Feature|Informative|RadialBlur will not do anything if RADIAL BLUR is disabled in Video Options}} | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 150: | Line 150: | ||
Title: "WetDistortion"; Base Priority: 300 | Title: "WetDistortion"; Base Priority: 300 | ||
{{Informative | Effect cancels automatically under water.}} | {{Feature | Informative | Effect cancels automatically under water.}} | ||
{| class="wikitable" | {| class="wikitable" |
Revision as of 00:00, 7 February 2021
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;
1.56 Check if enabled:
ppEffectEnabled hndl;
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 defines sequence in which post effects are applied. The higher priority, the later the effect will be applied, on top of the others.
Base Priority | Effect |
---|---|
2500 | ColorInversion |
2000 | FilmGrain |
1500 | ColorCorrections |
400 | DynamicBlur |
300 | WetDistortion |
200 | ChromaticAberration |
100 | RadialBlur |
Parameters of individual effects
RadialBlur
Title: "RadialBlur"; Base Priority: 100
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];
Example:
["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];
Example:
["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
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
];
Example:
["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, |
radial color (optional, Arma 3 only) major axis radius of ellipse |
float |
0..1 |
[ |
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]
];
Example:
["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];
Example:
["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
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 |
1.00 monochromatic | monochromatic | bool | true, false | true |
1.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
];
Example:
["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;
};
1.00 Arma 3 example:
["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];
Example:
["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
LightShafts
Title: "LightShafts"; Base Priority: N/A
- can be used with ppEffectAdjust
- can be used with ppEffectEnable
- cannot be used with ppEffectCreate
- cannot be used with ppEffectCommit
Parameter | Meaning | Type | Range | Defaults |
---|---|---|---|---|
sunInnerRadius | inner radius of the sun. 0 = no radius, 1 = full screen | float | 0..1 | 0.01 |
sunOuterRadius | outer radius of the sun. 0 = no radius, 1 = full screen. light intensity fades out from inner to outer radius | float | 0..1 | 0.6 |
exposure | strength of effect | float | 0... | 0.45 |
decay | how fast intensity of rays decays with distance | float | 0..1 | 0.89 |
Syntax:
"LightShafts" ppEffectAdjust [sunInnerRadius, sunOuterRadius, exposure, decay];
Defaults:
"LightShafts" ppEffectAdjust [0.01, 0.6, 0.45, 0.89];
Example:
"LightShafts" ppEffectEnable true;
"LightShafts" ppEffectAdjust [0.1,0.25,0.1,1];
systemChat "admire effect for a sec";
uiSleep 3;
"LightShafts" ppEffectEnable false;
HBAOPlus
Title: "HBAOPlus"; Base Priority: N/A
- can be used with ppEffectAdjust
- cannot be used with ppEffectEnable
- cannot be used with ppEffectCreate
- cannot be used with ppEffectCommit
Parameter | Meaning | Type | Range | Defaults (Soft) | Defaults (Medium) | Defaults (Strong) |
---|---|---|---|---|---|---|
radius | AO radius in meters | float | 0... | 1 | 1.2 | |
bias | hide low-tessellation artifacts | float | 0..0.5 | 0.3 | ||
detailAO | scale factor for the small-scale AO, the greater the darker | float | 0..2 | 0.1 | 0.3 | 0.5 |
coarseAO | scale factor for the large-scale AO, the greater the darker | float | 0..2 | 0.50 | 0.75 | 1.00 |
powerExponent | final AO output is pow(AO, powerExponent) | float | 1..4 | 3 | ||
blurRadius | 0 = disabled blur, 1 = enabled with a radius of 2, 2 = enabled with a radius of 4. | integer | 0, 1, 2 | 1 | ||
blurSharpness | the greater the sharpness parameter, the more the blur preserves edges | float | 0... | 4 | ||
fadeSharpness | fading of the AO with distance (greater value = sharper transition) | float | 0... | 5 | ||
foregroundViewDepth | distance (in meters) of foreground objects - up to this distance the depth is handled differently from the rest of the scene - to prevent huge AO kernel of foreground objects | float | 0... | 2 | ||
backgroundViewDepth | distance (in meters) of background objects - AO kernel for objects beyond this distance is computed differently | float | 0... | 0 |
Syntax:
"HBAOPlus" ppEffectAdjust [radius, bias, detailAO, coarseAO, powerExponent, blurRadius, blurSharpness, fadeSharpness, foregroundViewDepth, backgroundViewDepth];
Defaults - depend on HBAO+ setting in Video Options:
// HBAO+ Soft
"HBAOPlus" ppEffectAdjust [1.0, 0.3, 0.1, 0.50, 3.0, 1.0, 4.0, 5.0, 2.0, 0.0];
// HBAO+ Medium
"HBAOPlus" ppEffectAdjust [1.0, 0.3, 0.3, 0.75, 3.0, 1.0, 4.0, 5.0, 2.0, 0.0];
// HBAO+ Strong
"HBAOPlus" ppEffectAdjust [1.2, 0.3, 0.5, 1.0, 3.0, 1.0, 4.0, 5.0, 2.0, 0.0];
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.0, 0.3, 0.1, 0.50, 3.0, 1.0, 4.0, 5.0, 2.0, 0.0];
See also: ppEffectAdjust, ppEffectCommit, ppEffectCommitted, ppEffectCreate, ppEffectDestroy, ppEffectEnable, ppEffectEnabled, ppEffectForceInNVG