Well, that's an interesting comparison of course. I compared side by side after a few browser refreshes with cache DISABLED (to force all tiles to load from server). Before anything else, let's look at the pure technical side, with last tile load highlighted on the bottom right:
There is certainly no difference in visuals after everything is loaded into initial view. You should be able to see that from the screenshots. Basically the SAME tiles have been loaded into view, based on my display pixel resolution (1920 x 1080). In BOTH cases, I see it has loaded LEVEL4 into view (screenshots X3
). This was entirely expected of course.
There should not be any big difference in loading speed. After all, the tiles are simply loaded as JPG files from your browser, limited to the speed of server vs internet. For the sake of comparison, as in my screenshots:
All tiles loaded X3:
All tiles loaded pano2vr:
That difference is probably a bit random. After refreshing a few times, the total loading time for all tiles is similar, almost identical. And of course, this is to be expected ... It is after all loading pretty much the same tiles from the same server. In the case of X3, you are also loading the entire X3 page first, including JS/CSS/HTML/IMAGES, although they will load very fast. X3 is also preloading previews for the other panoramas (next/previous). From a pure technical perspective, there is certainly no reason to believe X3 is slower at getting from A (nothing loaded) to Z (the current view entirely loaded).
Perceived difference in loading:
Ok, this is interesting, and is likely what you are referring to. Did you notice in the bottom left of the screenshots that X3 had loaded 1.8 MB of tiles while pano2vr had loaded 2.4 MB of tiles? This is because pano2vr loads through all levels (0,1,2,3,4) to get to level 4, while X3 only loads the level 0 (only 1 tile) and the level which is targeted to display 4. This basically means:
Tile quality looks better while loading target level (in my case level 4), because the previous level (in my case level 3) is already displaying as a temporary placeholder for the loading tile. X3 on the other hand, will only display level 0 below the loading target level, which of course is a tiny image and will therefore look blurry until the target tile is loaded. There is NO visual difference after all target tiles are loaded into current view.
Loading all levels prior to target level will of course require more loading (in this case, about 33% more), and ultimately, it will take longer time before target level is loaded into view (because it will load smaller preview levels first). Basically the browser is loading tile levels that are not used, or at least only used to display behind "loading" tiles. Also, it requires more memory from the device, because multiple levels are actually stored as textures for immediate access.
There is no technical speed difference ... If anything, X3 will get from A to Z faster than pano2vr because it loads less "progressive" tiles. Also, there is no visual difference once all tiles for a view are entirely loaded. I do see benefits of loading a higher quality "pinned" level into view ... After all, the visitor will be panning the panorama around, and tiles will be added/removed as they navigate the panorama, and it looks nicer with a higher-quality "loading level". I am pretty sure I can add this to X3 ... It's a method referred to as pinLevel
, and we can choose what levels to "pin" (and force load) into the panorama texture. I am however not quite sure how to implement it in a smart way ... In X3, there is another factor also: multiple panorama scenes, which are actually preloaded, with first level already pinned into texture memory ... If you have several scenes, each with several levels pinned into texture memory, you are asking for trouble. For a single-scene pano2vr, this is less critical of course.
Interesting, and something to think about!
voyezvousca wrote:I tryed to upload the pano2vr project with html5. And it's look like very better, i don't know why. It's the same files.
It might look better while panning/loading, because the temporary-tile is of higher quality, but no difference once target tiles are loaded.
voyezvousca wrote:For me its very very better with pano2vr, i don't see the "square loading" when i scroll in image.
Actually, you do see the "square" loading in pano2vr, but since it's a higher quality "loading tile", there will only be a subtle difference from "loading tile" to "target tile" is loaded
voyezvousca wrote:And for example in x3 panorama plugin, if i scroll at right to left, the image reload with square all the time. In pano2vr, is seem to be preload, all the time.
For optimal memory management, unused tiles are unloaded from texture, and reloaded on demand ... normally very fast from your browser cache of course (unless you have disabled cache for testing). In pano2vr, all levels are "pinned" into texture memory ... Seemingly all previous levels of current level, that fit into the view, as well as all tiles that are already loaded once. May I ask, for the sake of comparison, have you been testing in from browser developer tools with cache disabled? That would give a huge disadvantage to X3, because you are preventing tiles from being stored in browser cache ... pano2vr stores all tiles in webGL texture memory.