On Sat, 2010-03-20 at 17:15 +0100, Darko Makreshanski wrote:
> Hi,
> 
> I have some ideas which I would like to present and get feedback of you 
> for a project. It basically includes the "Zooming for Fast Preview" and 
> other improvements to "Fast Preview"
> 
> My ideas are mostly concerned for users that are just beginning with 
> hugin, and users with not much knowledge of map projections and panorama 
> creation.
>   * one goal is to attract more users by giving a fancy and more 
> user-friendly interface to the preview.
>   * another is to give some features, that might be useful to most of 
> you as well
> 
> Basically currently the fast preview is a openGL version of the old 
> preview with some features and some drawbacks (the texture quality), and 
> I believe that OpenGL can provide much more user-friendliness to the 
> preview.
> 
> Here are the problems to the preview that I thing currently are the 
> biggest problem for beginners:
>      - it's completely unintuitive that in the move/drag section, users 
> actually rotate the panorama. The problem of this is that the 3D 
> rotation space commands are represented in a 2D plane, with the vertical 
> axis for two dimensions.
>      - when there are several groups of images, users can handle these 
> independently, however this is also unintuitive, since for a user to 
> handle a specific group he must click/drag the group, and this combined 
> with the previous problem is a pain.
>      - currently with this preview to get a larger overview of the 
> panorama, you must change the field of view or the projection mode.
>      - people with no knowledge of the types of projections, are only 
> left to experiment with the projections and look at the result without 
> actually having a good visualization of the distortions that are occurring
> 
> Also something I didn't like is that in many cases I couldn't spot areas 
> where there was no image data, because the background was black and 
> blended with parts of the image.
> 
> What I propose is the following:
> 
> First the current mode of preview will remain as it is (with some 
> improvements) and will be called a '2D Projection' mode where the user 
> would just use to modify the final result.
> Apart from this mode I also propose two additional modes (3D panosphere, 
> and combination of 3D panosphere and 2D projection):
> 
> First, some features that would be included in both 'Projection' and 
> 'Panosphere' mode:
>     - the user could zoom in/out and image resolutions would be 
> dynamically increased for more detail. (the idea on the wiki)
>     - better manipulation of image groups where user could select a 
> group or the whole panorama and adjust accordingly

These have been asked for before, so they would be welcome additions.

>     - adjustable and very distinctive background for both modes, to spot 
> the areas without image data

This could be useful.

>     - a interleaving colorful grid will be displayed to examine distortion

That might help people understand the projections, if they are aware
what the grid means.

> 1. A '3D Panosphere' mode.
>     - I read the 'Next GUI' discussion, and I noticed there were some 
> thoughts on this already.
> 
>     In this mode the user would basically look into a 3D sphere mapped 
> with the images, with option to look at the sphere either from inside or 
> outside.
> 
> The purpose of the sphere mode is that it is the basic representation of 
> what the panorama actually is, and I believe it is the most intuitive 
> representation.
> 
> The benefits of this mode:
>     - primarily to distinguish between looking at the output and looking 
> at an overview of the panorama.
>     - the most intuitive and most exact preview of the panorama (in 
> terms of distortions)

I wouldn't say it was more exact. You will still be mapping a spherical
image to a 2D display. It is also not the most intuitive way for linear
panoramas.

>     - in here the 3D rotation adjustments would actually make sense and 
> would be intuitive.
>     - the layout submode in this mode would also make a lot more sense
>     - a very intuitive and eye-candy preview for new users
> 
> Some of the features that would be included in panosphere mode:
>     - a look at the panosphere either from outside or inside (all 
> features available in both modes)
>           * from the inside, the viewpoint would be fixed to the center 
> of the sphere and adjustable would be rotation of the camera and field 
> of view (zoom in/out)

Is this the same as using rectilinear projection?

>           * from the outside, the viewpoint would move around a larger 
> virtual sphere, and would be faced always to the center of the sphere 
> (also adjustable FOV)

Is this similar to orthographic projection? However there is a bug with
orthographic projection in the fast preview: it doesn't clip the images
on the back of the sphere.

I don't think using a small field of view in this projection will be any
less confusing. I think when looking at the sphere from the outside, the
whole sphere should always be visible, and any gap in the images should
show a differently shaded version of the images on the other side.

>               - the camera adjustment would be done with the mouse or 
> keyboard (for mouse drag to rotate, mouse wheel to zoom in/out)
>     - a layout mode (same as it is currently) with small images and 
> their connections
>     - a set of 3 interactive circles drawn around the sphere, which 
> could be dragged with the mouse to rotate the whole panorama or a group 
> of images (as it is done in 3dsmax) (also shown in [1])
>     - a possibility to choose a central point of projection on the sphere

How will the user interface for this work when inside the sphere? How
would you rotate the camera and rotate some images?

> 2. Combination of 3D panosphere and 2D projection:
> This mode is mostly for people to test the projections and understand 
> them easily, or to work with the panosphere and see the results directly 
> on the projection
>     - it will contain both the panosphere and the projection, which can 
> be either:
>            * the panosphere and the projection in separate windows
>            * the panosphere and the projection in one window (one opengl 
> scene)
>     - both the panosphere and the projection will have an interleaving 
> colorful grid which will correspond to each other (basically the grid of 
> the sphere would be projected as well)
>            * the purpose of this would be to have an overview of the 
> distortions on the projections and to easily understand all projections
>     - ofcourse by rotating the panosphere the projection changes as well.

I think the best way to understand most projections is with a good
diagram. The panosphere view could include some of the properties of the
projection in a diagram. For example, something like [1] could be used
for cylindrical projections. For diagrams to make sense, the view must
be from outside the panosphere; and it must be at an angle to the centre
of the projection used, since the shapes will not be seen head on.

Unfortunately this could be a lot of work, as each projection would
require its own diagram drawing code (and some projections would still
look weird). I think just covering rectilinear, equiangular, and
cylindrical projections would be enough to cover the main use cases
though.

>  
> about the two submodes:
>     1. panosphere and projection in separate windows (or in same window 
> but in different canvases)
>          * this  is  more useful, and I believe will be useful to 
> everybody, even experienced people.
>     2. panosphere and projection in same window
>          * this might be used to animate the projections, which would be 
> awesome and very attractive, however not very useful

If by animate you mean show the panorama being unwrapped from the sphere
to form the output image, this could be useful. It should help
understanding of the projections.

It would be easiest to do this with an already stitched panorama.
Perhaps you could take a preview of the projected panorama, copy it into
an OpenGL texture and animate that?

>          * I have done a simple scene with a basic projection in opengl [1]
>               * just a note: in that scene, the sphere's grid doesn't 
> have interpolated color as the projection
> 
> 
> So that's pretty much my idea. It might be too much or not enough for a 
> gsoc project. Next, I would have to look more into the code of the 
> previewer, and make a decent estimation of the time needed. In any case 
> I would really like to see all of that included in the previewer.

There are some ideas that are unrelated to the rest, for example the
customizable display of transparent areas. After you've got a good
discussion here, pick what you think are the most important parts for
your project plan.

> I am really eager to see the responses for this, and whether you would 
> like to see this in Hugin.

An extension (maybe a bit much for your summer of code project) would be
to use the XYZ properties in 3D space instead of just the spherical
projection. To visualize this well you would need to be able to move the
camera around as well as rotate it.

-James

[1] http://en.wikipedia.org/wiki/File:Usgs_map_mercator.svg

-- 
You received this message because you are subscribed to the Google Groups 
"hugin and other free panoramic software" group.
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at http://groups.google.com/group/hugin-ptx

To unsubscribe from this group, send email to 
hugin-ptx+unsubscribegooglegroups.com or reply to this email with the words 
"REMOVE ME" as the subject.

Reply via email to