Archive for the ‘OpenGL’ Category.

Real-time Digital Dome Rendering

In the summer of 2008 the Adler Planetarium hosted the annual meeting of the International Planetarium Society. At that time I had been working on a number of visualization projects with Adler staff, including the installation of a cluster of Linux PCs in the Adler’s digital dome theater. Our goal was to explore ways of generating custom real-time content for dome shows, which were (and largely still are) limited to the playback of pre-rendered movies.

I had prior experience with real-time dome rendering, having done early work with programmable GPUs in a 4-meter dome at NASA Langley Research Center in 2002. I had spent my years in Chicago adapting real-time visualization code to a wide array of display technologies, and the digital full-dome was another challenge in that vein. It was my further intention to adapt my doctoral work to the full-dome display and defend my dissertation interactively in the Adler dome. The convergence of these influences coincided with IPS 2008, and I was invited to present an overview of real-time dome rendering techniques at the conference.

The resulting paper gave broad coverage of real-time display and spherical correction techniques, targeted toward the non-technical planetarium crowd, and intended to teach them a bit about the nature of 3D graphics hardware and its incompatibility with domes. I recently decided to revisit and revise this paper. Here’s the PDF.

Generalized Perspective Projection (revised)

I’ve prepared a revised and updated print version of my previous post on Generalized Perspective Projection. Here’s the PDF.

Generalized Perspective Projection

Perspective projection is a well-understood aspect of 3D graphics. It is not something that 3D programmers spend much time thinking about. Most OpenGL applications simply select a field of view, specify near and far clipping plane distances, and call gluPerspective or glFrustum. These functions suffice in the vast majority of cases. However, the field of Virtual Reality introduces circumstances under which they fail. This article discusses the limitations of these perspective projection functions, and describes a more generalized perspective projection formulation. Implementation and an example application using OpenGL are provided. [Read More.]

Varrier

All OpenGL Extension Specifications in one ZIP

I tend to spend a lot of time reading OpenGL extension specifications. It’s sometimes a pain to have to grab them one-by-one from the official extension registry, and I like to store the text locally for easy reference and searching. The registry seems to lack a single-file archive download (please correct me if I’m wrong), so here they are, current as of 20 October 2007.

glext-20-Oct-07.zip [1.9MB]

How to Set the Near Clipping Distance to Zero

This article discusses a means to reduce the problems of near clipping distance and depth buffer precision by foregoing the usual near and far distance specifications and reformulating the perspective projection transformation in terms of the median of the scene. The result is a short GLSL vertex function that allows geometry to be transformed and rasterized arbitrarily close to the viewpoint, while maintaining an affordance needed by applications to influence depth buffer utilization. [Read More]

fig_near_zero_perspective.png