Home
The Cylindrical Parallax Platformer Mac OS

The Cylindrical Parallax Platformer Mac OS

May 12 2021

The Cylindrical Parallax Platformer Mac OS

Written by Paul Bourke
May 2002

Updated October 2003 to handle spherical and very high resolution maps.
Updated April 2004 to support stereoscopic cubic and planar maps.

See also: Synthetic stereoscopic panoramic images
Lecture Notes in Computer Science (LNCS), Springer, ISBm 978-3-540-46304-7, Volume 4270/2006, pp 147-155


There are three frequently used techniques for rapidly displayingeither photographic or computer generated surround environments, they are: cylindricalpanoramics, spherical maps, or cubic maps. In the late 80s panoramic and spherical maps were popularised byApple with their QuickTime VR software, more recently (2000) that technologywas extended to handle cubic maps.In all three cases imagesare mapped onto some geometry (cylinder, sphere, cube) with a virtualcamera located in the center, depending on the performance of thehost hardware and software the user can interactively look in anydirection. This can lead to a strong sense of immersion especiallyif the environment is projected onto a wide display that fills upa significant part of the viewers field of view. One might ask howa greater sense of immersion can be achieved and in particular whetherstereoscopic projection is possible. It turns out that stereoscopic3D cylindrical panoramas are straightforward to create, the rest of thisdocument will discuss the process for computer generated stereoscopic 3Dpanoramas. A more recent addition to this document will further describean interactive viewer and show examples of stereoscopic panoramics of realworld environments.

The cylindrical parallax platformer mac os catalina

The Ultimate Cocos2d-x Platformer Engine A cross-platform, parallaxing game engine based on cocos2dx. Includes procedural level generation, scripting, dynamic texturing, realtime multiplayer, virtual economy (in-app purchase) and all the basics like moving platforms, boxes, slopes, water, ladders and artificial intelligence. Mac Pro is designed for pros who need the ultimate in CPU performance. From production rendering to playing hundreds of virtual instruments to simulating an iOS app on multiple devices at once, it’s exceedingly capable. At the heart of the system is an Intel Xeon processor with up to 28 cores — the most ever in a Mac. Installation on Mac OS X. For Mac OS X, it's recommended to run the flexprop.tcl script from a command line. Pre-built binaries of the command line tools like flexspin and loadp2 are provided. You may get a Gatekeeper warning about the binaries; if so you'll have to tell. Rock the L-Stick while on the menu to see some wacky parallax effects. KEYBOARD/MOUSE: Click on PLAY button to start, SETTINGS menu to go to Settings, CROSS to close. Up-Down to scroll through Settings, ENTER to select, click on SETTINGS to go back to the main menu. Rock the arrow keys while on the menu to see some wacky parallax effects. Is a developer of desktop and server virtualization software. Released on June 15, 2006, it was the first software product to bring mainstream virtualization to Macintosh computers utilizing the Apple–Intel architecture (earlier software products ran PC software in an emulated environment). Its name initially was 'Parallels Workstation for Mac OS X', which.

As with all stereoscopic 3D projection it is necessary to create twoimages from slightly different viewpoints corresponding to the twohuman eyes. In this case we need to create two panoramics. Many renderingpackages support panoramic cameras but they are modelled after a centeredcamera, for a stereoscopic panorama one needs to create the panorama usinga cameras with a narrow horizontal field of view and wide vertical fieldof view. A large number of these slice renderings are calculated as thecamera is rotated, all the resulting slice renderings are stuck togetherto form the final panoramic. So in the following example 360 one degreeslices are created and stuck together to form the following panoramic.

The reason why one needs to revert to such a scheme is because thecameras, unlike a normal panoramic, don't rotate about the centerof the camera but rather about a rim with radius of half the intendedeye separation. Two possible topologies are illustrated below, inthe first the view direction vectors for each camera are parallelto each other, in the second they toed-in and meet at what will becalled the focal length (this is the distance for zero parallax).So to summarise, in either geometry the left and right eye camerarotates by some small amount (say 1 degree) and a rendering is performedwith a perspective camera with a 1 degree horizontal aperture anda larger vertical aperture (eg: 90, 120, <180). The exact settings thatwill ensure that the slices join properly is dependent on the renderingsoftware being used.

For the toe-in setup the final panoramic is automatically aligned, that is,objects that are the focal length away from the camera will be at zeroparallax and so the two panoramics can be projected without any horizontaloffset applied.

For parallel view directions the final panoramics need to be shiftedhorizontally with respect to each other. This can be seen in theimage below for an object at the focal distance. In order for it tobe at zero parallax the solid red line on the left image needs tolined up with the solid blue line on the right image.

The Cylindrical Parallax Platformer Mac Os Download

The degree of horizontal shift is easy to calculate given the geometryabove. If r is half the eye separation then the angle theta is givenby

theta = 2 asin(r / focallength)

And so the pixel shift is just the proportion of this angle to 360degrees. The pixel shift can either be applied when joining the slicestogether to form the panoramic (recommended) or it could be appliedwithin the stereoscopic panorama viewer.

pixelshift = width theta / 2 pi

Notes

  • As with most stereoscopy one needs to choose the focal lengthand the eye separation. The focal length is related to the geometryin the scene, namely what distance should be at zero parallax while makingsure objects never come too close to the camera. For most safe viewingthe eye separation is taken to be 1/25 or 1/30 of the focal length.

  • By rotating the camera rig clockwise, the image slices can be addedsequentially from left to right to make up the final panoramics.

  • It isn't necessary to make the slices the exact size, one might madewider renderings and extract the central portion. One reason for thiscan be to ensure antialiasing at the edges is performed properly, thedetails are dependent on the rendering software.

  • The above discussion relates to cylindrical panoramic images, the sameapplies to spherical panoramas. However, the stereo pairs get increasinglydistorted as one moves towards to pole of the spherical map.

  • The horizontal aperture of the camera is the same as the angle betweenpairs of camera positions.

Capture using one camera

It is possible to capture stereoscopic panoramic images by using one camera,generally with a wide angle lens. The camera rotates perpendicular to a circle,as shown below, in small steps.

A strip of pixels is extracted from each image, they are aligned next to eachother to create the left and right eye panoramic images. Depending on which pairof pixels is chosen, the effective eye separation for the panoramic imagescan be varied, see the inner circle above.

Example using PovRay

In order to facilitate the creation of the rotating camera rig inPovRay a camera include file was created as follows. This should beincluded into the PovRay scene file in place of any other cameraspecification. It makes a number of assumptions (for example, up is the y axis) but it gives the basic idea.

To see how one might use this here are the ini and pov files for theleft and right panoramics for a scene courtesy of Joseph Strout:test1left.ini,test1left.pov,test1right.ini,test1right.pov.The ini file creates a 360 frame animation with a 1 degree widecamera. The final panoramic in this case will be 3600 pixels by 1800 pixels.

Update (Nov 2007): a custom camera for PovRay that renders a stereoscopicpanoramic image pair directly.

Stereo-capable panoramic viewer

Writing a panoramic viewer based upon OpenGL is 'trivial', it onlyrequires a cylinder with the panoramic mapped as a texture. Writinga stereoscopic viewer is not much more difficult.

The main complication for high resolution panoramics is the texturememory available and the largest texture supported. For example a4096 by 2048 texture is usually going to require 32 MB. ManyOpenGL drivers place modest limits on the largest texture size, theway around any such restriction is to tile the panoramic in N by N pieces onthe cylinder.

Examples
LeftRight

Extensions, October 2003

The viewer originally written for cylindrical stereoscopic panoramic imageshas been extended as follows.

  • Support for spherical panoramics.

  • Support for panning over large planar stereoscopic images.

  • Removal of restrictions found in most other viewers (eg: QuickTime VR), inparticular it is possible to barrel roll, in other words, the virtual cameraneed not be upright. While this is useful in mono mode it has limited applicationwhen viewing stereoscopic panoramic pairs.

  • The viewer runs under Linux (with hardware OpenGL support)and Mac OS-X, others are almost certainly possible.

  • Support for multiple synced and optionally gen-locked machines has been implemented.A server and n clients are supported through TCP-IP communications, any useractions on the server is replicated on the clients. This has been tested onthe 8 machines in the VROOM environment.

  • Edge blending has been implemented to provide a double width display on a dualdisplay card. For examples see: Edgeblendingwith commodity projectors. This includes the ability to interactivelyvary the edge blending parameters, save them, and read them back when launchingthe application.

Some stunning examples of real world stereoscopic panoramics have been capturedby Peter Murphy. An example showing the left eye of a panoramic stereo pair isgiven below, this is a full spherical panoramic image,the original around 4000 pixels wide!

The following shows the left and right views from within the viewer,note that normally these would be displayed full screen on a dual displaycard and viewed through a dual projector passive stereo system. Using above average graphics cards (at the time of writing) this viewerwas readily able to display 4096 pixel stereo panoramic pairs at 30 framesper second.

And finally, two images showing the geometry of the underlying textured cylinder and sphere.

An obvious extension is to add computer generated aspects to the environmentsuch as avatars. To to this correctly the added geometry needs to be in thecorrect perspective, it may need to be occluded behind geometry in thepanoramic, and it needs to be illuminated in a consistent way with thelighting of the panoramic. The first step to achieving this is illustratedbelow, the sun position is determined, a ground plane(s) are positionedso any additional geometry can lie at the correct vertical position andmove into the foreground/distance correctly, and finally if the outlinesof objects in the scene are known such as the gravestone then any addedgeometry that movies behind that gravestone will be occluded by it.


Original scene courtesy of Peter Murphy.

With geometry overlaid, current primitives include line, box, plane, sphere, light.Note how the objects align in both eyes (as they should!). Note however that theground plane doesn't align with the lower ground level, it is actually at thelevel of the raised plot on the left.

Wireframe

Sun position for correct lighting of any added geometry

Extensions, April 2004

A number of changes were made to the performance and in addition two new map formatswere supported, namely high resolution stereo planar images and stereoscopic cubicmaps.

An example follows courtesy of Peter Murphy
Left eye cubic maps as unwrapped cube.


Side-by-Side stereo pairs for passive stereo projection.


Showing the cubic texture mesh.

Update August 2004

Added new cubic map type, now supports 6 face cubic maps as well as 4 face cubic maps. The performance has also been greatly improved, as well as the support for higher quality/resolution images. The largest cubic map attempted has been 4 x (4096x4096) in stereo with a frame rate of more than 75 fps (it is limited by vertical refresh synchronisation). Indeed, the frame rate is now not limited by thesize of the panoramic but by the display size and the camera aperture. The limitof the size of the panoramic that can be handled is dictated by system memory.The largest stereoscopic spherical map attempted is 8192 x 8192, again with a vertical refresh limited frame rate on a 1024x768 stereo display.

Update October 2004

The Cylindrical Parallax Platformer Mac Os X

Experiments in augmented characters filmed in stereo.

Update, Octover 2005

Interface with Intersense tracker

References

Shmuel Peleg,
Omnistereo: Panoramic Stereo Imaging
IEEE Transactions on Pattern Analysis and Machine Intelligence,Vol 15, No 3, March 2001.

S. Tzavidas and A.K. Katsaggelos,
Multicamera Setup for Generating Stereo Panoramic Video,
Proc. 2002 SPIE Conference on VCIP, San Jose, CA, Jan. 2002.

H.C. Huang and Y.P. Hung.
Panoramic stereo imaging system with automatic disparity warping and seaming.
In Proceedings of International Conference on Image Processing and Character Recognition,
ICS'96, pages 48-55, Taiwan, ROC, December 1996.

J. Gluckman, S. Nayar, and K. Thoresz.
Real-time omnidirectional and panoramic stereo.
In DARPA IUW-98, pages 299-303, Monterey, California, November 1998. Morgan

S. Peleg and M. Ben-Ezra.
Stereo panorama with a single camera.
In IEEE Conference on Computer Vision andPattern Recognition, pages 395-401, Ft. Collins, Colorado, June 1999.

This is a list of all wiki pages ordered by main category. For a complete list go to all pages. You find a short category description and links to sub-categorized lists in the relevant paragraph.


Tutorials

92 pages that explain how to do something.

Tutorials ordered by subcategory (rating), see: Tutorials by rating

Tutorials ordered by usage, see: Tutorials

A

B

C

D

E

F

G

H

I

M

O

P

R

S

T

W

Software

239 pages that discuss some kind of software.

Software ordered by subcategory (platform), see: Software

3

A

B

C

D

E

F

G

H

J

L

N

P

R

S

U

W

Hardware

6 pages that discuss both photographic and non-photographic (f.e. computer) hardware.

E

H

S

Glossary

145 pages that explain certain terms.

Commented version: Glossary

A

C

The Cylindrical Parallax Platformer Mac Os Catalina

D

E

F

H

I

K

L

N

P

R

S

U

V

X

The Cylindrical Parallax Platformer Mac Os Operating System

Z

Community

55 community (f.e Mailing list, Wiki or project) related pages.

C

D

F

H

L

P

W

Info

38 informative pages that don't fit in above categories.

C

E

H

M

P

S

U

Other

9 uncategorized pages.

G

I

P

Retrieved from 'https://wiki.panotools.org/index.php?title=SiteMap&oldid=15938'

The Cylindrical Parallax Platformer Mac OS

Leave a Reply

Cancel reply