You are not logged in.

1

Thursday, December 19th 2013, 6:17pm

New 1.17 behaving differently to original prerelease version

I have just remade a panorama using the new version of 1.17 released today and I am finding the viewer is behaving differently and rather strangely on my iPad compared to the original prelease version.

In my vtour-multires.config file I have -

tilesize=600
levels=2
levelstep=2

Using as input cube faces of 2400x2400 the droplet gives me, as expected, two levels - 1200 and 2400, with a tile size of 600.

This displayed fine yesterday with the original prelease version, but today, after remaking with the new version it's all a bit strange. The pano loads on the iPad showing the 1200 level and as I zoom in I can see the resolution increase as the 2400 level loads, but when I stop zooming the resolution drops back to the 1200 level, even though the pano is now fully zoomed in.

To prove this I have outlined the tiles for the two levels in different colours in Photoshop - yellow for the 1200 level and green for the 2400 level. I can clearly see that the tiles are oulined in yellow immediately after the pano loads, change to green as I zoom in, but revert to yellow when I stop zooming.

If I change the .config file to make three levels - 600, 1200 and 2400 - there is no problem, and the viewer behaves as expected, and the 2400 level remains after zooming in. However I would prefer to omit the 600 level as I don't like that fuzzy level showing first when panning around.

Am I doing something wrong, please?

Regards

Andrew

2

Thursday, December 19th 2013, 6:25pm

Hi,

the 'switching back' to a lower levels happens when the memory limit (memory.maxmem) is reached and there is not enough memory to display the current level fully in the required resolution.

In the previous 1.17 pre-release versions, the maxmem limit was a bit higher by default (50 MB instead of 40 MB), and the viewer allowed crossing the memory limit a bit for some cases.

This was done to ensure a better iOS stability, especially on iOS 7, which has a very bad memory handling.

You can try increasing the memory limit to avoid this behavior.
e.g. add in the xml:

Source code

1
<memory maxmem="50" devices="ios" />


Best regards,
Klaus

3

Tuesday, December 24th 2013, 3:40pm

Many thanks, Klaus.

I have been playing with different settings for maxmem, and have found that when viewing on my iPad a pano with a tile size of 650 x 650 pixels and levels of 650, 1300 and 2600 any setting of maxmem less than 48 results in the top level switching back to the 1300 level.

I am reluctant to set maxmem to 48, however, as I am sure you have reduced the default value for ios to 40 for very good reasons, and the last thing I want is for a visitor's Safari to crash while viewing my work - that's a sure way to make certain they don't return!

So before I start playing with reducing the level sizes is there anything else I have missed which would help to reduce the memory usage, please? If not, what from your experience would be the optimum tile and level sizes for a multiresolution pano to be viewed on the iPad? For this particular pano I have set a minimum DFOV of 60, and I find a level of 2600 gives a lovely sharp result.

Would a tile size of 512 help, for instance? Does it matter from a memory point of view if the level sizes are not exact multiples of the tile size? Would having just two levels, say 1300 and 2600 be better or worse?

Sorry, several questions there, but I am far from being an expert in these technical matters, so any help would be much appreciated!

Kind regards

Andrew

4

Thursday, January 2nd 2014, 1:30pm

Hi,

a tilesize of 650 and levelsizes of 650, 1300 and 2600 itself sounds fine and a maxmem of 48 can be also okay.

The default maxmem setting of 40 for iOS is a kind of compromise setting that should fit the most usage cases - e.g. when there is no Bing/Google maps and/or no other bigger images in the pano, then using more memory of the pano itself can still work of course. The best way be testing on several devices to see how it is working. Especially iOS 7 iPads are the most fragile devices here (I'm expecting also several memory related bugs in iOS 7 itself), iOS 6 on the other side should be very stable.

Regarding a tilesize of 512px - iOS internally also splits layers and images into 512x512 tiles, so using a 512px tilesize can be eventually an advantages. On desktop with WebGL the advantages of 512px is the possibility to use 'mip-mapping'. For WebGL is is necessary that the images have a 'power-of-2' size (like 128,256,512,1024) for mip-mapping, but using mip-mapping isn't always required, the panos can also look without it.

Best regards,
Klaus