Post Process Effects: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(→‎ColorCorrections: example, made nice)
(format)
Line 1: Line 1:
===Scripting commands===
=Scripting commands=


Effect creation:
Effect creation:
Line 27: Line 27:
'''Priority defines sequence in which are post effects applied.'''
'''Priority defines sequence in which are post effects applied.'''


====Example====
==Example==


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


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


{| class="bikitable"
{| class="bikitable"
Line 50: Line 50:
|}
|}


===Postprocess effects===


#Radial Zoom Blur
=Parameters of individual effects=
#Chromatic Aberration
#Wet Distortion
#Color Corrections
#Dynamic Blur
#Film Grain
#Color Inversion


===Parameters of individual effects===


===='''RadialBlur'''====
==RadialBlur==


Title: "RadialBlur"; Base Priority: 100
Title: "RadialBlur"; Base Priority: 100
Line 101: Line 93:
};</code>
};</code>


===='''ChromAberration'''====
==ChromAberration==


Title "ChromAberration"; Base Priority: 200
Title "ChromAberration"; Base Priority: 200
Line 138: Line 130:
};</code>
};</code>


===='''WetDistortion'''====
==WetDistortion==


Title: "WetDistortion"; Base Priority: 300
Title: "WetDistortion"; Base Priority: 300
Line 201: Line 193:
};</code>
};</code>


===='''ColorCorrections'''====
==ColorCorrections==


Title: "ColorCorrections"; Base Priority: 1500
Title: "ColorCorrections"; Base Priority: 1500
Line 267: Line 259:
};</code>
};</code>


===='''DynamicBlur'''====
==DynamicBlur==


Title: "DynamicBlur"; Base Priority: 400
Title: "DynamicBlur"; Base Priority: 400
Line 302: Line 294:
};</code>
};</code>


===='''FilmGrain'''====
==FilmGrain==


Title: "FilmGrain"; Base Priority 2000
Title: "FilmGrain"; Base Priority 2000
Line 370: Line 362:
};</code>
};</code>


===='''ColorInversion'''====
==ColorInversion==


Title: "ColorInversion"; Base Priority: 2500
Title: "ColorInversion"; Base Priority: 2500
Line 415: Line 407:


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

Revision as of 20:36, 16 August 2015

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 [hndl0, ..., hndlN] ppEffectEnable OnOf;

Priority defines sequence in which are post effects applied.

Example

_hndl = ppEffectCreate ["colorCorrections", 1501]; _hndl ppEffectEnable true; _hndl ppEffectAdjust [1.0, 1.0, 0.0, [1.0, 0.1, 1.0, 0.75], [0.0, 1.0, 1.0, 1.0], [0.199, 0.587, 0.114, 0.0]]; _hndl ppEffectCommit 0; sleep 10; ppEffectDestroy _hndl;

Table of priorities

Priority PostEffect Popis
2050 FilmGrain CfgOpticsEffect::TankCommanderOptics1(2)
1550 ColorCorrections CfgOpticsEffect::TankGunnerOptics1(2)
450 DynamicBlur CfgOpticsEffect::OpticsBlur1(2,3)
250 Chromatic Aberration CfgOpticsEffect::OpticsCHAbera1(2,3)


Parameters of individual effects

RadialBlur

Title: "RadialBlur"; Base Priority: 100

Will not do anything if RADIAL BLUR is disabled in Video Options.

Parameter Meaning Type Range
powerX, powerY relative blur degree on axes X,Y float 0...
offsetX, offsetY relative size (X,Y) of un-blurred centre float 0...

Syntax: hndRadBlur ppEffectAdjust [powerX, powerY, offsetX, offsetY];

Defaults: hndRadBlur ppEffectAdjust [0.01, 0.01, 0.06, 0.06];

Copypaste example: 0 = ["RadialBlur", 100, [100, 0.5, 0.1, 0.5]] spawn { params ["_name", "_priority", "_effect", "_handle"]; while { _handle = ppEffectCreate [_name, _priority]; _handle < 0 } do { _priority = _priority + 1; }; _handle ppEffectEnable true; _handle ppEffectAdjust _effect; _handle ppEffectCommit 5; waitUntil {ppEffectCommitted _handle}; uiSleep 3; comment "admire effect for a sec"; _handle ppEffectEnable false; ppEffectDestroy _handle; };

ChromAberration

Title "ChromAberration"; Base Priority: 200

Parameter Meaning Type Range
aberationPowerX, aberationPowerY relative effect strength (sample spacing from each other) axes X, Y float
correction correction according to screen aspect ratio bool

Syntax: hndlChromAberr ppEffectAdjust [aberationPowerX, aberationPowerY, correction];

Defaults: hndlChromAberr ppEffectAdjust [0.005, 0.005, false];

Copypaste example: 0 = ["ChromAberration", 200, [0.05, 0.05, true]] spawn { params ["_name", "_priority", "_effect", "_handle"]; while { _handle = ppEffectCreate [_name, _priority]; _handle < 0 } do { _priority = _priority + 1; }; _handle ppEffectEnable true; _handle ppEffectAdjust _effect; _handle ppEffectCommit 5; waitUntil {ppEffectCommitted _handle}; uiSleep 3; comment "admire effect for a sec"; _handle ppEffectEnable false; ppEffectDestroy _handle; };

WetDistortion

Title: "WetDistortion"; Base Priority: 300

Effect cancels automatically under water.

Parameter Meaning Type Range
value effect blurriness (0 to 1, values above 1 cause unusual) float 0...1
top, bottom effect power (top/bottom of screen separately) float 0...1
horizontal1, horizontal2, vertical1, vertical2 waves speeds (frequency/PI) float
horizontal1, horizontal2, vertical1, vertical2 waves amplitudes float
randX, randY, posX, posY phase coefficients: random value influence coefficient inside vertex float

Syntax: hndlWetDist ppEffectAdjust [ value, top, bottom, horizontal1, horizontal2, vertical1, vertical2, horizontal1, horizontal2, vertical1, vertical2, randX, randY, posX, posY ];

Defaults: hndlWetDist ppEffectAdjust [ 1, 1, 1, 4.10, 3.70, 2.50, 1.85, 0.0054, 0.0041, 0.0090, 0.0070, 0.5, 0.3, 10.0, 6.0 ];

Copypaste example: 0 = ["WetDistortion", 300, [ 1, 0, 1, 4.10, 3.70, 2.50, 1.85, 0.0054, 0.0041, 0.05, 0.0070, 1, 1, 1, 1 ]] spawn { params ["_name", "_priority", "_effect", "_handle"]; while { _handle = ppEffectCreate [_name, _priority]; _handle < 0 } do { _priority = _priority + 1; }; _handle ppEffectEnable true; _handle ppEffectAdjust _effect; _handle ppEffectCommit 5; waitUntil {ppEffectCommitted _handle}; uiSleep 3; comment "admire effect for a sec"; _handle ppEffectEnable false; ppEffectDestroy _handle; };

ColorCorrections

Title: "ColorCorrections"; Base Priority: 1500

Parameter Meaning Type Range
brightness image brightness (0 - black, 1 - unchanged, 2 - white ) float 0...2
contrast image contrast (1 - normal contrast) float 0...
offset image contrast offset (0 - unchanged ) float
blendR, blendG, blendB, blendA color for blending ( R,G,B - color, A - blend factor (0 - original color, 1 - blend color )) float 0...1
colorizeR, colorizeG, colorizeB, colorizeA color for colorization ( R,G,B - color, A - saturation (0 - original color, 1 - B&W multiplied by colorize color)) float 0...1
weightR, weightG, weightB, NA RGB weights for desaturation (0.299, 0.587, 0.114, NA) float

Syntax: hndlClrCorr ppEffectAdjust [ brightness, contrast, offset, blendR, blendG, blendB, blendA, colorizeR, colorizeG, colorizeB, colorizeA, weightR, weightG, weightB, NA ];

Defaults: hndlClrCorr ppEffectAdjust [ 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.299, 0.587, 0.114, 0 ];

Copypaste example: 0 = ["ColorCorrections", 1500, [ 1, 0.4, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0 ]] spawn { params ["_name", "_priority", "_effect", "_handle"]; while { _handle = ppEffectCreate [_name, _priority]; _handle < 0 } do { _priority = _priority + 1; }; _handle ppEffectEnable true; _handle ppEffectAdjust _effect; _handle ppEffectCommit 5; waitUntil {ppEffectCommitted _handle}; uiSleep 3; comment "admire effect for a sec"; _handle ppEffectEnable false; ppEffectDestroy _handle; };

DynamicBlur

Title: "DynamicBlur"; Base Priority: 400

Parameter Meaning Type Range
value blurriness float 0...

Syntax: hndlDynBlur ppEffectAdjust [value];

Defaults: hndlDynBlur ppEffectAdjust [0];

Copypaste example: 0 = ["DynamicBlur", 400, [10]] spawn { params ["_name", "_priority", "_effect", "_handle"]; while { _handle = ppEffectCreate [_name, _priority]; _handle < 0 } do { _priority = _priority + 1; }; _handle ppEffectEnable true; _handle ppEffectAdjust _effect; _handle ppEffectCommit 5; waitUntil {ppEffectCommitted _handle}; uiSleep 3; comment "admire effect for a sec"; _handle ppEffectEnable false; ppEffectDestroy _handle; };

FilmGrain

Title: "FilmGrain"; Base Priority 2000

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

Parameter Meaning Type Range
intensity intensity float 0...1
sharpness sharpness float 0...20
grainSize grain size float 1...8
intensityX0 intensityX0 float
intensityX1 intensityX1 float
monochromatic monochromatic bool

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

Defaults: hndlFilmGrain ppEffectAdjust [ 0.1, 1.5, 1.7, 0.2, 1.0, true ];

Copypaste example: 0 = ["FilmGrain", 2000, [ 1, 0.15, 7, 0.2, 1.0, true ]] spawn { params ["_name", "_priority", "_effect", "_handle"]; while { _handle = ppEffectCreate [_name, _priority]; _handle < 0 } do { _priority = _priority + 1; }; _handle ppEffectEnable true; _handle ppEffectAdjust _effect; _handle ppEffectCommit 5; waitUntil {ppEffectCommitted _handle}; uiSleep 3; comment "admire effect for a sec"; _handle ppEffectEnable false; ppEffectDestroy _handle; };

ColorInversion

Title: "ColorInversion"; Base Priority: 2500

Parameter Meaning Type Range
Red Inversion of R channel float 0...2
Green Inversion of G channel float 0...2
Blue Inversion of B channel float 0...2

Syntax: hndlClrInversion ppEffectAdjust [Red, Green, Blue];

Defaults: hndlClrInversion ppEffectAdjust [0, 0, 0];

Copypaste example: 0 = ["ColorInversion", 2500, [0.5, 0.5, 0.5]] spawn { params ["_name", "_priority", "_effect", "_handle"]; while { _handle = ppEffectCreate [_name, _priority]; _handle < 0 } do { _priority = _priority + 1; }; _handle ppEffectEnable true; _handle ppEffectAdjust _effect; _handle ppEffectCommit 5; waitUntil {ppEffectCommitted _handle}; uiSleep 3; comment "admire effect for a sec"; _handle ppEffectEnable false; ppEffectDestroy _handle; };


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