Section: New Results
Participants : Bruno Lévy, Yang Liu, Nicolas Ray, Rhaleb Zayer.
We continued our work on Geometry Processing with the strategy of considering all the three levels of abstraction in parallel, namely formalization (specification using functional analysis and topology), discretization (relations between the continuous problem and discretized linear models), and finally implementation (how to implement efficient solvers for these linear problems using modern hardware). This year's realization for these three levels of abstraction are described in the following three paragraphs.
Formalization: Vector and direction field processing
Many algorithms in texture synthesis, non-photorealistic rendering (hatching), or re-meshing require defining the orientation of some features (texture, hatches or edges) at each point of a surface. This is also the case of the quad-remeshing algorithms that we developed ( and  ). In early works, tangent vector (or tensor) fields were used to define the orientation of these features. Extrapolating and smoothing such fields is usually performed by minimizing an energy composed of a smoothness term and of a data fitting term. Those approaches allow smoothing existing fields such as the direction of the curvature, to interactively introduce directional constraints, but fail to control the topology of the resulting field.
We have developped an algorithm that lets the direction field emerge naturally from the direction extrapolation and smoothing (as with previous approaches), but that controls the singularities. The idea here is to restate the objective function such that the optimization algorithm does not try to minimize the part of the field curvature that is due to the Gaussian curvature of the surface. Some results are shown in Figure 5 . We published this work in ACM Transactions on Graphics  .
Discretization: Mesh data structures
We developed the “Mesh Matrix Methods” formalism, a new way of desining geometry processing tools based on the idea of replacing complicated mesh data structures (halfedges etc ...) with sparse matrices. We show how mesh traversal, finite element matrices and subdivision can be efficiently implemented in terms of sparse matrices operations. Our formalism is currently used to teach digital geometry processing in Magdeburg university, Germany. Our implementation in MATLAB together with the algorithmic description will be released as OpenSource software.
Implementation: Numerical solvers on the GPU
We continued our work on the efficient implementation of numerical solvers on the GPU, using the new functionalities of GPUs, that now support floating point numbers in double precision. We compared different implementations for representing sparse matrices, including the CRS (Compressed Row Storage) representation. A new Ph.D. thesis will start in 2010 (Thomas Jost), co-advised with Sylvain Contassot (ALGORILLE project). The goal is to experiment with the possibility of implementing a sparse direct solver on the GPU.