You are not logged in.

Dear visitor, welcome to krpano.com Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

  • "John Myrstad" started this thread

Posts: 91

Location: Norway

Occupation: Product Specialist @ www.fuglefjellet.no

  • Send private message

1

Tuesday, January 5th 2010, 2:44pm

KrPano for gigapixel zoomable flat images

KrPano is great for 360`s but I find it even more interesting for gigapixel zoomable flat images, with the new psb support in krpanotools.

The reason is its scriptability, that makes it better suited then e.g OpenZoom and Silverlight DeepZoom which is more demanding to script.

In some discussions some people find many gigapixel zoomable images a bit boring, and i tend to agree. To utilize the potential of the new image format the images must be authored and scripted with creativity to help the user experience the image. ( Some thougts in a discussion at AutoPano forum: http://www.autopano.net/forum/p56890-today-14-20-54#p56890 )

I believe KrPano might be powerful enough to present gigapixel images with excellence but its still early times and I`m not aware of any really outstanding cases that shows KrPanos potential for gigapixel images.

Hopefully some of you know or have made great cases I`m not aware of, but it would be interesting if we together could discuss and push the limits for KrPano gigapixel images and maybe collaborate to make some scripting templates ?

One of the features I miss in KrPano for gigapixel images is what is called Sparse Images in DeepZoom terminology. Its basically an aerea in the image pyramide that has more depth/resolution than the rest of the image. May this be fauxed/hacked in KrPano by manually adding more depth/image tiles ?

Any ideas on the subject(s) ?

John Myrstad

2

Tuesday, January 5th 2010, 4:31pm

A few interesting Gigapixel images

A few really interesting multigigapixel images and many boring ones. It certainly is a learning process and few subjects seem deserving of being captured in enormous resolution just for the sake of resolution.

The problem is that a good 'photographer' captures a slice of a precise interesting moment of a 'scene', so it has the potential of being very visually stunning or interesting, whereas a 'gigapanographer' has to capture everything in one long go and can't necessarily zoom in on when and where the action is happening. Leaving it up to the user of the image to find meaning and reason for viewing it. It becomes just a circus distraction if they don't know the 'why' they are viewing a scene. Its almost like, 'this is what it would look like if you were here with some binoculars'.

I have taken a few 'gigapans' where there is 'action' and a 'storyline', but I certainly had to use the hardware and software in ways that stretched the limits.

I present them here using Krpano (although no scripting)

In all of these action panoramas I used the 'robot' to capture the background scene, but then filled in (or filled in at first) the 'Action' of the scene and added it to the overall image through very laborious blending.

I have often thought that if the 'robot' could go into free-movement mode, but still record precisely where the image is taken (yaw, pitch, roll, zoom - like Papywizard records) then have the stitching software hard place the images into the scene, we could have much more 'interesting' gigapixel images as we could easily go back and add the action to a scene.

The sparse image concept for sky is so badly needed as its just water vapor, who needs it in 13 gigapixels, if the sky could be captured with a few images instead of thousands then the need for the high afternoon sun and cloudless sky could be alleviated.

Its funny, in the 'Gigapan' community, there seems to either be an inability to edit a panorama after stitching (it does take high power software and machine) or the opinion that a straight robotic shot is the only 'pure' form of 'gigapanning', and that editing, cropping, getting rid of ghosts, and adding interest is the rarity on anything posted.

As for the 'scripting' in krpano, there needs to be some sort of preflight mode, that downloads the necessary image tiles and caches them beforehand so that the 'flight' is not blury low-res tiles the first (and likely only) time a viewer views a scripted scene. I have thought about having a second krpano display in a layer behind the visible one that is a few seconds ahead in its scripted storyline in order to get the image tiles precached for the krpano display that is viewed. As noted in this forum recently, the easing algorithms in krpano need to be worked on too.

Cheers,

Jason Buchheim
Founder and Director| Odyssey Expeditions Tropical Marine Biology Voyages

This post has been edited 2 times, last edit by "odysseyjason" (Jan 5th 2010, 4:44pm)


  • "John Myrstad" started this thread

Posts: 91

Location: Norway

Occupation: Product Specialist @ www.fuglefjellet.no

  • Send private message

3

Tuesday, January 5th 2010, 5:07pm

I enjoyed your images. They have in common that they have story and detail, and then they work very well. Gave me some inspiration for some alpine resort gigapixels I`m to take.

Regarding sparse images, I meant that sky could be shot with less resolution than the rest, and interesting details with more resolution than the rest.

Thanks for sharing your views and images ;)

4

Friday, January 8th 2010, 9:49am

Hi,
One of the features I miss in KrPano for gigapixel images is what is called Sparse Images in DeepZoom terminology. Its basically an aerea in the image pyramide that has more depth/resolution than the rest of the image. May this be fauxed/hacked in KrPano by manually adding more depth/image tiles ?
technically that would be possible in krpano of course
but it's the way how to control/define that - I'm thinking about multiresolution hotspots for that...


As for the 'scripting' in krpano, there needs to be some sort of preflight mode, that downloads the necessary image tiles and caches them beforehand so that the 'flight' is not blury low-res tiles the first (and likely only) time a viewer views a scripted scene. I have thought about having a second krpano display in a layer behind the visible one that is a few seconds ahead in its scripted storyline in order to get the image tiles precached for the krpano display that is viewed. As noted in this forum recently, the easing algorithms in krpano need to be worked on too.
okay, I will think about a way how to preload/cache pre-defined views(paths)...

best regards,
Klaus

  • "John Myrstad" started this thread

Posts: 91

Location: Norway

Occupation: Product Specialist @ www.fuglefjellet.no

  • Send private message

5

Friday, January 8th 2010, 6:39pm

Quoted

About sparse images: technically that would be possible in krpano of course
but it's the way how to control/define that - I'm thinking about multiresolution hotspots for that...
Thats cool. Then it will be possible to do lot of creative stuff.

Is that technically possible in the future or is it possible with 1.08 with some hacks ?
Is the tile naming/scheme documented anywhere ?

I`m also wondering if its possible to layer vector art with gigapixel size in Krpano ?

6

Saturday, January 9th 2010, 12:03am

Hi,
Is that technically possible in the future or is it possible with 1.08 with some hacks ?
in future,
internally the rendering engine could already do it,
a distorted hotspot is internally already the same object like the normal pano object (sphere, cube, ...),
but the things 'around' it needed to be adopted/written,
(but it's not a easy as it sounds maybe, it's much stuff to re-written for that, I think it will not be in version 1.0.8)

Is the tile naming/scheme documented anywhere ?
see here:
http://krpano.com/docu/xml/#image


I`m also wondering if its possible to layer vector art with gigapixel size in Krpano ?

what exactly do you want to do?
polygonal hotspots could be used a vector elements...

best regards,
Klaus

  • "John Myrstad" started this thread

Posts: 91

Location: Norway

Occupation: Product Specialist @ www.fuglefjellet.no

  • Send private message

7

Saturday, January 9th 2010, 8:00pm

Quoted

what exactly do you want to do?
polygonal hotspots could be used a vector elements...
Info like on alpine maps: http://www.alpineskimaps.com/htm/austria…k/wintermap.htm

8

Monday, January 11th 2010, 10:52am

Hi,

when making/using a lot of hotpots, that should be possible,

but about "vector elements" - what format would you use for loading that?
I think the only supported format in flash for vector graphics is the swf format,

best regards,
Klaus

  • "John Myrstad" started this thread

Posts: 91

Location: Norway

Occupation: Product Specialist @ www.fuglefjellet.no

  • Send private message

9

Monday, January 11th 2010, 12:32pm

Yep swf will be the format, but in gigapixel images, the size of the vector flash might be 30.000 x 15.000 px if I`m to have a layer with a ski trail. I havent tried yet, but is it ok to assume that it will be ok with flash hotspots at this scale ?

10

Monday, January 11th 2010, 1:08pm

but is it ok to assume that it will be ok with flash hotspots at this scale ?
I have no idea, never tried such large flash vector graphics, it depends on the flashplayer...

but why not using many smaller hotspots?

  • "John Myrstad" started this thread

Posts: 91

Location: Norway

Occupation: Product Specialist @ www.fuglefjellet.no

  • Send private message

11

Monday, January 11th 2010, 3:08pm

Many smaller hotspots for the trails ? Many hotspots for various points of interest is OK, but trails or ski trails are usually almost as large in height as the map subject itself.

I guess i just have to try.

Posts: 8

Location: Israel

Occupation: interactive imaging

  • Send private message

12

Friday, March 26th 2010, 9:21am

krpano vs. openZoom

I created a number of GigaPixel images recently and looked for the best platform to display them. For the sake of viewing only, openZoom offered the best user experience since it's flash based and has a very sexy gradient zooming motion when you click the image:

http://chili-media.co.il/gp/nokia166mm.html

more photos here http://chili-media.co.il/gp/

But I'd like to add some functionality, and krpano is definitely the best platform around for easy and effective scripting. I loved what was done in Dresden http://www.gigapixel-dresden.de/dresden26GP, but the user experience while navigating freely isn't very attractive.

If krpano could offer the best of both worlds - its current awesome functionality along with openZoom's sexy navigation - I believe krpano would get a lot of attention from the GigaPixel photographers. It would basically replace the dependence upon gigapan.org to display the gigapixel photos.

In my mind, the key feature that needs to be added the krpano is the possibility to click-to-zoom, in addition to the scroller-zooming and navigation buttons. odysseyjason's suggestion for "preflight" loading may also increase the user experience.

Is there currently a possibility to enable click-to-zoom by scripting something fancy?

thanks klaus, you rock. *thumbup*

michel

Professional

Posts: 1,153

Location: ANDORRA

Occupation: TV

  • Send private message

13

Friday, March 26th 2010, 10:43am

Hi michaelhermon,

Quoted

....the key feature that needs to be added the krpano is the possibility to click-to-zoom, ...
That is already possible *smile* ... The Keys to do are:
  • onclick event reference (see new events)
  • screentosphere(screenx,screeny) reference (at the bottom page)

So, here a code to implement such a feature....

Javascript inside the html file:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script  type="text/javascript">
// <![CDATA[

function krpano() 
{
return  document.getElementById("krpanoSWFObject");
}

function  movetoscreentosphere(){

var mousex = krpano().get("mouse.x");
var  mousey = krpano().get("mouse.y");
var hvs =  krpano().get("screentosphere("+mousex +","+mousey +")");
var hva =  hvs.split(",");

var ath = Number( hva[0] );
var atv = Number(  hva[1] );

krpano().call("moveto("+ ath +","+ atv +")");

}

//  ]]>
</script>


In the xml, event onclick that calls the javascript function movetoscreentosphere():

Source code

1
2
3
4
5
6
7
<krpano  version="1.0.8">
 
 <events onclick="js(movetoscreentosphere());" />
 
 ............
 
 </krpano>


Also, have a look to this thread of a similar feature...
OnDoubleClick -- MoveTo() -- ScreenToSphere()

SAlut.

michel

Professional

Posts: 1,153

Location: ANDORRA

Occupation: TV

  • Send private message

14

Saturday, March 27th 2010, 2:11am

Hi michaelhermon,

*squint* The answer above was made a little in a way precipitated *rolleyes* ...

The Keys to do are basically correct... but the code is not... *thumbdown*

So, here the javascript corrected:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script  type="text/javascript">
// 
<![CDATA[

function krpano() 
{
return  document.getElementById("krpanoSWFObject");
}

function  movetoscreentosphere(){

var mousex = krpano().get("mouse.x");
var mousey = krpano().get("mouse.y");
var  current_fov = krpano().get("view.fov");
var  next_fov = current_fov - 10;
var hvs =  krpano().get("screentosphere("+mousex +","+mousey +")");
var hva =  hvs.split(",");

var ath = Number( hva[0] );
var atv = Number(  hva[1] );

krpano().call("lookto("+ ath +","+ atv +","+ next_fov +")");

}

//  ]]>
</script>

on line 14 you can set how many degrees the fov will be reduced (here 10)...

Source code

1
2
3
4
5
6
7
8
9
10
11
<krpano  version="1.0.8">
	
	<events onclick="js(movetoscreentosphere());"
			onviewchange="set(events.onclick,);onidle();"
			onidle="set(events.onclick,js(movetoscreentosphere());)"
			onxmlcomplete="set(idletime,0.1);"
			/>
 
............
 
 </krpano>

From the onclick event, we call the javascript function...
But when onviewchange, we avoid the calling to the javascript function, setting the onclick to null...
And onidle, we set back the onclick to be able to call the javascript function...

I think this code can be a way to reach your goal...
Comments, improvement are welcome...

SAlut.

This post has been edited 1 times, last edit by "michel" (Mar 27th 2010, 2:29am)


michel

Professional

Posts: 1,153

Location: ANDORRA

Occupation: TV

  • Send private message

15

Monday, March 29th 2010, 9:16pm

Hi michaelhermon,

The code above does not work as expected *sad* ... click-to-zoom seems to not be as easy as it seems... I am going to open a new thread about this...

An easy way to do is, instead of using onclick, use a simulated ondoubleclick... Like this:
Javascript code inside the html file:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<script type="text/javascript">
// <![CDATA[

function krpano() 
{
return document.getElementById("krpanoSWFObject");
}

function krpanodbclick(arg) {
setTimeout("numclick = 0",300);
numclick = numclick + 1;
if (numclick == 2) {
eval(arg);
}
}

function  looktoscreentosphere(){

var mousex = krpano().get("mouse.x");
var  mousey = krpano().get("mouse.y");
var  current_fov = krpano().get("view.fov");
var  next_fov = current_fov - 0.10;
var hvs =  krpano().get("screentosphere("+mousex +","+mousey +")");
var hva =  hvs.split(",");

var ath = Number( hva[0] );
var atv = Number(  hva[1] );

krpano().call("lookto("+ ath +","+ atv +","+ next_fov +")");

}

// ]]>
</script>

In line 22 - Changes the value 0.10 with the value you needs to zoom ...
inside the xml:

Source code

1
2
3
4
5
6
7
<krpano version="1.0.8">

<events onclick="js(krpanodbclick(looktoscreentosphere()));" />

  .......
  
</krpano>


This code works ;-) ... So:
Is there currently a possibility to enable click-to-zoom by scripting something fancy?
Yes but with an ondoubleclick instead of click *smile* .... for the moment ;-) ....

SAlut.

16

Thursday, April 1st 2010, 1:21pm

Hi,

sorry, I see, I forgot something in the beta 9 release notes
there are already screentosphere() and spheretoscreen() actions for usage in the xml,

syntax:

Source code

1
2
screentosphere(x,y,h,v);
spheretoscreen(h,v,x,y);

where x/y are the variables in screen coordinates,
and h/v the one in spherical coordinates,

with that a "click-to-zoom" control can be achieved by this xml code:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<events onmousedown="copy(lastmx,mouse.x); copy(lastmy,mouse.y);"
        onmouseup="if(lastmx == mouse.x,
                      if(lastmy == mouse.y, 
                         mul(tofov,view.fov,0.5); 
                         if(tofov LT view.fovmin, copy(tofov,view.fovmin));
                         screentosphere(mouse.x,mouse.y,toh,tov);
                         adjusthlookat(get(toh));
                         tween(view.hlookat,get(toh));
                         tween(view.vlookat,get(tov));
                         tween(view.fov,get(tofov));
                        );
                     );"
        onmousewheel="stoptween(view.hlookat,view.vlookat,view.fov);"
        onkeydown="events.onmousewheel();"
        />


best regards,
Klaus

Similar threads