Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

3.8 KiB

title tags authors affiliations date bibliography
Pannellum: a lightweight web-based panorama viewer [panoramas visualization WebGL] {name Matthew A. Petroff} {orcid 0000-0002-4436-4215} {affiliation 1} {name Department of Physics & Astronomy, Johns Hopkins University, Baltimore, Maryland 21218, USA} {index 1} 15 July 2019 paper.bib

Summary

Pannellum is an interactive web browser-based panorama viewer written in JavaScript and primarily based on the WebGL web standard [@WebGL] for graphics processing unit (GPU)-accelerated rendering to the HTML5 <canvas> element [@Canvas]. It supports the display of panoramic images that cover the full sphere, or only parts of it, in equirectangular format, in cube map format, or in a tiled format that encodes the panorama in multiple resolutions, which allows for parts of the panorama to be dynamically loaded, reducing data transfer requirements. In addition to single panoramas, multiple panoramas can be linked together into a virtual tour, with navigation enabled via “hot spots,” which can also be used to add annotations.

The display of interactive panoramic images on the web dates back to the mid-1990s, with the development of Apple’s QuickTime VR format and associated web browser plug-ins [@Chen1995]. When development on Pannellum started in 2011, WebGL was a nascent technology, and the majority of existing panorama viewers for websites were then still based on Java or Adobe Flash plug-ins, which had supplanted QuickTime as the technology of choice. Since then, both the viewer and underlying technologies have matured immensely. As an aside, the name Pannellum was derived as a portmanteau of “panorama” and “vellum,” as this made a unique, pronounceable word, with “vellum” used as a quasi-synonym to the <canvas> drawing surface used by the viewer.

An application programming interface (API) is provided, which allows external code to control the viewer and implement features such as custom buttons or integration with other web page elements. One such example is integrating the viewer with a map [@Gede2015; @Albrizio2013; @OSM2018]; the locations where panoramas were taken can be displayed as markers on the map, whereby clicking a marker will open the corresponding panorama in the viewer. Panoramic videos---videos that cover up to a full 360 degrees of azimuth---are supported via a bundled extension, which is built using the API. The underlying rendering code is separate from the user interface code, which allows for more extensive customization and tighter integration with external code, if desired. This rendering code uses a pinhole camera model for equirectangular panoramas implemented as a WebGL fragment shader, instead of the more common---and less accurate---approach of mapping the panorama onto a geometric approximation of a sphere.

Pannellum has proven useful in various fields, when the display of panoramic images is needed to help digest or present information. These research applications range from cartography [@Gede2015] to digital humanities [@Srinivasan2018; @Mohr2018] to archaeology [@Albrizio2013] to medical education [@Herault2018]. It has also found use in public outreach applications, such as its use by the European Southern Observatory to display panoramas of their observatories [@ESO2017]. Pannellum is intended to be used any time an interactive panorama needs to be displayed in a web page, be it an internal research application or a publicly accessible website. It may also work with certain mobile application frameworks, but such use is not officially supported. Documentation and interactive examples are provided at pannellum.org.

References