krpano 1.19 - Pre Release 1 - WebVR / MobileVR / Stereoscopic 3D Support (Oculus Rift, Google Cardboard, GearVR, ...)

  • Ok, I've been testing those new features a bit, must say it works great !
    The head tracking works even better with the Chromium WebVR browser, but unfortunately the status bar doesn't hide when going fullscreen (didn't found how to setup it maybe ?)
    Just one thing : I didn't found a way to add textfield in sbs, tried with parent="hotspot[vr_cursor]" but didn't displayed anything and no errors in the log ?
    Is there a way to use textfield in sbs mode ?
    Thanx !!!

  • Hi Jerome,

    Textfiled hotspots are not possible, yet.

    Quote

    Pre-Release Notes:
    In stereo rendering mode only distorted image hotspots will be available (no non-distorted hotspots, no textfield hotspots, no polygonal hotspots).

    As a layer they should work, i had no problem at least.

    Tuur *thumbsup*

  • Hi,

    Now 2 things are missing (but nothing to do with krpano) : being able to disable mobile screensaver and the possibility to play sounds without user interaction...

    I've already made a request here for disabling the mobile screen-off:
    https://github.com/toji/chrome-webvr-issues/issues/22

    Sound without user interaction should become possible as soon as the WebAudio support for the soundinterface plugin is ready (planed for the final 1.19 release).


    One more question, is there any way to make vr mode the default?

    There is an user interaction like a click or touch required to be able to switch to the (VR-)fullscreen mode (that's a browser security restriction).
    But you could make a kind of intro button or screen and use the click on that to call the enterVR() action to switch to VR mode.


    Note that I dont have any hotspots, for now it's a simple one pano "tour", made out of a spherical equirectangular 4096x2048 pano.

    This case should be no problem, but my experience with the Note 4 is that, that the framerate isn't stable for some reason (not related to krpano or the VR mode), sometimes it renders perfectly with 60fps, but sometimes only with 45-55fps, even just rotating the device once can change that. That seems to be a Chrome or Note 4 GPU problem. You could see the current frame rate by enabling the 'show-fps-counter' setting on the 'chrome://flags' page. Other devices don't show that behavior.

    Any info about the FPS on an iPhone 6? I know Mobile Safari doesn't have WebVR though...

    An iPhone 6 or 6+ is able to deliver stable 60fps.
    The WebVR API isn't requiered for mobile VR.


    The head tracking works even better with the Chromium WebVR browser, but unfortunately the status bar doesn't hide when going fullscreen (didn't found how to setup it maybe ?)

    That seems to be a limitation or bug of that special Chrome Shell version.
    I have posted something about that here:
    https://github.com/toji/chrome-webvr-issues/issues/23


    Just one thing : I didn't found a way to add textfield in sbs, tried with parent="hotspot[vr_cursor]" but didn't displayed anything and no errors in the log ? Is there a way to use textfield in sbs mode ?

    In VR mode (especially on Desktop) basically only WebGL elements are visible - and currently only the pano itself and distorted image hotspots are rendered via WebGL. Drawing a HTML/CSS text element to a WebGL texture isn't possible due browser security restrictions (there are hacks via SVG with inline HTML, but they don't work on all browsers). That means for text in this case a special solution will be required, I'm still working on that, maybe there will be a simplified (=no CSS styling) text support via internal Canvas rendering.

    Using textfields as overlayering <layer> elements would be possible, but only on mobile, on Desktop with real WebVR support only the WebGL alone will be shown.


    Quote

    is there any option disabled the gyro control,switch sth like bluetooth remoter to rotate the pano and click the hotspot? maybe set mobilevr_support="false"

    How do you mean that? VR without gyro control???
    I've you just want to have stereo rendering, set the display.stereo setting to true without using the WebVR plugin.


    Best regards,
    Klaus

  • I've already made a request here for disabling the mobile screen-off:


    Cool Klaus !!!

    2 questions :
    I would like to be able to set the view.hlookat for each hotspot loading a scene to keep the "view direction", so I added the view.hlookat setting in the loadscene action :

    Code
    <action name="goto">
    		mul(newdepth, depth, 2);
    		tween(depth, get(newdepth), 0.25);
    		set(enabled,false);
    		set(capture,false);
    		loadscene(%1, view.hlookat=%2, NOPREVIEW|MERGE|KEEPMOVING, BLEND(1));
    	</action>

    looks it works on desktop but is ignored when using gyro, is my cde wrong ?

    second point I added the set(enabled,false) to the goto action because moving the hotspot up was a bit strange, it looks enabled,false doesn't work ?

    Oups, third question : I tried the new gyro plugin with an old project using the old mobilevr demo, with the gyro2.js only the left side works, the right one keeps static ?

    Thanx for your great work Klaus !

  • Hi,

    i have problems getting it to work on my oculus rift DK1
    I tried in chromium and firefox nightly.. on mac , it seems ok but the gyroscope doesn't seem to work.
    Also when i look in the vr set up of the interface it does not recognize the device.
    The 'eyes' / IPD also is off very much.

    But i see some in the oculus and it moves with the mouse.. but no head tracking .. :-//

    I guess i do not need the npvr plugin..
    As i did a clean install lately.. Is there any other (oculus) software i need?

    help!

    What is the big trick?
    Do i need browser plugins?
    *question*

    Tuur *thumbsup*

  • newbee here,

    I think the screensaver and disabling the mobile screen-off can easily be achieved (at less on android devices) with a simple NFC sticker which you have in the Google cardboard and can be bought on eBay and added to others (simple NFC apps to program the profile is needed).


    I have tried to load my tour on a SD Card of my Samsung S5 but keep getting an error.
    I think both Chrome and Chrome Shell require a "file://" path but i'm not sure what it should be. or where to put it in the XML(getting an error "failed to execute 'send' on 'XMLHttpRequest') .

  • Hi,

    looks it works on desktop but is ignored when using gyro, is my cde wrong ?

    Of course - the vr/gyro control is setting the looking direction (hlookat/vlookat), if you want to rotate the pano image independently use the image.prealign setting.


    second point I added the set(enabled,false) to the goto action because moving the hotspot up was a bit strange, it looks enabled,false doesn't work ?

    Sorry, not sure what mean...
    The enabled setting is to enable or disable the mouse/touch interactions - or in the vr case to enable/disable the interaction with the vr cursor.


    Oups, third question : I tried the new gyro plugin with an old project using the old mobilevr demo, with the gyro2.js only the left side works, the right one keeps static ?

    Post your example (in a separate thread) - then it would be possible to look at it for errors there.


    i have problems getting it to work on my oculus rift DK1
    I tried in chromium and firefox nightly.. on mac , it seems ok but the gyroscope doesn't seem to work.
    Also when i look in the vr set up of the interface it does not recognize the device.
    The 'eyes' / IPD also is off very much.

    Have you installed the latest Oculus Rift Runtime?

    When you see the 'VR Setup' button on desktop, then the FAKE MOBILE VR MODE is active and the settings there are the ones for mobile VR. When in real WebVR mode the VR setup (with settings like the IPD) will be done by the browser by using the information from the Oculus Rift runtime.

    Here a link to the krpano VR demo with disabled fake mode (mobilevr_fake_support=false):
    http://d8d913s460fub.cloudfront.net/krpanocloud/webvr/index.html?v=119pr1&plugin[webvr].mobilevr_fake_support=false

    There the 'EnterVR' button will be only there when real VR support will be available.


    I have tried to load my tour on a SD Card of my Samsung S5 but keep getting an error.
    I think both Chrome and Chrome Shell require a "file://" path but i'm not sure what it should be

    That's a Chrome restriction - Chrome doesn't allow loading xml files from file:// urls. For local usage on Android you would need to use a localhost server application or some kind of Chrome- or Firefox-based offline reader app that disables that restriction.


    Best regards,
    Klaus

  • so..
    i did install the latest oculus runtime.
    Reboot
    tried again with chromium, which is the only browser that doesn't show the vr settings button, and goes fullscreen..
    But still no head tracking and the eyes are still off.. so no changes.

    *cry*


    Edit:

    Yesssssss it works!! i did this incognito tab.. cmd+shift+N or empty cache..
    haha

    WOWWwwwWWW
    *love*

    Tuur *thumbsup*

  • Of course - the vr/gyro control is setting the looking direction (hlookat/vlookat), if you want to rotate the pano image independently use the image.prealign setting.


    Hum, maybe I'm stupid but I don't get it...
    If I use image.prealign then all the hotspots positions are wrong as I want to access to the same panorama with different hlookat values depending from wich pano I come ?
    I tried to make a picture for being a bit more clear :

    So if I click on a hotspot from pano 3 to load pano 1 I want to load pano 1 with hllokat 0, but if I load the same pano from pano 2 I want to load it at htlookat -20

    What I don't understand is that view.hlookat was working with javascript sbs previous version and gyro ?
    How can I achieve this then ?

    Take a look at http://www.360images.fr/parisvr and select eiffel tower tour for example.

    Second question : when not using VR mode then hotspot doesn't respond onclick, same thing on your demo Klaus ?

  • About the second question
    take this line out

    <display hotspotrenderer="webgl" devices="html5"/>

    at the bottom of the krpano_vr.xml

    Hope it helps

    Tuur *thumbsup*

  • I have a few questions using krpano with 3d rendered environments. I'm using octane render stereoscopic camera that can output both Left/Right and cubemap renders.

    The first attempt is located here, it's a left/right render, I do not have goggles but the ipd appears wide at first glance. In the octane software by default it has a ipd of .065. It would be great if anyone can test and provide feedback
    http://profileme.com/pano/stereo/index.html


    I could not get the cubemap projection to align in krpano and have a post on the otoy site. A vr droplet for octane cubemap stereo 12 cube renders would be the goal.

    Post and files:
    http://render.otoy.com/forum/viewtopi…tart=30#p222907

  • Just a question regarding stereoscopic panoramas. What are your preferred methods to shoot two panoramas for L en R eye?

    Currently, I use a method with one camera where I rotate the panohead 180 degrees horizontal en 180 degrees vertical.

    With approx 12 shots per pano, the parallax is distributed, however it's still a very labor intensive job to stitch the pano's parallax error free.

    Any suggestions for other stereoscopic panorama shooting methods with one camera?

  • Hi,

    So if I click on a hotspot from pano 3 to load pano 1 I want to load pano 1 with hllokat 0, but if I load the same pano from pano 2 I want to load it at htlookat -20

    What I don't understand is that view.hlookat was working with javascript sbs previous version and gyro ?
    How can I achieve this then ?

    Currently the current absolute looking direction will be kept when switching panos in VR. When all panos are aligned (or pre-aligned) the same way (e.g. same north in all images) then the looking direction will be always the same.

    That means your are asking for an additional pano-depended hlookat-offset to rotate the current looking direction of the user, right?
    E.g. when the user was moving ahead to the next pano, but in the next pano he would be orientated back to the previous pano without rotating the head.


    Second question : when not using VR mode then hotspot doesn't respond onclick, same thing on your demo Klaus ?

    This is due the by default enabled WebGL hotspot rendering, see the answer from Tuur. The WebGL hotspot event handling isn't fully implemented in that pre-release yet.


    I have a few questions using krpano with 3d rendered environments. I'm using octane render stereoscopic camera that can output both Left/Right and cubemap renders.

    The first attempt is located here, it's a left/right render, I do not have goggles but the ipd appears wide at first glance. In the octane software by default it has a ipd of .065. It would be great if anyone can test and provide feedback
    http://profileme.com/pano/stereo/index.html

    Sorry, but that looks completely off - the distance between the left and right image is way to large (look like several meters) and there is also some strange 'bend' in the background...

    But that's a problem of the stereoscopic image itself, krpano is just displaying it as it is. A correct image will also look correct ;-).

    Best regards,
    Klaus

  • I read over your reply Klaus, sorry.

    Im definitly going to enable fps and see what it says.

    While looking at the webvr.xml documentation I came across "mobile_sensor_mode" which is default 3.

    Maybe it's this setting which I have to play with?

    This case should be no problem, but my experience with the Note 4 is that, that the framerate isn't stable for some reason (not related to krpano or the VR mode), sometimes it renders perfectly with 60fps, but sometimes only with 45-55fps, even just rotating the device once can change that. That seems to be a Chrome or Note 4 GPU problem. You could see the current frame rate by enabling the 'show-fps-counter' setting on the 'chrome://flags' page. Other devices don't show that behavior.

    An iPhone 6 or 6+ is able to deliver stable 60fps.
    The WebVR API isn't requiered for mobile VR.

  • <action name="webvr_onavailable">
    loadsettings();
    tween(layer[webvr_button].alpha,1);
    callwith(layer[sensor_button],update());webvr.toggleVR();
    </action>

    hope it helps

    Tuur *thumbsup*

  • Hi Klaus,

    i find on chromium on mac (with oculus dk1) that it crashes with nested layers.

    crash:

    Code
    <layer name="blablablablablabla   >
        <layer name="ilovekrpanoilovekrpanoil... />
    </layer>

    without it works fine .. of course *g*
    *love*


    Tuur *thumbsup*

Participate now!

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