Post Process Effects: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (typo, ter)
(21 intermediate revisions by 4 users not shown)
Line 1: Line 1:
= Scripting commands =
{{TOC|side}}
== Scripting commands ==


Effect creation:
{{Columns|4|
* [[ppEffectCreate]]
* [[ppEffectAdjust]]
* [[ppEffectEnable]]
* [[ppEffectEnabled]]
* [[ppEffectForceInNVG]]
* [[ppEffectCommit]]
* [[ppEffectCommitted]]
* [[ppEffectDestroy]]
|shrink= y
}}
 
== Usage ==
 
=== Effect creation ===


<code>hndl = [[ppEffectCreate]] ["effect_type", priority];
<code>hndl = [[ppEffectCreate]] ["effect_type", priority];
hndls[] = [[ppEffectCreate]] [["effect_type0", priority0], ["effect_type1", priority1], ...];</code>
hndls[] = [[ppEffectCreate]] [["effect_type0", priority0], ["effect_type1", priority1], ...];</code>


Effect cancellation:
=== Effect cancellation ===


<code>[[ppEffectDestroy]] hndl;
<code>[[ppEffectDestroy]] hndl;
[[ppEffectDestroy]] [hndl0, hndl1, ..., hndlN];</code>
[[ppEffectDestroy]] [hndl0, hndl1, ..., hndlN];</code>


Parameter setup:
=== Parameter setup ===


<code>hndl [[ppEffectAdjust]] [par0, par1, ..., parN];</code>
<code>hndl [[ppEffectAdjust]] [par0, par1, ..., parN];</code>
Parameter application:
=== Parameter application ===


<code>hndl [[ppEffectCommit]] [[time]];
<code>hndl [[ppEffectCommit]] [[time]];
[hndl0, ..., hndlN] [[ppEffectCommit]] [[time]];</code>
[hndl0, ..., hndlN] [[ppEffectCommit]] [[time]];</code>


Effect permission:
=== Effect permission ===


<code>hndl [[ppEffectEnable]] OnOf;
<code>hndl [[ppEffectEnable]] OnOf;
[hndl0, ..., hndlN] [[ppEffectEnable]] OnOf;</code>
[hndl0, ..., hndlN] [[ppEffectEnable]] OnOf;</code>


Check if enabled (Since Arma v1.55.133445):
{{ArgTitle|3|Check if enabled|{{GVI|arma3|1.56}}}}


<code>[[ppEffectEnabled]] hndl;</code>
<code>[[ppEffectEnabled]] hndl;</code>


'''Priority defines sequence in which are post effects applied.'''
=== Example ===
 
== Example ==


<code>_hndl = [[ppEffectCreate]] ["colorCorrections", 1501];
<code>_hndl = [[ppEffectCreate]] ["colorCorrections", 1501];
Line 40: Line 53:
[[ppEffectDestroy]] _hndl;</code>
[[ppEffectDestroy]] _hndl;</code>


= Table of priorities =
== Table of priorities ==


{| class="bikitable"
Priority defines sequence in which post effects are applied. The higher priority, the later the effect will be applied, on top of the others.
! Priority !! PostEffect !! Description
 
{| class="wikitable sortable"
! Base Priority !! Effect
|-
|-
| 2050 || FilmGrain || CfgOpticsEffect::TankCommanderOptics1(2)
| 2500 || [[#ColorInversion|ColorInversion]]
|-
|-
| 1550 || ColorCorrections || CfgOpticsEffect::TankGunnerOptics1(2)
| 2000 || [[#FilmGrain|FilmGrain]]
|-
|-
| 450 || DynamicBlur || CfgOpticsEffect::OpticsBlur1(2,3)
| 1500 || [[#ColorCorrections|ColorCorrections]]
|-
|-
| 250 || Chromatic Aberration || CfgOpticsEffect::OpticsCHAbera1(2,3)
| 400 || [[#DynamicBlur|DynamicBlur]]
|-
| 300 || [[#WetDistortion|WetDistortion]]
|-
| 200 || [[#ChromaticAberration|ChromaticAberration]]
|-
| 100 || [[#RadialBlur|RadialBlur]]
|}
|}


= Parameters of individual effects =
== Parameters of individual effects ==


== RadialBlur ==
=== RadialBlur ===


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="bikitable"
{| class="wikitable"
! Parameter !! Meaning !! Type !! Range !! Defaults
! Parameter !! Meaning !! Type !! Range !! Defaults
|-
|-
Line 80: Line 101:
<code>hndRadBlur [[ppEffectAdjust]] [0.01, 0.01, 0.06, 0.06];</code>
<code>hndRadBlur [[ppEffectAdjust]] [0.01, 0.01, 0.06, 0.06];</code>


Copypaste example:
Example:
<code>0 = ["RadialBlur", 100, [100, 0.5, 0.1, 0.5]] [[spawn]]
<code>["RadialBlur", 100, [100, 0.5, 0.1, 0.5]] [[spawn]]
{
{
[[params]] ["_name", "_priority", "_effect", "_handle"];
[[params]] ["_name", "_priority", "_effect", "_handle"];
Line 100: Line 121:
};</code>
};</code>


== ChromAberration ==
=== ChromAberration ===


Title "ChromAberration"; Base Priority: 200
Title "ChromAberration"; Base Priority: 200


{| class="bikitable"
{| class="wikitable"
! Parameter !! Meaning !! Type !! Range !! Defaults
! Parameter !! Meaning !! Type !! Range !! Defaults
|-
|-
Line 120: Line 141:
<code>hndlChromAberr [[ppEffectAdjust]] [0.005, 0.005, [[false]]];</code>
<code>hndlChromAberr [[ppEffectAdjust]] [0.005, 0.005, [[false]]];</code>


Copypaste example:
Example:
<code>0 = ["ChromAberration", 200, [0.05, 0.05, [[true]]]] [[spawn]] {
<code>["ChromAberration", 200, [0.05, 0.05, [[true]]]] [[spawn]] {
[[params]] ["_name", "_priority", "_effect", "_handle"];
[[params]] ["_name", "_priority", "_effect", "_handle"];
[[while]] {
[[while]] {
Line 139: Line 160:
};</code>
};</code>


== WetDistortion ==
=== WetDistortion ===


Title: "WetDistortion"; Base Priority: 300
Title: "WetDistortion"; Base Priority: 300


<u>Effect cancels automatically under water</u>.
{{Feature | Informative | Effect cancels automatically under water.}}


{| class="bikitable"
{| class="wikitable"
! Parameter !! Meaning !! Type !! Range !! Defaults
! Parameter !! Meaning !! Type !! Range !! Defaults
|-
|-
Line 179: Line 200:
];</code>
];</code>


Copypaste example:
Example:
<code>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]]
<code>["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"];
[[params]] ["_name", "_priority", "_effect", "_handle"];
Line 199: Line 220:
};</code>
};</code>


== ColorCorrections ==
=== ColorCorrections ===


Title: "ColorCorrections"; Base Priority: 1500
Title: "ColorCorrections"; Base Priority: 1500


{| class="bikitable"
{| class="wikitable"
! Parameter !! Meaning !! Type !! Range !! Defaults
! Parameter !! Meaning !! Type !! Range !! Defaults
|-
|-
Line 290: Line 311:
];</code>
];</code>


Copypaste example:
Example:
<code>0 = ["ColorCorrections", 1500, [1, 0.4, 0, [0, 0, 0, 0], [1, 1, 1, 0], [1, 1, 1, 0]]] [[spawn]]
<code>["ColorCorrections", 1500, [1, 0.4, 0, [0, 0, 0, 0], [1, 1, 1, 0], [1, 1, 1, 0]]] [[spawn]]
{
{
[[params]] ["_name", "_priority", "_effect", "_handle"];
[[params]] ["_name", "_priority", "_effect", "_handle"];
Line 310: Line 331:
};</code>
};</code>


== DynamicBlur ==
=== DynamicBlur ===


Title: "DynamicBlur"; Base Priority: 400
Title: "DynamicBlur"; Base Priority: 400


{| class="bikitable"
{| class="wikitable"
! Parameter !! Meaning !! Type !! Range !! Defaults
! Parameter !! Meaning !! Type !! Range !! Defaults
|-
|-
Line 326: Line 347:
<code>hndlDynBlur [[ppEffectAdjust]] [0];</code>
<code>hndlDynBlur [[ppEffectAdjust]] [0];</code>


Copypaste example:
Example:
<code>0 = ["DynamicBlur", 400, [10]] [[spawn]]
<code>["DynamicBlur", 400, [10]] [[spawn]]
{
{
[[params]] ["_name", "_priority", "_effect", "_handle"];
[[params]] ["_name", "_priority", "_effect", "_handle"];
Line 346: Line 367:
};</code>
};</code>


== FilmGrain ==
=== FilmGrain ===


Title: "FilmGrain"; Base Priority 2000
Title: "FilmGrain"; Base Priority: 2000


{{Feature arma3|in {{arma3}} the '''monochromatic''' parameter is [[Number|numeric]]. Use '''0''' for monochrome, any other value for colour}}
{{Feature | arma3 | In {{arma3}} the '''monochromatic''' parameter is [[Number|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:
Number of parameters is flexible: it may be defined from 1 to 6 parameters, meaning of individual parameters is following:


{| class="bikitable"
{| class="wikitable"
! Parameter !! Meaning !! Type !! Range !! Default
! Parameter !! Meaning !! Type !! Range !! Default
|-
|-
Line 389: Line 410:
0.75,
0.75,
1.0,
1.0,
[[true]] {{codecomment|// 0 for {{arma3}}}}
[[true]] {{cc|0 for {{arma3}}}}
];</code>
];</code>


Copypaste example:
Example:
<code>0 = ["FilmGrain", 2000, [1, 0.15, 7, 0.2, 1.0, [[true]]]] [[spawn]]
<code>["FilmGrain", 2000, [1, 0.15, 7, 0.2, 1.0, [[true]]]] [[spawn]]
{
{
[[params]] ["_name", "_priority", "_effect", "_handle"];
[[params]] ["_name", "_priority", "_effect", "_handle"];
Line 413: Line 434:


{{GVI|arma3|1.00}} {{arma3}} example:
{{GVI|arma3|1.00}} {{arma3}} example:
<code>0 = ["FilmGrain", 2000, [1, 0.15, 7, 0.2, 1.0, 0]] [[spawn]]
<code>["FilmGrain", 2000, [1, 0.15, 7, 0.2, 1.0, 0]] [[spawn]]
{
{
[[params]] ["_name", "_priority", "_effect", "_handle"];
[[params]] ["_name", "_priority", "_effect", "_handle"];
Line 432: Line 453:
};</code>
};</code>


== ColorInversion ==
=== ColorInversion ===


Title: "ColorInversion"; Base Priority: 2500
Title: "ColorInversion"; Base Priority: 2500


{| class="bikitable"
{| class="wikitable"
! Parameter !! Meaning !! Type !! Range !! Defaults
! Parameter !! Meaning !! Type !! Range !! Defaults
|-
|-
Line 452: Line 473:
<code>hndlClrInversion [[ppEffectAdjust]] [0, 0, 0];</code>
<code>hndlClrInversion [[ppEffectAdjust]] [0, 0, 0];</code>


Copypaste example:
Example:
<code>0 = ["ColorInversion", 2500, [0.5, 0.5, 0.5]] [[spawn]]
<code>["ColorInversion", 2500, [0.5, 0.5, 0.5]] [[spawn]]
{
{
[[params]] ["_name", "_priority", "_effect", "_handle"];
[[params]] ["_name", "_priority", "_effect", "_handle"];
Line 472: Line 493:
};</code>
};</code>


= Advanced effects =
== Advanced effects ==


{{Important|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]].}}
{{Feature|important|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 ==
=== LightShafts ===


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


* can be used with [[ppEffectAdjust]]
* can be used with [[ppEffectAdjust]]
Line 485: Line 506:
* '''cannot''' be used with [[ppEffectCommit]]
* '''cannot''' be used with [[ppEffectCommit]]


{| class="bikitable"
{| class="wikitable"
! Parameter !! Meaning !! Type !! Range !! Defaults
! Parameter !! Meaning !! Type !! Range !! Defaults
|-
|-
| sunInnerRadius || - || float || 0... || ?
| sunInnerRadius || inner radius of the sun. 0 = no radius, 1 = full screen || float || 0.001..1 || 0.01
|-
|-
| sunOuterRadius || - || float || 0... || ?
| sunOuterRadius || outer radius of the sun. Must be > sunInnerRadius. 0 = no radius, 1 = full screen. light intensity fades out from inner to outer radius || float || 0..1 || 0.6
|-
|-
| exposure || - || float || 0... || ?
| exposure || strength of effect || float || 0... || 0.45
|-
|-
| decay || - || float || 0... || ?
| decay || how fast intensity of rays decays with distance || float || 0..1 || 0.89
|}
|}


Line 501: Line 522:


Defaults:
Defaults:
<code>"LightShafts" [[ppEffectAdjust]] [?, ?, ?, ?];</code>
<code>"LightShafts" [[ppEffectAdjust]] [0.01, 0.6, 0.45, 0.89];</code>


Copypaste example:
Example:
<code>"LightShafts" [[ppEffectEnable]] [[true]];
<code>[] [[spawn]]
"LightShafts" [[ppEffectAdjust]] [0.1,0.25,0.1,1.25];
{
[[systemChat]] "admire effect for a sec";
"LightShafts" [[ppEffectEnable]] [[true]];
[[uiSleep]] 3;
"LightShafts" [[ppEffectAdjust]] [0.1,0.25,0.1,1];
"LightShafts" [[ppEffectEnable]] [[false]];</code>
[[systemChat]] "admire effect for a sec";
[[uiSleep]] 3;
"LightShafts" [[ppEffectEnable]] [[false]]
};</code>


== HBAOPlus ==
=== HBAOPlus ===


{{Important|HBAOPlus requires DirectX 11 feature level 11 or above as well as being enabled in Video Options to affect display.}}
{{Feature|important|HBAOPlus requires DirectX 11 feature level 11 or above as well as being enabled in Video Options to affect display.}}


Title: "HBAOPlus"; Base Priority: ?
Title: "HBAOPlus"; Base Priority: N/A


* can be used with [[ppEffectAdjust]]
* can be used with [[ppEffectAdjust]]
Line 521: Line 545:
* '''cannot''' be used with [[ppEffectCommit]]
* '''cannot''' be used with [[ppEffectCommit]]


{| class="bikitable"
{| class="wikitable"
! Parameter !! Meaning !! Type !! Range !! Defaults
! Parameter !! Meaning !! Type !! Range !! Defaults (Soft) !! Defaults (Medium) !! Defaults (Strong)
|-
|-
| radius || AO radius in meters || float || 0... || 2
| radius || AO radius in meters || float || 0...
| colspan="2" style="text-align: center;" | 1
| style="text-align: center;" | 1.2
|-
|-
| bias || hide low-tessellation artifacts || float || 0..0.5 || 0.3
| bias || hide low-tessellation artifacts || float || 0..0.5
| colspan="3" style="text-align: center;" | 0.3
|-
|-
| smallScaleAO || scale factor for the small-scale AO, the greater the darker || float || 0..2 || 1
| detailAO || scale factor for the small-scale AO, the greater the darker || float || 0..2
| style="text-align: center;" | 0.1
| style="text-align: center;" | 0.3
| style="text-align: center;" | 0.5
|-
|-
| largeScaleAO || scale factor for the large-scale AO, the greater the darker || float || 0..2 || 1
| coarseAO || scale factor for the large-scale AO, the greater the darker || float || 0..2
| style="text-align: center;" | 0.50
| style="text-align: center;" | 0.75
| style="text-align: center;" | 1.00
|-
|-
| powerExponent || final AO output is pow(AO, powerExponent) || float || 1..4 || 2
| powerExponent || final AO output is pow(AO, powerExponent) || float || 1..4
| colspan="3" style="text-align: center;" | 3
|-
|-
| blurRadius ||  0 = disabled blur, 1 = enabled with a radius of 2, 2 = enabled with a radius of 4. || integer || 0, 1, 2 || 1
| blurRadius ||  0 = disabled blur, 1 = enabled with a radius of 2, 2 = enabled with a radius of 4. || integer || 0, 1, 2
| colspan="3" style="text-align: center;" | 1
|-
|-
| blurSharpness || blur sharpness || float || 0... || 4
| blurSharpness || the greater the sharpness parameter, the more the blur preserves edges || float || 0...
| colspan="3" style="text-align: center;" | 4
|-
|-
| depthThresholdSharpness || depth threshold sharpness || float || 0... || 5
| fadeSharpness || fading of the AO with distance (greater value = sharper transition) || float || 0...
| colspan="3" style="text-align: center;" | 5
|-
|-
| foregroundAO || limit the occlusion scale in the foreground || float || 0... || 2
| 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...
| colspan="3" style="text-align: center;" | 2
|-
|-
| backgroundAO || limit the occlusion scale in the background || float || 0... || 0
| backgroundViewDepth || distance (in meters) of background objects - AO kernel for objects beyond this distance is computed differently || float || 0...
| colspan="3" style="text-align: center;" | 0
|}
|}


Syntax:
Syntax:
<code>"HBAOPlus" [[ppEffectAdjust]] [radius, bias, smallScaleAO, largeScaleAO, powerExponent, blurRadius, blurSharpness, depthThresholdSharpness, foregroundAO, backgroundAO];</code>
<code>"HBAOPlus" [[ppEffectAdjust]] [radius, bias, detailAO, coarseAO, powerExponent, blurRadius, blurSharpness, fadeSharpness, foregroundViewDepth, backgroundViewDepth];</code>


Defaults - ''depend on HBAO+ setting in Video Options'':
Defaults - ''depend on HBAO+ setting in Video Options'':
<code>"HBAOPlus" [[ppEffectAdjust]] [2, 0.3, 1, 1, 2, 1, 4, 5, 2, 0];</code>
<code>{{cc|HBAO+ Soft}}
"HBAOPlus" [[ppEffectAdjust]] [1.0, 0.3, 0.1, 0.50, 3.0, 1.0, 4.0, 5.0, 2.0, 0.0];
 
{{cc|HBAO+ Medium}}
"HBAOPlus" [[ppEffectAdjust]] [1.0, 0.3, 0.3, 0.75, 3.0, 1.0, 4.0, 5.0, 2.0, 0.0];


Copypaste example:
{{cc|HBAO+ Strong}}
<code>"HBAOPlus" [[ppEffectAdjust]] [2, 0.3, 1, 1, 2, 1, 4, 5, 2, 0];
"HBAOPlus" [[ppEffectAdjust]] [1.2, 0.3, 0.5, 1.0, 3.0, 1.0, 4.0, 5.0, 2.0, 0.0];</code>
[[systemChat]] "admire effect for a sec";
[[uiSleep]] 3;
"HBAOPlus" [[ppEffectAdjust]] [1, 1.0, 1, 1, 1, 1, 1, 1, 1, 1];</code>




'''See also:''' [[ppEffectAdjust]], [[ppEffectCommit]], [[ppEffectCommitted]], [[ppEffectCreate]], [[ppEffectDestroy]], [[ppEffectEnable]], [[ppEffectEnabled]], [[ppEffectForceInNVG]]
Example:
<code>[] [[spawn]]
{
"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]
};</code>




[[Category:ArmA 2: Editing]]
[[Category:Arma 3: Editing]]
[[Category: Scripting Topics]]
[[Category: Scripting Topics]]

Revision as of 16:19, 30 October 2021

Scripting commands

Usage

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

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

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];

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

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 ];

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,
    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] ];

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

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 ];

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; };

Arma 3 logo black.png1.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

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. 0 = no radius, 1 = full screen float 0.001..1 0.01
sunOuterRadius outer radius of the sun. Must be > sunInnerRadius. 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: [] spawn { "LightShafts" ppEffectEnable true; "LightShafts" ppEffectAdjust [0.1,0.25,0.1,1]; systemChat "admire effect for a sec"; uiSleep 3; "LightShafts" ppEffectEnable false };

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: N/A

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: [] spawn { "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] };