179
12
AGenericMultiviewRendering
EngineArchitecture
M. Adil Yalçın
Tolga Çapın
Department of Computer Engineering, Bilkent University
12.1Introduction
Conventional monitors render a single image, which is generally observed by the
two eyes simultaneously. Yet, the eyes observe the world from slightly different
positions and form different images. This separation between the eyes provides
an important depth cue in the real world. Multiview rendering aims to exploit this
fundamental feature of our vision system for enhanced 3D rendering.
Technologies that allow us to send different images to the two eyes have
been around for years, but it is only now that they can reach the consumer level
with higher usability [Bowman et al. 2004]. The existing technologies vary
among the different types of 3D displays, and they include shutter glasses, binoc-
ular head-mounted displays, and the more recent and popular autostereoscopic
displays that require no special glasses.
Recent techniques for multiview rendering differ in terms of visual character-
istics, fidelity, and hardware requirements. Notably, multiview rendering engines
should be able to support more than two simultaneous views, following recent
3D display technologies that can mix a higher number of simultaneous views
than traditional stereo view [Dodgson 2005].
Currently, many available multiview applications are configured for the ste-
reo-view case, and the routines that manage stereo rendering are generally im-
plemented as low-level features targeted toward specific APIs and displays. We
present a higher-level multiview rendering engine architecture that is generic,
robust, and easily configurable for various 3D display platforms, as illustrated in
180 12.AGenericMultiviewRenderingEngineArchitecture
Figure 12.1. A torus rendered for different basic 3Ddisplay platforms.
Figure 12.1. The architecture simplifies the use of multiview components of a
rendering engine and it solves the problems of rendering separate views and
merging them for the target display. It also includes support for multiview ren-
dering optimization techniques, such as view-specific level-of-detail systems and
pipeline modifications. Additional discussions include insights on further exten-
sions, design guidelines, and other possible uses of the presented architecture.
Most of the discussions, terminologies, and guidelines in this chapter follow
OpenGL conventions. The implementation of the architecture is included in the
OpenREng library,
1
an open-source rendering engine based on modern desktop
and mobile OpenGL specifications with multiview rendering support, and the
sample applications are built using this library.
12.2AnalyzingMultiviewDisplays
At its core, rendering for 3D displays aims to generate separate images (views)
for separate eyes. All types of 3D displays, summarized below, create the illusion
of 3D space based on multiplexing the different images for each eye, whether it
be temporally, spatially, or in color. It is a challenge to support all types of dis-
plays transparently to application implementations in a way that hides the details
of the low-level resource management required for multiview rendering.
Displays that require wearing special eyeglasses can be subdivided into the
following categories (as also shown in Figure 12.2):
1
See http://openreng.sourceforge.net/.
Mono
Parallax-based
Lenticular-based
Anaglyph-based
Get Game Engine Gems 2 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.