Archived

This topic is now archived and is closed to further replies.

panoramic image display

This topic is 4981 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Ok here's the image : http://www.geocities.com/gregman_pl/vr02.jpg What kind of panorama is this ? cylindrical ? spherical ? I want to write program to display it bu have no idea how, without any real 3D rendering (only image processing algo) I've searched at google but i've found only how to prepare images and display it with existing tools. Please help. [edited by - gregman on April 21, 2004 8:25:33 AM]

Share this post


Link to post
Share on other sites
It is cylindrical, but unlike most cylindrical skymaps of horizons, the detail in this image is close by (a small room), therefore you have to take into account the fish eye effect.

The fish eye effect is this: if you are facing a wall straight on, the part of the wall directly in front of you is closest, so it appears bigger. The further off centre within your view, the wall is further away and therefore appears smaller.

This image is usually rendered a pixel column at a time, and the vertical column is stretched the further from the center of the screen it is displayed. So in the middle of the screen you display the appropriate column normal size, at the left and right part of the screen you stretch the column by a certain maximum percentage (calculated depending on what field of view you are using), and the columns in-between are stretched with varying amounts from 0 to the max.

The trigonometry involved is this: if the right most wall column is 30 degrees off centre (for a 60 degree field of view), using triangles the distance of the right column is such a percentage further away than the distance of the near column, so the height of the right column is such a percentage smaller than the height of the near column, so you can work out what percentage you need to increase the right column by so it appears the same height as the near column.

This can be done with an image processing algortihm which should be applied everytime the viewing angle changes (i.e. turning left or right) and then rendered using 2D techniques. I dont think that real 3D accelerated texture rendering would help much for this sort of image.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I believe the fisheye correction term for this sort of thing is simply cos(theta) where theta is the difference from the view angle (center of screen) and the particular collumn of pixels being rendered.

Share this post


Link to post
Share on other sites