Irregular perspective rendering

We investigate irregular perspective rendering. Precisely, this consists in a modification of the field of view. Instead of letting it be defined by a frustum based on the near and far planes, we define it by multiple frustums stacked on top of each other in the z-direction, and compute correct screen-space coordinates per vertex by linearly interpolating between the two planes that make up the frustum containing a considered vertex.

Furthermore, the frustum can have any size, which also allows for reverse perspective, in which objects that are far away appear bigger than nearby objects. This is implemented by reversing the regular perspective frustum with respect to the z-direction

Using our method, we can enlarge important parts of the scene, by introducing a small frustum around the identified areas, which maps an object to a large portion of the screen.

This project was implemented in C++ with OpenGL and GLSL.

This project was finished on the 1st of April, 2014