Posts by Ibrendie


    I've a really simple question, I can't seem to get it working. What I want to achieve is to limit the vertical field of view to "hide" the nadir spot.

    I've the following view settings, which work great in non WebVR mode.

    <view hlookat="0" vlookat="0" fovtype="VFOV" fov="90" fovmin="30" fovmax="150" limitview="lookat" vlookatmin="-90" vlookatmax="+26" />

    As soon as I click the EnterVR button the view is "reset" to the nadir spot (+90). The nadir is visible.

    Is the vlookatmax ignored in WebVR mode?

    Klaus is back, jeej *wink* .

    I've a question for all WebVR enthousiasts over here.

    Maybe we can come up with a simple but effective way to share webvr.xml lens distortion presets with each other.

    As you may know the webvr.xml plugin file includes lens distortion presets for several different VR headsets. See .

    With all these new VR headsets coming out and in the future, maybe we can create a new thread and place all presets there.

    Good idea?

    I have a base directory called "fullClimb." Inside of fullClimb, I have a directory called html which contains a file "demo.html" which contains the snipped I quoted above.

    I have another directory called "hi-res" which has folders for all my tile images ("1-1_Panorama.tiles", "2-1_Panorama.tiles", etc.) and a folder called "xml" with all of my xml files.

    So the relative path from demo.html to 1-1_Panorama.xml is "../hi-res/xml/1-1_Panorama.xml" and the absolute path is "/fullClimb/hi-res/xml/1-1_Panorama.xml"

    What is strange to me is that embedpano seems to be inserting stuff into the middle of the path I have specified, looking at "/fullClimb/hi-res/xml/../../xml/1-1_Panorama.xml" rather than "/fullClimb/hi-res/xml/1-1_Panorama.xml" as I specified.

    Thanks for the tip on only specifying .swf. I will omit the xml path and keep trying.

    I've tested it for you. Actually it's really simple:

    <script src="../pano.js"></script>
    <div id="pano" style="width:100%;height:100%;">	<noscript><table style="width:100%;height:100%;"><tr style="vertical-align:middle;"><td><div style="text-align:center;">ERROR:<br/><br/>Javascript not activated<br/><br/></div></td></tr></table></noscript>	<script>		embedpano({swf:"../pano.swf", xml:"../xml/pano.xml", target:"pano", html5:"only", passQueryParameters:true});	</script></div>

    Note that you also need to add ../ to pano.js if the js file is located in the root folder.

    Furthermore, for your tiles you also need to add something like this (don't pay attention to the file names, those are for my case) :

    <scene name="pano">        <preview url="../hi-res/pano.tiles/preview.jpg" />
            <image>            <cube url="%SWFPATH%/../hi-res/pano.tiles/pano_%s.jpg" />            <mobile>                <cube url="%SWFPATH%/../hi-res/pano.tiles/mobile_%s.jpg" />            </mobile>        </image>    </scene>

    Or use the %SWFPATH% placeholders in the xml.


    I don't know if this works in the html, I don't think so. In case of the images in the xml, you would have the following path:

    <scene name="pano">        <preview url="%SWFPATH%/../hi-res/pano.tiles/preview.jpg" />
            <image>            <cube url="../hi-res/pano.tiles/pano_%s.jpg" />            <mobile>                <cube url="../hi-res/pano.tiles/mobile_%s.jpg" />            </mobile>        </image>    </scene>

    It's important to understand that the paths are "relative to the html file" as I stated earlier.

    Hope it helps.

    I have the following line in a script tag on my html page:

    However, the viewer seems to be trying to load "/fullClimb/hi-res/xml/../../xml/1-1_Panorama.xml" instead of the path I have entered. Does anyone know why embedpano would interpolate the extra "../../xml" into the path? I have tried a variety of paths and some suffer from this interpolation while others don't. I've attached an image of the error message. Any suggestions would be greatly appreciated!

    The paths are relative to the html file as stated on this page:

    Where is your html file located?

    edit: also, you only need to add the path to the .swf file. The other files will inherit the same path als the .swf file, if the file names correspond. See also the above link.

    There is a misunderstanding - I don't mean how to render (that's the easy part) - I mean how to shoot/capture/record the 3d geometry or that depth map.

    When you shoot a pano, you shoot only a flat 2d image without any deep information. There would a laser scanner or 3d-stereo-process required to build that 3d-data.

    Maybe something like this Klaus :)?…g_software_for/

    As of 2015, with HTML5, CSS3(D), WebGL and WebVR support in krpano, I'm curious which IDE's or code editors the krpano users use :) ?

    I want to make a krpano auto-complete plugin for a code editor to help as many people as possible, so I have to know which code editors you use.

    I will focus on HTML5 functionality, not flash.

    Some editors I know:

    - (open-source, from Adobe, I use this one)
    - (open-source, from Github themselves)
    - SublimeText (free, but can be bought to remove registration popup)
    - Notepad++ (free)

    - TextWrangler (Mac only)
    - Coda (Mac only)
    - Espresso (Mac only)

    Many more here:…ce_code_editors

    I used another method instead of detecting WebVR support through the external Javascript interface, I just show a message when WebVR isn't available.


    webvr.xml (plugin)

    In the plugin definition at the beginning of the file I added the action name of my warning layer to the onunavailable:


    xyz.xml (pano xml)

    I created a layer and set the alpha to 0.0 and autoalpha to 1.0 (autoalpha does the trick to also set visible to true based on the alpha setting):

    <layer name="webvr_warning"            url="%SWFPATH%/plugins/textfield.swf"	       html="Unfortunately your browser doesn't support WebVR and/or MobileVR. Click [u]here[/u] for more information (new window)"	       backgroundcolor="0xFFFF99"	       alpha="0"	       autoalpha="true"	       css="color:#000000;font-size:14px;"	       padding="12 16"	       align="bottom" y="24"           zorder="10"           onclick="openurl(', _blank)"           />

    And finally the action to simply set the alpha of the warning layer to 1.0:

    <action name="show_warning">        set(layer[webvr_warning].alpha, 1.0);    </action>

    Hope this helps someone to easily show a warning message when MobileVR/WebVR isn't available.

    Hi Klaus,

    What does the following line do? I don't understand it. I can't find a sensor_button layer and also not an action called update...

    <!-- when WebVR support is available show an EnterVR button -->	<action name="webvr_onavailable">		loadsettings();		tween(layer[webvr_button].alpha,1);		callwith(layer[sensor_button],update());	</action>

    I dont know why but my Pano crashes on osx on chromium
    or its Just me?

    Hi loomitz,

    Yes it crashes also on my Macbook (OS X Yosemite and Chromium WebVR build 0.4.4) with the following report:

    Crashed Thread: 17 Chrome_IOThread

    Exception Type: EXC_BAD_ACCESS (SIGSEGV)

    Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000

    When using a layer to show a fullscreen image (url set to image, width and height to 100%) the image is loaded every time I visit my tour. It looks like the image isn't cached. I tried like 5 different browsers, because I read on this forum that the browser should do the caching.

    Any ideas why my fullscreen image isn't being cached?


    I'm trying to customize the webvr.xml plugin file. I've added an action to the onclick event of webvr_button (Enter/ExitVR button). However, when I EnterVR and the button changes to ExitVR, the ExitVR button doesn't do anything anymore when clicked on.

    What I want to achieve is that a scene isn't loaded until I click on the webvr_button (EnterVR button).

    I think it has something to do with the action webvr_onexitvr in the weber.xml plugin.

    <action name="webvr_onentervr">		set(layer[webvr_button].url,'img/exit.png');		set(layer[webvr_button].align,'top');		set(layer[webvr_button].y,'24');		if(ismobilevr, tween(layer[webvr_setupbutton].alpha,1));		webvr_hide_all_non_vr_layers();		<!-- when the screen size is unknown an no custom size is set, open the setup screen on entering the VR mode -->		if(webvr.ismobilevr == true AND !webvr.isfake AND ask_user_for_screensize == true AND webvr.mobilevr_screensize == 'auto',			set(ask_user_for_screensize, false);			vr_setup();		  );	</action>	<action name="webvr_onexitvr">		stopdelayedcall(vr_button_fadeout);		set(layer[webvr_button].url,'img/enter.png');		set(layer[webvr_button].align,'top');		set(layer[webvr_button].y,'24');		tween(layer[webvr_button].alpha,1);     		tween(layer[webvr_setupbutton].alpha,0);		webvr_restore_layers();	</action>	<!-- the EnterVR and SetupVR buttons -->	<layer name="webvr_button" keep="true" vr="true"	       url="%SWFPATH%/img/enter.png"	       alpha="0"	       autoalpha="true"	       align="center" y="+6%"               zorder="2"               handcursor="true"	       onclick="webvr.toggleVR(); load_scene();"	       />

    I've figured out why the button wasn't doing anything. I forgot to delete a set(onclick,null) from another example lol :) .

    ps How do I format the BBcode of the forum with newlines....