OpenGI
 
Home
About
Downloads
Documentation
Contact
Forums
Trackers

Get OpenGI at SourceForge.net

CSS is valid!

OpenGI Overview

OpenGI is a platform-independent open-source C-library for parameterization and Geometry Image creation, developed by Christian Rau. Geometry Images are a powerful, completely regular representation of triangular (or quadrangular) meshes, describing each vertex and its attributes as a pixel in one or more rectangular images and thus defining an implicit connectivity through neighbouring pixels. It can be understood as a next step after color and normal mapping, representing the whole model as a set of images. Due to its regularity this representation is extremely suitable for implementing mesh algorithms (e.g. LOD, Subdivision, Smoothing, ...) on the GPU.

Features:

  • Platform-independent and Open Source
  • Easy to learn OpenGL-like syntax and programming paradigms
  • Working on 2-manifolds of arbitrary genus and with a variable number of boundaries
  • Implementing various parameterization algorithms, e.g. Mean Value Coordinates, Stretch Minimization or the original GIM algorithm by Gu et al.
  • Supporting multi-chart patchifications
  • Easy and hardware-accelerated creation of Geometry Images
  • Creation of images not only for geometry but various generic attributes
  • Detailed control and feedback of the whole parameterization and Geometry Image creation process
  • Tight integration with OpenGL for easy and efficient data sharing

Dataflow:

OpenGI dataflow

This figure shows the typical OpenGI dataflow, where the ellipses represent user data and the rectangles represent major OpenGI operations. The user specifes the data for a triangular mesh as a set of vertex arrays and an optional index array. For this mesh valid parameter coordinates are computed and this parameterization is then used to sample the mesh's attributes into a set of images. But OpenGI can also be used for parameterization only, by reading back the parameterized mesh into a vertex-/index-array representation. You can also use the library for sampling only by giving the mesh initial parameter coordinates.