zFilter is a postpocessing WebGL shader plugin for dynamic effects on your panorama image,
layers and hotspots. It allows you to add visual effects for startup intros, scene changes,
information popups, etc. Setting or tweening simple attributes adjusts the brightness,
saturation or blurs your panorama, layers or hotpots!
zFilter 3 is a paid update. The upgrade discount for existing users is 40% (29€)
for users which purchased zFilter after 2022.04.15 it is free of charge !
or just use the full block above with all attibutes on their default values.
A simple intro for example, can be done by setting initial attribute values
in combination with an onstart action tweening the attributes back to the defaults.
Note: zFilter is optimized to minimize the performance load on your devices.
If all attributes are set to their default values, the plugin stays idle and does
not affect the performance at all.
phase is used to set a default or specific phases for zFilter attributes
phase is never undefined. If omitted, it will fall back to the last defined default
Examples:
phase="2" sets phase 2 for all zFilter attributes
phase="2|blur=1|mixcolor=1" sets separate phases for blur and mixcolor
Note: phase is only supported with krpano 1.20 or newer!
order:
order is used to set the global plugin order if several postprocessing plugins are used
order is never undefined. If omitted, it will be set to the highest order on stack
Next to the global plugin order, order also allows to set the zFilter internal order
The internal order can be changed using attribute names without assignment
global order assignments (numbers) precede the zFilter internal order (names)
Examples:
order="5" sets the order for all zFilter attributes
order="5|blur=7|adjust=3" sets separate orders for blur and adjust
order="5|blur|sobel" sets the internal order to execute blur before sobel
while the order is 5 for all zFilter attributes, the internal order is now
iorder=""adjust|blur|swirl|pixelate|ripple|split|fblur|sobel|blendcolor|vignettecolor|mixcolor""
order="5|blendcolor=4|blur|sobel" set the internal order to execute blur
before sobel under a default order of 5 with a special order for blendcolor
Notes:
adjust filters (brightness, contrast, saturate, etc) are implemented as
a combined postprocessing filter and therefore can't get ordered individually
If multiple postprocessing plugins are used, you should give each of them an
individual order, otherwise you may experience unwanted filter interference
order is only supported with krpano 1.20 or newer!
iorder is used to get the zFilter internal order
iorder is read only, to change values order must be used!
it considers separate global orders for zFilter attributes
Example:
order="2|blur=3|fblur=1" will result in:
iorder=""fblur|adjust|swirl|pixelate|ripple|sobel|split|blendcolor|vignettecolor|mixcolor|blur""
webvr is used suppress zFilter for certain webvr levels
zFilter is highly optimized and performs great on deskops, tablets and mobiles.
Sadly this is not the case for true webVR (ie. Oculus Go, Quest, Rift, etc),
where most devices have a poor WebGL performance.
Therefore the default is webvr="2" which suppresses zFilter for true webVR
possible values/levels for the webvr attribute are:
0=normal / no VR, 1=fake VR, 2=mobile VR, 3=true WebVR
csslegacy="true" enables legacy value ranges for layer and hotspot attributes
the value ranges were changed with zFilter 3 to be compatible with krpano 1.21+
important: csslegacy="true" works for krpano below 1.21, only!
addzfilter="true" makes it unnecessary to call addzfilter() for layers and hotspots
the default is false because filters are normally used for specific elements, only
important: addzfilter="true" requires kprano 1.21+ to work!
With low fquality settings fblur shows some visual noise,
but even with maxed out fquality it is still faster than the standard blur filter.
It is recomended to set per device values, as done above under Syntax.
The chosen values are low on purpose to get the best device support.
blur is a quality blur without any visual artefacts
Note: blur uses an intelligent, performance optimized algorithm,
but the higher the blur value, the more WebGL shader passes are needed.
On low performance devices you should avoid high blur values or use fblur.
32bit ARGB values consist of 4 bytes, each with a range of hexadecimal 0x00 to 0xff.
Normally 32bit ARGB values are used for colors and are mapped to alpha, red, green and blue,
but zFilter can also map them to other parameters as in the vignettecolor attibute.
The byte to shader parameter mapping is described above for each attribute.
You can set 32bit ARGB values by Numbers or Strings in decimal or hex format
Reading a 32bit ARGB value returns a String in hexadecimal format
Examples:
an ARGB value of 0x801eff64 means:
0x8000ff00 --> A = 0x80/128, R = 0x1e/30, G = 0xFF/255, B = 0x64/100
Browser support:
The normal filters should work on most current main browsers,
but support may vary, specially if multiple filters are active.
Technical note: krpano 1.21 has a limited support for CSS filters
(background, layers, type=container or text)
zFilter provides full support for CSS filters
(foreground & background, hotspots & layers, type=container, text and image)
After the layer/hotspot has been initialized, the added zFilter attributes
can be used like any other krpano layer attribute:
Old / legacy value ranges for old krpano versions with csslegacy="true"
note: these ranges correspond to the panorama postprocessing filters provided by zFilter
note: csslegacy="true" is supported for old krpano versions below 1.21, only!
on kprano 1.21 it is mandatory to use the new value ranges!
This is a commercial plugin - to use it, it must be purchased.
Before you buy, please check the Compatibility / Requirements / Limitations!
Compatibility / Requirements / Limitations
krpano 1.20 or newer, html5 + webgl only! (Flash is not supported)
Postprocessing filters work on the panorama and on hotspots with renderer=webgl
Layer and hotpot filters support a limited set of effects and require renderer=css3d
Support for layer and hotpot filters are depending on browser support
Support for true webVR is experimental
zFilter is tied to your krpano license (needs a registered version of krpano)
License
All copyrights to zFilter are exclusively owned by indexofrefraction.
This plugin is offered as a commercial plugin. It is provided "As Is" without warranty of any kind, either express or implied, including any warranty of quality, merchantability, or fitness for a particular purpose. In no event will the author of the plugin be liable for loss of data, costs of procurement of substitute goods or services or any special, consequential or incidental damages, under any cause of action and regardless of whether or not the plugin author have been advised of the possibility of such damage. This limitation will apply notwithstanding any failure of essential purpose of any limited remedy provided herein. In any event the plugin author will have no liability arising out of this agreement.
Third parties are not allowed not use your licensed plugin to create
new projects, including modified versions of your projects.
You are not allowed to rent, lease, lend or sublicense your plugin.
Offering your licensed plugin to third parties on a hosting
platform is not allowed without a separate hosting license.
In such cases (e.g. integration in content management services)
please contact: support@refraction.ch
Withdrawal period
For any digital content purchased online, you agree upon checkout that the withdrawal period will expire 14 days after you purchase such digital content or when you start downloading the content for the first time, whichever is sooner.