Projective geometry and duality for graphics, games and visualization

  • Authors:
  • Vaclav Skala

  • Affiliations:
  • -

  • Venue:
  • SIGGRAPH Asia 2012 Courses
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

The tutorial gives a practical overview of projective geometry and its applications in geometry, GPU computations and games. It will show how typical geometrical and computational problems can be solved easily if reformulated using the projective geometry. Presented algorithms are easy to understand, implement and they are robust. Homogeneous coordinates and projective geometry are mostly connected with geometric transformations only. However the projective extension of the Euclidean system allows reformulation of geometrical problems which can be easily solved. In many cases quite complicated formulae are becoming simple from the geometrical and computational point of view. In addition they lead to simple parallelization and to matrix-vector operations which are convenient for matrix-vector hardware architecture like GPU. In this short tutorial we will introduce "practical theory" of the projective space and homogeneous coordinates. We will show that a solution of linear system of equations is equivalent to generalized cross product and how this influences basic geometrical algorithms. The projective formulation is also convenient for computation of barycentric coordinates, as it is actually one cross-product implemented as one clock instruction on GPU. Additional speed up can be expected, too. Moreover use of projective representation enables to postpone division operations in many geometrical problems, which increases robustness and stability of algorithms. There is no need to convert coordinates of points from the homogeneous coordinates to the Euclidean one as the projective formulation supports homogeneous coordinates natively. The presented approach can be applied in computational problems, games and visualization applications as well. The tutorial is targeted to algorithm developers in geometry and graphics, visualization and games. The course is also intended for educators and attendees interested in computational issues in general.