krpano 1.19 - Pre Release 2

  • Hi,

    the next pre-release of krpano version 1.19 is ready:

    UPDATE - there is a newer version available:

    News and changes in krpano 1.19 Pre-Release 2

    (For information about the previous pre-release, please see here: krpano 1.19 Pre-Release 1)

    WebVR / MobileVR Support

    • The MAKE VTOUR droplets have build-in VR support now.
    • Just drop your panos on the VTOUR droplets and the generated tour will have automatic VR support - with device detection, an integrated 'Enter-VR-Mode' icon, a MobileVR setup mode and floating/hovering VR scene-navigation-hotspots.
    • When VR support is available (e.g. when using a desktop browser with WebVR support or just a WebGL/gyro-capable mobile browser) then a 'VR icon' will be shown in the button bar. Here some example screenshots (the look itself depends on the skin/design):



    • As there were different 'Google Cardboard' named VR headsets with different lenses and different inter-lens-distances, an additional mobilevr_lens_overlap settings and new VR headsets presets were added ('Cardboard A' and 'Cardboard B' be able to support them directly too (without the need to adjust the headsets parameters). In the webvr.xml there is now a custom xml structure named <vrheadsets> where all VR headsets settings were stored in a simple and easy-to-edit way at one single place.
    • Some mobile devices (e.g. very often the Samsung S5) have uncalibrated gyroscope sensors and this is causing a constant unindented moving called 'drifting'. The WebVR plugin and also the webvr.xml are offering now a possibility to calibrate the gyroscope sensor to avoid that drifting. The calibration itself would need to be done only once and will be stored together with the other VR headset settings in a cross-domain HTML5-localstorage.
    • When using a mobile device is in portrait orientation in VR mode, then the webvr.xml will disable the stereo-rendering and show a 'rotate the device' info.
    • The resetSensor(hlookat) action of the WebVR plugin can be used now to set a new custom looking direction in VR mode.
    • Side-By-Side panoramic videos and single-images are supported now (stereoformat="SBS"). In the fist pre-release they were not working due a settings parsing bug.
    • The WebVR plugin supports the latest WebVR API specs now (while keeping also backward-compatibility to the previous API specs).

    krpano 1.19 Pre-Release VR Demonstration:


    Improved VTOUR Skin

    • The default VTOUR skin was updated and improved to take advantage of the latest krpano viewer improvements.
    • The new skin design was slightly changed and optimized for wider-screens (e.g. the old one wasn't looking very well on wide 21:9 screens). The old design is still available by changing a few skin settings or by using the 'vtourskin118.skin' template.
    • The desktop/tablet and mobile layout xml declarations were unified. The scaling for all layouts is now the same. The only differences for the mobile layout were defined in the skin settings now.
    • When hiding / minimizing the skin (via the hide skin button) there are now light-transparent buttons (with bars as hit-area) at the screen edges to be able to navigate easily through the tour also in this mode.
    • There is now an additional alternative icon-set with a 'lighter' design available (vtourskin_light.png).
    • The skin is now easier to customize. For many changes it's only necessary to change one of the additional new skin settings in the tour.xml. As examples for the skin customization a few different skin designs are already included. They can be selected either by a changing the 'design' setting in .html file or editing the tour.xml.
    • These example skin designs are included and directly usable:
      • The new default 1.19 skin design:

      • A Glass design:

      • A modern Flat design:

      • The Flat design with the lighter icon-set:

      • An Ultra-Light design:

      • And the previous Version 1.17 design:

    • Try these different skin designs interactively here:

    New XML / Actions features

    • New Expression Parser
      • There is new and more functional expression parser in krpano. This 'expression parser' is used in all actions where conditions or expressions need to be resolved (e.g. in the if() and for() actions).
      • The new one can now handle also simple mathematical expressions and can work with numbers, strings and conditions at the same time. The supported mathematical operators are:
        + - * / ^
        . The logical operators are
        AND, OR, EQ, ==, !=, ===, !==, LT, LE, GT, GE and !
        . The ternary operator
        if ? then : else
        and nested expressions via brackets are supported too.
      • E.g. now it's possible to use more complex expressions like:
        if(a*2+b GT (c+3)*1.5 OR teststring == '123', ...);
      • To take more advantage of the new parser, it is available directly as normal krpano action:
        calc(result, expression);
        and as function that can be used when passing arguments to an action:
        testaction( calc(expression), calc(expression) );
        and also during the xml parsing in static xml attributes by using a 'calc:' prefix:
        <settings width="100" />
        ...
        <layer ... width="calc:settings.width * 2" />
      • Strict mode - Together with the new expression parser there is a new strict mode. When this one is enabled (not by default) the parser is no longer using the given variable name as string when a variable with that name doesn't exists.
    • More Dynamic in Static XML Code
      • It's now possible to use
        get:variable
        and
        calc:expression
        in xml attribute values - e.g.:
        <design color="0xFFFFFF" size="100" />
        <layer ... bgcolor="get:design.color" />
        <layer ... width="calc:10 + design.size + 10" />
        These attributes will be resolved top-down directly after the xml parsing.
      • There are new xml-if-checks that allow to filter/skip certain xml elements already during the xml parsing. Each xml element can have an
        if="expression"
        attribute. When the expression resolves to false, then that xml element and all its sub-elements will be skipped.
        Note - there is one special case - when using the if="..." on <include> elements, only variables that were already defined before the current xml can be used! This is because the include resolving is done before the normal xml-parsing. A way to define variables before the first xml parsing is using the initvars embedding setting. Example:
        <include url="design_flat.xml" if="design == flat" />
    • There is an new 'normal' device, which is the same as 'desktop.or.tablet', but makes it easier and nicer to use together with the 'mobile' device setting.
      E.g. to define in the xml a different size for desktop/tablets and mobiles:
      width.normal="200"
      width.mobile="100"
    • Have a look at the new vtourskin.xml for example-usages of the new xml features.

    More...

    • It's now possible to play sound on panoramic videos on the iPhone. For this purpose simply add an external sound file (e.g. a mp3 file) to the videourl setting (or the playvideo() call) - e.g.
      videourl="video.mp4|video.webm|video_iphone_sound.mp3"
      . The video playback will be automatically synchronized to the sound playback.
    • When using multires-panos in VR then the whole multi-resolution level that is required for the current VR resolution will be fully loaded/preloaded when entering VR mode or loading a new pano to avoid any loading-interrupts during the viewing.
    • The pano-blending in WebGL rendering mode was improved. No more wrong blending between different multires levels during the loading and no wrong blending/additive-mixing with the html page background color.
    • The krpano tools are creating now better optimized level sizes for mipmapped WebGL rendering. This can improve the loading and decoding performance.
    • The HTML5 rendering performance and JS memory usage was improved.
    • The HTML5 viewer supports native CSS mouse cursors now.
    • The embedding script provides a new mobilescale setting for setting a custom scaling for mobile devices and a new fakedevice setting faking the device detection for internal device tests.
    • Beside of the news above there were also many other detail improvements and fixes, but more about that on the final release.

    Why still a Pre-Release?

    • Especially the distorted hotspot rendering via WebGL (currently only enabled in Stereo-rendering mode) is still not finished yet. The krpano viewer already offers a lot of hotspots features and for bringing them all also to WebGL rendering, several internal structures still need to be refactored for optimal performance.
    • There is no tools/droplet support for handling the input of stereoscopic images yet. The usage of stereoscopic images need to be set-up manually in the xml at the moment.
    • The krpano webpage, the documentation pages and the examples aren't fully updated yet.
    • But beside of this, the pre-release version itself should be stable and ready to use.

    Download



    Best regards,
    Klaus

  • GREAT Klaus !!!! *cool*

    I just recived my new HMD, just have a new version of my favourite software, so I'll be having a great weekend !!

    Thanks so much klaus for keeping us at the lastest tech development

    The new expression parser it's just really awesome !!!

  • Hello,

    A big thank you Klaus !!!!
    I am currently doing a virtual tour with 12 rooms of a castle in France.

    I will soon show this work with three glasses oculus rift connected to 3 computers.

    I used to work with Panotour, but they do not have the VR mode in their software ...

    I made "with the example of version 1.19" create the visit with krpano and have also integrated it soundscapes in any room.

    I have just three short questions:

    - The computers I use have no keyboard and no mouse and I want at
    computer startup arrive directly on the menu with thumbnails without
    having to click on the button "ENTER VR"

    - Is it possible to make a project with consistent Panotour with oculus rift changing files?


    - Is it possible to put in my virtual tour video hotspots "I tried
    with the example plugin version 1.18, but it is not working ..."?

    Sorry for my english google

    Dan

  • Hi,

    - The computers I use have no keyboard and no mouse and I want at
    computer startup arrive directly on the menu with thumbnails without
    having to click on the button "ENTER VR"

    Entering the WebVR fullscreen mode is like entering the normal fullscreen mode. In both cases a user-interaction like a click or keyboard-hit is required.

    What you could do is to show a a full-sized image or layer when being not in fullscreen mode and using the click on that layer/image to enter the VR mode again.

    - Is it possible to make a project with consistent Panotour with oculus rift changing files?

    The easiest way getting automatically a fully VR capable tour should be using the MAKE VTOUR droplets of the new version.

    Is it possible to put in my virtual tour video hotspots "I tried
    with the example plugin version 1.18, but it is not working ..."?

    The hotspot-support isn't fully ready yet. Only normal images are supported at the moment.

    But if I look around with a loop, the buttons next and previous are gone.

    The 'VR-scene-navigation hotspots' are slowly following the users view. That means when quickly looking around it can take a bit until they are back.

    Look into the vtourskin.xml at this line to change the following speed:

    Code
    var f = 0.01;	// follow speed factor
    Quote

    but, ich schreibe es mal auf deutsch, bei der pre 2 hängen nach einigen herumspazieren in virtuellen touren, das nachladen
    der weiteren panoramen, das war bei bir bei der pre1 nichr der Fall...

    Ich konnte hier noch kein Problem nachvollziehen, aber bei der Pre-Release 2 wir im Falle eines Multires-Panos zu Beginn gleich der gesamte Level vollständig geladen um ein späteres Nachladen zu vermeiden (speziell am Desktop mit der Oculus Rift mit 75hz kann dies einen
    großen Unterschied ausmachen, da dort kleine Ruckler viel stärker
    auffallen). Dieses vollständige Laden könnte eventuell bei einer langsameren Verbindung oder einem stärker ausgelastetem Server eventuell aus 'hängen' empfunden werden, aber grundsätzlich es hier eigentlich keinen Bug geben...

    Best regards,
    Klaus

  • Vielen Dank für die neue Version. Sie erscheint genau richtig.

    Leider musste ich nach dem Einbau feststellen, dass sich die Position unserer Elemente stark verändert hat. Welche Veränderungen an der Positionsberechnung gab es seit der PR1?

    Ich zentriere die Elemente vertikal, in dem ich die Höhe durch 2 rechne und dann als oy Wert lege. Nun werden aber die Hotspots viel weiter unten dargestellt. Zum Beispiel entspricht der Wert 25 derselben Position als vorher 350. Dies wirkt sich dann auf alle folgenden Hotspots aus, da diese ihre Position immer vom vorhergehenden beziehen.

    In der Dokumentation steht etwas von absoluten und relativen Werten. Kann es damit zusammenhängen?

  • Hi,

    Leider musste ich nach dem Einbau feststellen, dass sich die Position unserer Elemente stark verändert hat. Welche Veränderungen an der Positionsberechnung gab es seit der PR1?

    Ich wüsste jetzt nichts...
    Bitte um ein Beispiel.


    Twice downloaded the Windows zip archive, both times it would not open itself and winRAR also declared it corrupt. Could you check this?

    The files on the server are okay. Please clear your browser cache (to remove the partial/broken download) and try loading again.


    Here is the video:

    Okay, that's a special case that can only happen in fake mode when wrapping vertically 360 degree around. In real VR or normal viewing such can't happen.

    To fix that the vertical looking position in the 'webvr_menu_following' action would need to be shifted into the -180 to +180 range.
    E.g. open the vtourskin.xml and look for these lines:

    Code
    h   = (h  -(h|0))   + (((h|0)  +360180)60) - 180.0;
    hsh = (hsh-(hsh|0)) + (((hsh|0)+360180)60) - 180.0;

    and change them to (that means insert the middle line):

    Code
    h   = (h  -(h|0))   + (((h|0)  +360180)%360) - 180.0;
    v   = (v  -(v|0))   + (((v|0)  +360180)%360) - 180.0;
    hsh = (hsh-(hsh|0)) + (((hsh|0)+360180)%360) - 180.0;

    then this case would work too ;-).

    Best regards,
    Klaus

  • Okay, that's a special case that can only happen in fake mode when wrapping vertically 360 degree around. In real VR or normal viewing such can't happen.


    Sorry for bothering. I supposed that must be only an issue for fake-mode on PC.
    I just wanted to show how deeply I am interested in this new marvelous version! *thumbsup*

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!