Post Process Effects: Difference between revisions
Killzone Kid (talk | contribs) m (→ColorInversion) |
Lou Montana (talk | contribs) m (Text replacement - "[[Category:ArmA 2: Editing" to "[[Category:Arma 2: Editing") |
||
(40 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{SideTOC}} | |||
= Scripting commands = | |||
Effect creation: | Effect creation: | ||
Line 6: | Line 7: | ||
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; | ||
Line 13: | Line 14: | ||
Parameter setup: | Parameter setup: | ||
<code>hndl [[ppEffectAdjust]] [par0, par1, | <code>hndl [[ppEffectAdjust]] [par0, par1, ..., parN];</code> | ||
Parameter application: | Parameter application: | ||
<code>hndl [[ppEffectCommit]] [[time]]; | <code>hndl [[ppEffectCommit]] [[time]]; | ||
Line 22: | Line 23: | ||
Effect permission: | Effect permission: | ||
<code>hndl [[ppEffectEnable]] | <code>hndl [[ppEffectEnable]] OnOf; | ||
[hndl0, ..., hndlN] [[ppEffectEnable]] OnOf;</code> | [hndl0, ..., hndlN] [[ppEffectEnable]] OnOf;</code> | ||
{{GVI|arma3|1.56}} Check if enabled: | |||
<code>[[ppEffectEnabled]] hndl;</code> | |||
== Example == | |||
<code>_hndl = [[ppEffectCreate]] ["colorCorrections", 1501]; | <code>_hndl = [[ppEffectCreate]] ["colorCorrections", 1501]; | ||
Line 36: | Line 39: | ||
[[ppEffectDestroy]] _hndl;</code> | [[ppEffectDestroy]] _hndl;</code> | ||
= 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 !! | |||
{| class="bikitable sortable" | |||
! Base Priority !! Effect | |||
|- | |||
| 2500 || [[#ColorInversion|ColorInversion]] | |||
|- | |||
| 2000 || [[#FilmGrain|FilmGrain]] | |||
|- | |||
| 1500 || [[#ColorCorrections|ColorCorrections]] | |||
|- | |- | ||
| | | 400 || [[#DynamicBlur|DynamicBlur]] | ||
|- | |- | ||
| | | 300 || [[#WetDistortion|WetDistortion]] | ||
|- | |- | ||
| | | 200 || [[#ChromaticAberration|ChromaticAberration]] | ||
|- | |- | ||
| | | 100 || [[#RadialBlur|RadialBlur]] | ||
|} | |} | ||
= Parameters of individual effects = | |||
== RadialBlur == | |||
Title RadialBlur | Title: "RadialBlur"; Base Priority: 100 | ||
{{Informative|RadialBlur will not do anything if RADIAL BLUR is disabled in Video Options}} | |||
{| class="bikitable" | {| class="bikitable" | ||
! Parameter !! Meaning !! | ! 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: | |||
<code>hndRadBlur [[ppEffectAdjust]] [powerX, powerY, offsetX, offsetY];</code> | |||
Defaults: | |||
<code>hndRadBlur [[ppEffectAdjust]] [0.01, 0.01, 0.06, 0.06];</code> | |||
Example: | |||
<code>["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; | |||
};</code> | |||
== ChromAberration == | |||
Title "ChromAberration"; Base Priority: 200 | |||
{| class="bikitable" | {| class="bikitable" | ||
! Parameter !! Meaning !! | ! 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: | |||
<code>hndlChromAberr [[ppEffectAdjust]] [aberrationPowerX, aberrationPowerY, aspectCorrection];</code> | |||
Defaults: | |||
<code>hndlChromAberr [[ppEffectAdjust]] [0.005, 0.005, [[false]]];</code> | |||
Example: | |||
<code>["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; | |||
};</code> | |||
== WetDistortion == | |||
Title: "WetDistortion"; Base Priority: 300 | |||
{{Informative | Effect cancels automatically under water.}} | |||
{| class="bikitable" | {| class="bikitable" | ||
! Parameter !! Meaning !! Type !! Range | ! 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 | | 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: | |||
<code>hndlWetDist [[ppEffectAdjust]] [ | |||
value, | |||
top, bottom, | |||
horizontal1, horizontal2, vertical1, vertical2, | |||
horizontal1, horizontal2, vertical1, vertical2, | |||
randX, randY, posX, posY | |||
];</code> | |||
Defaults: | |||
<code>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 | |||
];</code> | |||
Example: | |||
<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"]; | |||
[[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; | |||
};</code> | |||
== ColorCorrections == | |||
Title: "ColorCorrections"; Base Priority: 1500 | |||
{| class="bikitable" | {| class="bikitable" | ||
! Parameter !! Meaning !! | ! 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] | ||
|- | |- | ||
| | | [<br> | ||
radialMajorAxisRadius,<br> | |||
radialMinorAxisRadius,<br> | |||
radialRotationDeg,<br> | |||
radialCenterX,<br> | |||
radialCenterY,<br> | |||
radialInnerRadiusCoef,<br> | |||
radialInterpCoef<br> | |||
] | |||
|| radial color '''''(optional, Arma 3 only)'''''<br> | |||
major axis radius of ellipse<br> | |||
minor axis radius of ellipse<br> | |||
rotation of ellipse axis (in degrees)<br> | |||
centerX of ellipse on the screen (in relative coords, [-0.5] -> [0.5], where 0 is in the screen center)<br> | |||
centerY of ellipse on the screen (in relative coords, [-0.5] -> [0.5], where 0 is in the screen center)<br> | |||
coefficient for inner radius (where effect is not applied)<br> | |||
coefficient for color interpolation between inner and outer radius<br> | |||
| |||
||<br> | |||
float<br> | |||
float<br> | |||
float<br> | |||
float<br> | |||
float<br> | |||
float<br> | |||
float<br> | |||
| |||
||<br> | |||
0..1<br> | |||
0..1<br> | |||
0..359<br> | |||
-1..1<br> | |||
-1..1<br> | |||
0..1<br> | |||
0...<br> | |||
| |||
|| | |||
[<br> | |||
-1,<br> | |||
-1,<br> | |||
0,<br> | |||
0,<br> | |||
0,<br> | |||
0,<br> | |||
0<br> | |||
] | |||
|} | |} | ||
Syntax: | |||
<code>hndlClrCorr [[ppEffectAdjust]] | |||
[ | |||
brightness, | |||
contrast, | |||
offset, | |||
[blendR, blendG, blendB, blendA], | |||
[colorizeR, colorizeG, colorizeB, colorizeA], | |||
[weightR, weightG, weightB, 0], | |||
[a, b, angle, cx, cy, innerRCoef, interpCoef] | |||
];</code> | |||
Defaults: | |||
<code>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] | |||
];</code> | |||
Example: | |||
<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"]; | |||
[[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; | |||
};</code> | |||
== DynamicBlur == | |||
Title: "DynamicBlur"; Base Priority: 400 | |||
{| class="bikitable" | {| class="bikitable" | ||
! Parameter !! Meaning !! | ! Parameter !! Meaning !! Type !! Range !! Defaults | ||
|- | |- | ||
| | | value || blurriness || float || 0... || 0 | ||
|} | |} | ||
Syntax: | |||
<code>hndlDynBlur [[ppEffectAdjust]] [value];</code> | |||
Defaults: | |||
<code>hndlDynBlur [[ppEffectAdjust]] [0];</code> | |||
Example: | |||
<code>["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; | |||
};</code> | |||
== FilmGrain == | |||
Title: "FilmGrain"; Base Priority: 2000 | |||
{{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: | |||
{| class="bikitable" | {| class="bikitable" | ||
! Parameter !! Meaning !! Type !! Range | ! Parameter !! Meaning !! Type !! Range !! Default | ||
|- | |- | ||
| intensity || intensity || float || 0... | | intensity || intensity || float || 0..1 || 0.005 | ||
|- | |- | ||
| sharpness || sharpness || float || | | sharpness || sharpness || float || 1..20 || 1.25 | ||
|- | |- | ||
| grainSize || grain size || float || 1... | | grainSize || grain size || float || 1..8 || 2.01 | ||
|- | |- | ||
| intensityX0 || intensityX0 || float || | | intensityX0 || intensityX0 || float || -x..0..+x ||0.75 | ||
|- | |- | ||
| intensityX1 || intensityX1 || float || | | intensityX1 || intensityX1 || float || -x..0..+x ||1.0 | ||
|- | |- | ||
| monochromatic || monochromatic || bool || | | {{GVI|arma2|1.00}} monochromatic || monochromatic || bool|| true, false || true | ||
|- | |||
| {{GVI|arma3|1.00}} '''{{arma3}}''' monochromatic || monochromatic || integer || 0, 1 || 0 | |||
|} | |} | ||
==== | Syntax: | ||
<code>hndlFilmGrain [[ppEffectAdjust]] [ | |||
intensity, | |||
sharpness, | |||
grainSize, | |||
intensityX0, | |||
intensityX1, | |||
monochromatic | |||
];</code> | |||
Defaults: | |||
<code>hndlFilmGrain [[ppEffectAdjust]] [ | |||
0.005, | |||
1.25, | |||
2.01, | |||
0.75, | |||
1.0, | |||
[[true]] {{codecomment|// 0 for {{arma3}}}} | |||
];</code> | |||
Example: | |||
<code>["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; | |||
};</code> | |||
{{GVI|arma3|1.00}} {{arma3}} example: | |||
<code>["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; | |||
};</code> | |||
== ColorInversion == | |||
Title: "ColorInversion"; Base Priority: 2500 | Title: "ColorInversion"; Base Priority: 2500 | ||
{| class="bikitable" | {| class="bikitable" | ||
! Parameter !! Meaning !! Type !! Range | ! Parameter !! Meaning !! Type !! Range !! Defaults | ||
|- | |- | ||
| Red || Inversion of R channel || float || 0.. | | Red || Inversion of R channel (image inversion (0..no blur, 1..very blurred) || float || 0..1 || 0 | ||
|- | |- | ||
| Green || Inversion of G channel || float || 0.. | | Green || Inversion of G channel (image inversion (0..no blur, 1..very blurred) || float || 0..1 || 0 | ||
|- | |- | ||
| Blue || Inversion of B channel || float || 0.. | | Blue || Inversion of B channel (image inversion (0..no blur, 1..very blurred) || float || 0..1 || 0 | ||
|} | |} | ||
Line 242: | Line 459: | ||
<code>hndlClrInversion [[ppEffectAdjust]] [0, 0, 0];</code> | <code>hndlClrInversion [[ppEffectAdjust]] [0, 0, 0];</code> | ||
Example: | |||
<code> | <code>["ColorInversion", 2500, [0.5, 0.5, 0.5]] [[spawn]] | ||
[[params]] ["_name", "_priority", "_handle"]; | { | ||
[[params]] ["_name", "_priority", "_effect", "_handle"]; | |||
[[while]] { | [[while]] { | ||
_handle = [[ppEffectCreate]] [_name, _priority]; | _handle = [[ppEffectCreate]] [_name, _priority]; | ||
_handle | _handle < 0 | ||
} [[do]] { | } [[do]] { | ||
_priority = _priority + 1; | _priority = _priority + 1; | ||
}; | }; | ||
_handle [[ppEffectEnable]] [[true]]; | _handle [[ppEffectEnable]] [[true]]; | ||
_handle [[ppEffectAdjust]] | _handle [[ppEffectAdjust]] _effect; | ||
_handle [[ppEffectCommit]] 5; | _handle [[ppEffectCommit]] 5; | ||
[[waitUntil]] {[[ppEffectCommitted]] _handle}; | [[waitUntil]] {[[ppEffectCommitted]] _handle}; | ||
[[ | [[systemChat]] "admire effect for a sec"; | ||
[[ | [[uiSleep]] 3; | ||
_handle [[ppEffectEnable]] [[false]]; | _handle [[ppEffectEnable]] [[false]]; | ||
[[ppEffectDestroy]] _handle; | [[ppEffectDestroy]] _handle; | ||
};</code> | };</code> | ||
=== | = 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]].}} | |||
== 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]] | |||
{| class="bikitable" | |||
! 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: | |||
<code>"LightShafts" [[ppEffectAdjust]] [sunInnerRadius, sunOuterRadius, exposure, decay];</code> | |||
Defaults: | |||
<code>"LightShafts" [[ppEffectAdjust]] [0.01, 0.6, 0.45, 0.89];</code> | |||
Example: | |||
<code>"LightShafts" [[ppEffectEnable]] [[true]]; | |||
"LightShafts" [[ppEffectAdjust]] [0.1,0.25,0.1,1]; | |||
[[systemChat]] "admire effect for a sec"; | |||
[[uiSleep]] 3; | |||
"LightShafts" [[ppEffectEnable]] [[false]];</code> | |||
== HBAOPlus == | |||
{{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: N/A | |||
* can be used with [[ppEffectAdjust]] | |||
* '''cannot''' be used with [[ppEffectEnable]] | |||
* '''cannot''' be used with [[ppEffectCreate]] | |||
* '''cannot''' be used with [[ppEffectCommit]] | |||
{| class="bikitable" | |||
! Parameter !! Meaning !! Type !! Range !! Defaults (Soft) !! Defaults (Medium) !! Defaults (Strong) | |||
|- | |||
| 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 | |||
| colspan="3" style="text-align: center;" | 0.3 | |||
|- | |||
| 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 | |||
|- | |||
| 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 | |||
| 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 | |||
| colspan="3" style="text-align: center;" | 1 | |||
|- | |||
| blurSharpness || the greater the sharpness parameter, the more the blur preserves edges || float || 0... | |||
| colspan="3" style="text-align: center;" | 4 | |||
|- | |||
| fadeSharpness || fading of the AO with distance (greater value = sharper transition) || float || 0... | |||
| colspan="3" style="text-align: center;" | 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... | |||
| colspan="3" style="text-align: center;" | 2 | |||
|- | |||
| 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: | |||
<code>"HBAOPlus" [[ppEffectAdjust]] [radius, bias, detailAO, coarseAO, powerExponent, blurRadius, blurSharpness, fadeSharpness, foregroundViewDepth, backgroundViewDepth];</code> | |||
Defaults - ''depend on HBAO+ setting in Video Options'': | |||
<code>{{codecomment|// HBAO+ Soft}} | |||
"HBAOPlus" [[ppEffectAdjust]] [1.0, 0.3, 0.1, 0.50, 3.0, 1.0, 4.0, 5.0, 2.0, 0.0]; | |||
{{codecomment|// HBAO+ Medium}} | |||
"HBAOPlus" [[ppEffectAdjust]] [1.0, 0.3, 0.3, 0.75, 3.0, 1.0, 4.0, 5.0, 2.0, 0.0]; | |||
{{codecomment|// HBAO+ Strong}} | |||
"HBAOPlus" [[ppEffectAdjust]] [1.2, 0.3, 0.5, 1.0, 3.0, 1.0, 4.0, 5.0, 2.0, 0.0];</code> | |||
Example: | |||
<code>"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> | |||
'''See also:''' [[ppEffectAdjust]], [[ppEffectCommit]], [[ppEffectCommitted]], [[ppEffectCreate]], [[ppEffectDestroy]], [[ppEffectEnable]], [[ppEffectForceInNVG]] | '''See also:''' [[ppEffectAdjust]], [[ppEffectCommit]], [[ppEffectCommitted]], [[ppEffectCreate]], [[ppEffectDestroy]], [[ppEffectEnable]], [[ppEffectEnabled]], [[ppEffectForceInNVG]] | ||
[[Category: | [[Category:Arma 2: Editing]] | ||
[[Category:Arma 3: Editing]] | |||
[[Category: Scripting Topics]] | [[Category: Scripting Topics]] |
Revision as of 23:12, 12 March 2020
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